GUIComponents now have names
authorDaniel Kirschten <daniel.kirschten@gmx.de>
Mon, 8 Jul 2019 11:16:49 +0000 (13:16 +0200)
committerDaniel Kirschten <daniel.kirschten@gmx.de>
Mon, 8 Jul 2019 11:16:49 +0000 (13:16 +0200)
82 files changed:
net.mograsim.logic.ui.am2900/components/GUI_rsLatch.json
net.mograsim.logic.ui.am2900/components/GUIand.json
net.mograsim.logic.ui.am2900/components/GUIand41.json
net.mograsim.logic.ui.am2900/components/GUIandor414.json
net.mograsim.logic.ui.am2900/components/GUIdemux2.json
net.mograsim.logic.ui.am2900/components/GUIdff.json
net.mograsim.logic.ui.am2900/components/GUIdlatch.json
net.mograsim.logic.ui.am2900/components/GUIdlatch4.json
net.mograsim.logic.ui.am2900/components/GUIfulladder.json
net.mograsim.logic.ui.am2900/components/GUIhalfadder.json
net.mograsim.logic.ui.am2900/components/GUImux1.json
net.mograsim.logic.ui.am2900/components/GUImux1_4.json
net.mograsim.logic.ui.am2900/components/GUInand3.json
net.mograsim.logic.ui.am2900/components/GUInot4.json
net.mograsim.logic.ui.am2900/components/GUIor4.json
net.mograsim.logic.ui.am2900/components/GUIor_4.json
net.mograsim.logic.ui.am2900/components/GUIram2.json
net.mograsim.logic.ui.am2900/components/GUIram4.json
net.mograsim.logic.ui.am2900/components/GUIsel2_4.json
net.mograsim.logic.ui.am2900/components/GUIsel3_4.json
net.mograsim.logic.ui.am2900/components/GUIxor.json
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901.json
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUFuncDecode.json
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUInclDecode.json
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901ALUOneBit.json
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901DestDecode.json
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901QReg.json
net.mograsim.logic.ui.am2900/components/am2901/GUIAm2901SourceDecode.json
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/examples/JsonExample.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUI_rsLatch.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIand.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIand41.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIandor414.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdemux2.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdff.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdlatch.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIdlatch4.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIfulladder.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIhalfadder.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUImux1.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUImux1_4.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUInand3.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUInot4.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIor4.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIor_4.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIram2.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIram4.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIsel2_4.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIsel3_4.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/GUIxor.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUFuncDecode.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUInclDecode.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUOneBit.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901DestDecode.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901QReg.java
net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901SourceDecode.java
net.mograsim.logic.ui.am2900/test/net/mograsim/logic/ui/am2900/TestableAm2901Impl.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/LogicUICanvas.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/LogicUIRenderer.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/ViewModel.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/ViewModelModifiable.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/GUIComponent.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/atomic/GUIAndGate.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/atomic/GUIBitDisplay.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/atomic/GUIManualSwitch.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/atomic/GUINandGate.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/atomic/GUINotGate.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/atomic/GUIOrGate.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/atomic/SimpleRectangularGUIGate.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/atomic/TextComponent.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/submodels/SimpleRectangularSubmodelComponent.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/submodels/SubmodelComponent.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/submodels/SubmodelInterface.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/WireCrossPoint.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/modeladapter/ViewLogicModelAdapter.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/serializing/DeserializedSubmodelComponent.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/serializing/IndirectGUIComponentCreator.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/serializing/SubmodelComponentDeserializer.java
net.mograsim.logic.ui/src/net/mograsim/logic/ui/serializing/SubmodelComponentParams.java

index 39ef290..a91b815 100644 (file)
@@ -41,56 +41,60 @@ mograsim version: 0.1.3
     "subComps": [
       {
         "pos": {
-          "x": 10.0,
-          "y": 7.5
+          "x": 40.0,
+          "y": 12.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 40.0,
-          "y": 12.5
+          "x": 10.0,
+          "y": 7.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
         "pos": {
-          "x": 34.0,
-          "y": 16.5
+          "x": 64.0,
+          "y": 36.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 64.0,
-          "y": 36.5
+          "x": 34.0,
+          "y": 16.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "_S"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "_R"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": [
@@ -106,22 +110,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": [
@@ -133,22 +137,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": [
@@ -168,11 +172,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q"
         },
         "path": [
@@ -196,11 +200,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "_Q"
         },
         "path": []
index 9e801e1..5877291 100644 (file)
@@ -33,18 +33,20 @@ mograsim version: 0.1.3
     "subComps": [
       {
         "pos": {
-          "x": 20.0,
+          "x": 50.0,
           "y": 15.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 50.0,
+          "x": 20.0,
           "y": 15.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
@@ -53,48 +55,49 @@ mograsim version: 0.1.3
           "y": 24.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": [
@@ -106,11 +109,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": [
@@ -122,11 +125,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y"
         }
       }
index c3157e9..973a4c9 100644 (file)
@@ -81,109 +81,116 @@ mograsim version: 0.1.3
     "subComps": [
       {
         "pos": {
-          "x": 30.0,
-          "y": 7.5
+          "x": 24.0,
+          "y": 71.5
         },
-        "id": "GUIand"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "params": 1
       },
       {
         "pos": {
-          "x": 30.0,
-          "y": 32.5
+          "x": 24.0,
+          "y": 46.5
         },
-        "id": "GUIand"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "params": 1
       },
       {
         "pos": {
-          "x": 30.0,
-          "y": 57.5
+          "x": 24.0,
+          "y": 96.5
         },
-        "id": "GUIand"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "params": 1
       },
       {
         "pos": {
           "x": 30.0,
-          "y": 82.5
+          "y": 7.5
         },
-        "id": "GUIand"
+        "id": "GUIand",
+        "name": "GUIand#0"
       },
       {
         "pos": {
-          "x": 24.0,
-          "y": 46.5
+          "x": 30.0,
+          "y": 57.5
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIand",
+        "name": "GUIand#2"
       },
       {
         "pos": {
-          "x": 24.0,
-          "y": 71.5
+          "x": 30.0,
+          "y": 32.5
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIand",
+        "name": "GUIand#1"
       },
       {
         "pos": {
-          "x": 24.0,
-          "y": 96.5
+          "x": 30.0,
+          "y": 82.5
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIand",
+        "name": "GUIand#3"
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A1"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIand#0",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A2"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIand#1",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A3"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand#2",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A4"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIand#3",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": [
@@ -195,66 +202,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIand#3",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand#2",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIand#1",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIand#0",
           "pinName": "B"
         },
         "path": [
@@ -266,44 +273,44 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIand#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIand#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIand#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIand#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y4"
         },
         "path": []
index 5021dba..5cadf0f 100644 (file)
@@ -113,27 +113,29 @@ mograsim version: 0.1.3
     "subComps": [
       {
         "pos": {
-          "x": 15.0,
-          "y": 137.5
+          "x": 35.0,
+          "y": 37.5
         },
-        "id": "GUIand41"
+        "id": "GUIor_4",
+        "name": "GUIor_4#0"
       },
       {
         "pos": {
-          "x": 35.0,
-          "y": 37.5
+          "x": 15.0,
+          "y": 137.5
         },
-        "id": "GUIor_4"
+        "id": "GUIand41",
+        "name": "GUIand41#0"
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A1"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIand41#0",
           "pinName": "A1"
         },
         "path": [
@@ -149,11 +151,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A2"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIand41#0",
           "pinName": "A2"
         },
         "path": [
@@ -169,22 +171,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A3"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIand41#0",
           "pinName": "A3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A4"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIand41#0",
           "pinName": "A4"
         },
         "path": [
@@ -200,11 +202,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIand41#0",
           "pinName": "B"
         },
         "path": [
@@ -220,11 +222,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "C1"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIor_4#0",
           "pinName": "A1"
         },
         "path": [
@@ -240,11 +242,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "C2"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIor_4#0",
           "pinName": "A2"
         },
         "path": [
@@ -260,22 +262,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "C3"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIor_4#0",
           "pinName": "A3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "C4"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIor_4#0",
           "pinName": "A4"
         },
         "path": [
@@ -291,11 +293,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIand41#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIor_4#0",
           "pinName": "B1"
         },
         "path": [
@@ -319,11 +321,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIand41#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIor_4#0",
           "pinName": "B2"
         },
         "path": [
@@ -347,11 +349,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIand41#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIor_4#0",
           "pinName": "B3"
         },
         "path": [
@@ -375,11 +377,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIand41#0",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIor_4#0",
           "pinName": "B4"
         },
         "path": [
@@ -403,11 +405,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIor_4#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y1"
         },
         "path": [
@@ -423,11 +425,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIor_4#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y2"
         },
         "path": [
@@ -443,22 +445,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIor_4#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIor_4#0",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y4"
         },
         "path": [
index 13ff969..5ded84b 100644 (file)
@@ -58,17 +58,19 @@ mograsim version: 0.1.3
       {
         "pos": {
           "x": 10.0,
-          "y": 2.5
+          "y": 27.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
         "pos": {
           "x": 10.0,
-          "y": 27.5
+          "y": 2.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
@@ -76,36 +78,32 @@ mograsim version: 0.1.3
           "x": 40.0,
           "y": 2.5
         },
-        "id": "GUIand"
+        "id": "GUIand",
+        "name": "GUIand#0"
       },
       {
         "pos": {
           "x": 40.0,
-          "y": 27.5
+          "y": 52.5
         },
-        "id": "GUIand"
+        "id": "GUIand",
+        "name": "GUIand#2"
       },
       {
         "pos": {
           "x": 40.0,
-          "y": 52.5
+          "y": 27.5
         },
-        "id": "GUIand"
+        "id": "GUIand",
+        "name": "GUIand#1"
       },
       {
         "pos": {
           "x": 40.0,
           "y": 77.5
         },
-        "id": "GUIand"
-      },
-      {
-        "pos": {
-          "x": 6.5,
-          "y": 11.5
-        },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIand",
+        "name": "GUIand#3"
       },
       {
         "pos": {
@@ -113,14 +111,16 @@ mograsim version: 0.1.3
           "y": 16.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 36.5,
-          "y": 61.5
+          "x": 6.5,
+          "y": 11.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
@@ -129,14 +129,16 @@ mograsim version: 0.1.3
           "y": 36.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "params": 1
       },
       {
         "pos": {
-          "x": 4.0,
-          "y": 41.5
+          "x": 36.5,
+          "y": 61.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
@@ -145,14 +147,16 @@ mograsim version: 0.1.3
           "y": 66.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "params": 1
       },
       {
         "pos": {
-          "x": 31.5,
-          "y": 11.5
+          "x": 4.0,
+          "y": 41.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "params": 1
       },
       {
@@ -161,39 +165,49 @@ mograsim version: 0.1.3
           "y": 36.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "params": 1
+      },
+      {
+        "pos": {
+          "x": 31.5,
+          "y": 11.5
+        },
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "S0"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "S1"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": [
@@ -205,11 +219,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": [
@@ -221,55 +235,55 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 9,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": [
@@ -281,11 +295,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "path": [
@@ -301,33 +315,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand#0",
           "pinName": "A"
         },
         "path": [
@@ -339,11 +353,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand#0",
           "pinName": "B"
         },
         "path": [
@@ -355,11 +369,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIand#1",
           "pinName": "A"
         },
         "path": [
@@ -371,11 +385,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIand#1",
           "pinName": "B"
         },
         "path": [
@@ -387,11 +401,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIand#2",
           "pinName": "A"
         },
         "path": [
@@ -403,22 +417,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIand#2",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIand#3",
           "pinName": "A"
         },
         "path": [
@@ -430,11 +444,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIand#3",
           "pinName": "B"
         },
         "path": [
@@ -446,41 +460,41 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIand#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y00"
         }
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIand#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y01"
         }
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIand#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y10"
         }
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIand#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y11"
         }
       }
index cc8ed5e..55151f8 100644 (file)
@@ -44,14 +44,16 @@ mograsim version: 0.1.3
           "x": 40.0,
           "y": 10.0
         },
-        "id": "GUI_rsLatch"
+        "id": "GUI_rsLatch",
+        "name": "GUI_rsLatch#0"
       },
       {
         "pos": {
           "x": 40.0,
           "y": 40.0
         },
-        "id": "GUInand3"
+        "id": "GUInand3",
+        "name": "GUInand3#0"
       },
       {
         "pos": {
@@ -59,6 +61,7 @@ mograsim version: 0.1.3
           "y": 60.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
@@ -66,71 +69,76 @@ mograsim version: 0.1.3
           "x": 120.0,
           "y": 30.0
         },
-        "id": "GUI_rsLatch"
+        "id": "GUI_rsLatch",
+        "name": "GUI_rsLatch#1"
       },
       {
         "pos": {
-          "x": 9.0,
-          "y": 24.0
+          "x": 19.0,
+          "y": 64.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 19.0,
-          "y": 64.0
+          "x": 9.0,
+          "y": 24.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
         "pos": {
           "x": 99.0,
-          "y": 34.0
+          "y": 44.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "params": 1
       },
       {
         "pos": {
           "x": 99.0,
-          "y": 44.0
+          "y": 34.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "C"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUI_rsLatch#0",
           "pinName": "_R"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUInand3#0",
           "pinName": "B"
         },
         "path": [
@@ -142,22 +150,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": [
@@ -177,11 +185,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUI_rsLatch#0",
           "pinName": "_S"
         },
         "path": [
@@ -193,22 +201,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUInand3#0",
           "pinName": "C"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUI_rsLatch#0",
           "pinName": "_Q"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": [
@@ -220,11 +228,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUInand3#0",
           "pinName": "A"
         },
         "path": [
@@ -240,44 +248,44 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUI_rsLatch#1",
           "pinName": "_S"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUInand3#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUI_rsLatch#1",
           "pinName": "_R"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": [
@@ -289,21 +297,21 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUI_rsLatch#1",
           "pinName": "Q"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q"
         }
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUI_rsLatch#1",
           "pinName": "_Q"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "_Q"
         }
       }
index 4b39347..69562ce 100644 (file)
@@ -39,20 +39,13 @@ mograsim version: 0.1.3
   "submodel": {
     "innerScale": 0.4,
     "subComps": [
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 2.5
-        },
-        "id": "GUINandGate",
-        "params": 1
-      },
       {
         "pos": {
           "x": 15.0,
           "y": 27.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
@@ -60,14 +53,16 @@ mograsim version: 0.1.3
           "x": 45.0,
           "y": 7.5
         },
-        "id": "GUI_rsLatch"
+        "id": "GUI_rsLatch",
+        "name": "GUI_rsLatch#0"
       },
       {
         "pos": {
-          "x": 4.0,
-          "y": 36.5
+          "x": 10.0,
+          "y": 2.5
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
@@ -76,38 +71,48 @@ mograsim version: 0.1.3
           "y": 11.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "params": 1
+      },
+      {
+        "pos": {
+          "x": 4.0,
+          "y": 36.5
+        },
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "E"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": [
@@ -119,11 +124,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": [
@@ -135,22 +140,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": [
@@ -170,22 +175,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUI_rsLatch#0",
           "pinName": "_S"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUI_rsLatch#0",
           "pinName": "_R"
         },
         "path": [
@@ -201,22 +206,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUI_rsLatch#0",
           "pinName": "Q"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUI_rsLatch#0",
           "pinName": "_Q"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "_Q"
         }
       }
index a1d560c..29f4ac0 100644 (file)
@@ -81,65 +81,72 @@ mograsim version: 0.1.3
     "subComps": [
       {
         "pos": {
-          "x": 30.0,
-          "y": 7.5
+          "x": 14.0,
+          "y": 71.5
         },
-        "id": "GUIdlatch"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "params": 1
       },
       {
         "pos": {
-          "x": 30.0,
-          "y": 32.5
+          "x": 14.0,
+          "y": 46.5
         },
-        "id": "GUIdlatch"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "params": 1
       },
       {
         "pos": {
-          "x": 30.0,
-          "y": 57.5
+          "x": 14.0,
+          "y": 96.5
         },
-        "id": "GUIdlatch"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "params": 1
       },
       {
         "pos": {
           "x": 30.0,
-          "y": 82.5
+          "y": 32.5
         },
-        "id": "GUIdlatch"
+        "id": "GUIdlatch",
+        "name": "GUIdlatch#1"
       },
       {
         "pos": {
-          "x": 14.0,
-          "y": 46.5
+          "x": 30.0,
+          "y": 7.5
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIdlatch",
+        "name": "GUIdlatch#0"
       },
       {
         "pos": {
-          "x": 14.0,
-          "y": 71.5
+          "x": 30.0,
+          "y": 82.5
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIdlatch",
+        "name": "GUIdlatch#3"
       },
       {
         "pos": {
-          "x": 14.0,
-          "y": 96.5
+          "x": 30.0,
+          "y": 57.5
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIdlatch",
+        "name": "GUIdlatch#2"
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "C"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": [
@@ -151,66 +158,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIdlatch#3",
           "pinName": "E"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIdlatch#2",
           "pinName": "E"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIdlatch#1",
           "pinName": "E"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIdlatch#0",
           "pinName": "E"
         },
         "path": [
@@ -222,88 +229,88 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D1"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIdlatch#0",
           "pinName": "D"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D2"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIdlatch#1",
           "pinName": "D"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D3"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIdlatch#2",
           "pinName": "D"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D4"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIdlatch#3",
           "pinName": "D"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIdlatch#0",
           "pinName": "Q"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIdlatch#1",
           "pinName": "Q"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIdlatch#2",
           "pinName": "Q"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIdlatch#3",
           "pinName": "Q"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q4"
         },
         "path": []
index aef6aee..dc4c616 100644 (file)
@@ -49,98 +49,101 @@ mograsim version: 0.1.3
     "subComps": [
       {
         "pos": {
-          "x": 5.0,
+          "x": 57.5,
           "y": 40.0
         },
-        "id": "GUIhalfadder"
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "params": 1
       },
       {
         "pos": {
-          "x": 45.0,
-          "y": 7.5
+          "x": 5.0,
+          "y": 40.0
         },
-        "id": "GUIhalfadder"
+        "id": "GUIhalfadder",
+        "name": "GUIhalfadder#0"
       },
       {
         "pos": {
-          "x": 57.5,
-          "y": 40.0
+          "x": 45.0,
+          "y": 7.5
         },
-        "id": "GUINandGate",
-        "params": 1
+        "id": "GUIhalfadder",
+        "name": "GUIhalfadder#1"
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIhalfadder#1",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIhalfadder#0",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "C"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIhalfadder#0",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIhalfadder#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIhalfadder#1",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIhalfadder#0",
           "pinName": "_Z"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIhalfadder#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIhalfadder#1",
           "pinName": "_Z"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": [
@@ -164,11 +167,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Z"
         }
       }
index 948192b..761d6ce 100644 (file)
@@ -39,28 +39,22 @@ mograsim version: 0.1.3
   "submodel": {
     "innerScale": 0.4,
     "subComps": [
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 15.0
-        },
-        "id": "GUINandGate",
-        "params": 1
-      },
       {
         "pos": {
           "x": 40.0,
           "y": 2.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 40.0,
-          "y": 27.5
+          "x": 10.0,
+          "y": 15.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
@@ -69,22 +63,34 @@ mograsim version: 0.1.3
           "y": 2.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "params": 1
       },
       {
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 36.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "params": 1
+      },
+      {
+        "pos": {
+          "x": 40.0,
+          "y": 27.5
+        },
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "params": 1
       },
       {
         "pos": {
           "x": 4.0,
-          "y": 36.5
+          "y": 11.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
@@ -93,28 +99,29 @@ mograsim version: 0.1.3
           "y": 24.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": [
@@ -126,11 +133,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": [
@@ -142,22 +149,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
         "path": [
@@ -169,11 +176,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": [
@@ -185,22 +192,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "_Z"
         },
         "path": [
@@ -216,11 +223,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": [
@@ -232,11 +239,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
         "path": [
@@ -248,11 +255,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
         "path": [
@@ -268,11 +275,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
         "path": [
@@ -288,11 +295,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y"
         },
         "path": []
index 4cc997c..7ce9002 100644 (file)
@@ -39,28 +39,22 @@ mograsim version: 0.1.3
   "submodel": {
     "innerScale": 0.4,
     "subComps": [
-      {
-        "pos": {
-          "x": 10.0,
-          "y": 7.5
-        },
-        "id": "GUINandGate",
-        "params": 1
-      },
       {
         "pos": {
           "x": 35.0,
           "y": 22.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 35.0,
-          "y": 47.5
+          "x": 10.0,
+          "y": 7.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
@@ -69,98 +63,110 @@ mograsim version: 0.1.3
           "y": 30.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "params": 1
       },
       {
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 21.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "params": 1
+      },
+      {
+        "pos": {
+          "x": 35.0,
+          "y": 47.5
+        },
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "params": 1
       },
       {
         "pos": {
           "x": 4.0,
-          "y": 21.5
+          "y": 11.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "S0"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I0"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
         "path": [
@@ -172,42 +178,42 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I1"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y"
         }
       }
index b7a8e71..21e2f21 100644 (file)
@@ -114,86 +114,93 @@ mograsim version: 0.1.3
       {
         "pos": {
           "x": 30.0,
-          "y": 7.5
+          "y": 112.5
         },
-        "id": "GUImux1"
+        "id": "GUImux1",
+        "name": "GUImux1#3"
       },
       {
         "pos": {
-          "x": 30.0,
-          "y": 42.5
+          "x": 24.0,
+          "y": 46.5
         },
-        "id": "GUImux1"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "params": 1
       },
       {
         "pos": {
-          "x": 30.0,
-          "y": 77.5
+          "x": 24.0,
+          "y": 11.5
         },
-        "id": "GUImux1"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "params": 1
       },
       {
         "pos": {
           "x": 30.0,
-          "y": 112.5
+          "y": 7.5
         },
-        "id": "GUImux1"
+        "id": "GUImux1",
+        "name": "GUImux1#0"
       },
       {
         "pos": {
           "x": 24.0,
-          "y": 11.5
+          "y": 81.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 24.0,
-          "y": 46.5
+          "x": 30.0,
+          "y": 77.5
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUImux1",
+        "name": "GUImux1#2"
       },
       {
         "pos": {
-          "x": 24.0,
-          "y": 81.5
+          "x": 30.0,
+          "y": 42.5
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUImux1",
+        "name": "GUImux1#1"
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "S0"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUImux1#0",
           "pinName": "S0"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I0_1"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUImux1#0",
           "pinName": "I0"
         },
         "path": [
@@ -209,11 +216,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I1_1"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUImux1#0",
           "pinName": "I1"
         },
         "path": [
@@ -229,44 +236,44 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUImux1#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUImux1#1",
           "pinName": "S0"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I0_2"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUImux1#1",
           "pinName": "I0"
         },
         "path": [
@@ -282,11 +289,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I1_2"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUImux1#1",
           "pinName": "I1"
         },
         "path": [
@@ -302,43 +309,43 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUImux1#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y2"
         }
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUImux1#2",
           "pinName": "S0"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I0_3"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUImux1#2",
           "pinName": "I0"
         },
         "path": [
@@ -354,11 +361,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I1_3"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUImux1#2",
           "pinName": "I1"
         },
         "path": [
@@ -374,21 +381,21 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUImux1#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y3"
         }
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUImux1#3",
           "pinName": "S0"
         },
         "path": [
@@ -400,11 +407,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I0_4"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUImux1#3",
           "pinName": "I0"
         },
         "path": [
@@ -420,11 +427,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I1_4"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUImux1#3",
           "pinName": "I1"
         },
         "path": [
@@ -440,11 +447,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUImux1#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y4"
         }
       }
index 559238d..b3a6300 100644 (file)
@@ -41,18 +41,20 @@ mograsim version: 0.1.3
     "subComps": [
       {
         "pos": {
-          "x": 10.0,
+          "x": 35.0,
           "y": 15.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 35.0,
+          "x": 10.0,
           "y": 15.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
@@ -61,6 +63,7 @@ mograsim version: 0.1.3
           "y": 2.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "params": 1
       },
       {
@@ -69,48 +72,49 @@ mograsim version: 0.1.3
           "y": 24.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": [
@@ -122,11 +126,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": [
@@ -138,11 +142,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
         "path": [
@@ -158,11 +162,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "C"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
         "path": [
@@ -178,11 +182,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y"
         },
         "path": []
index a6268de..7d575c8 100644 (file)
@@ -74,120 +74,128 @@ mograsim version: 0.1.3
       {
         "pos": {
           "x": 30.0,
-          "y": 2.5
+          "y": 27.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
         "pos": {
           "x": 30.0,
-          "y": 27.5
+          "y": 2.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
         "pos": {
           "x": 30.0,
-          "y": 52.5
+          "y": 77.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "params": 1
       },
       {
         "pos": {
-          "x": 30.0,
-          "y": 77.5
+          "x": 14.0,
+          "y": 36.5
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 14.0,
-          "y": 11.5
+          "x": 30.0,
+          "y": 52.5
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "params": 1
       },
       {
         "pos": {
           "x": 14.0,
-          "y": 36.5
+          "y": 11.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
         "pos": {
           "x": 14.0,
-          "y": 61.5
+          "y": 86.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "params": 1
       },
       {
         "pos": {
           "x": 14.0,
-          "y": 86.5
+          "y": 61.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A1"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A2"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A3"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A4"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": [
@@ -199,11 +207,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": [
@@ -215,11 +223,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
         "path": [
@@ -231,11 +239,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
         "path": [
@@ -247,11 +255,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": [
@@ -263,11 +271,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": [
@@ -279,11 +287,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
         "path": [
@@ -295,11 +303,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
         "path": [
@@ -311,44 +319,44 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y4"
         },
         "path": []
index 54933c4..d4bcd57 100644 (file)
@@ -50,176 +50,191 @@ mograsim version: 0.1.3
       {
         "pos": {
           "x": 20.0,
-          "y": 15.0
+          "y": 65.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
         "pos": {
           "x": 20.0,
-          "y": 65.0
+          "y": 15.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
         "pos": {
           "x": 20.0,
-          "y": 115.0
+          "y": 165.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "params": 1
       },
       {
         "pos": {
           "x": 20.0,
-          "y": 165.0
+          "y": 115.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 50.0,
-          "y": 40.0
+          "x": 14.0,
+          "y": 74.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 50.0,
-          "y": 140.0
+          "x": 14.0,
+          "y": 24.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
         "pos": {
-          "x": 110.0,
-          "y": 40.0
+          "x": 14.0,
+          "y": 174.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "params": 1
       },
       {
         "pos": {
-          "x": 110.0,
-          "y": 140.0
+          "x": 14.0,
+          "y": 124.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 140.0,
-          "y": 90.0
+          "x": 104.0,
+          "y": 149.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "params": 1
       },
       {
         "pos": {
-          "x": 14.0,
-          "y": 24.0
+          "x": 104.0,
+          "y": 49.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 14.0,
-          "y": 74.0
+          "x": 140.0,
+          "y": 90.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "params": 1
       },
       {
         "pos": {
-          "x": 14.0,
-          "y": 124.0
+          "x": 50.0,
+          "y": 140.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "params": 1
       },
       {
         "pos": {
-          "x": 14.0,
-          "y": 174.0
+          "x": 50.0,
+          "y": 40.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 104.0,
-          "y": 49.0
+          "x": 110.0,
+          "y": 140.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "params": 1
       },
       {
         "pos": {
-          "x": 104.0,
-          "y": 149.0
+          "x": 110.0,
+          "y": 40.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A1"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A2"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A3"
         },
         "pin2": {
-          "compId": 12,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A4"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": [
@@ -231,11 +246,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": [
@@ -247,11 +262,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
         "path": [
@@ -263,11 +278,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
         "path": [
@@ -279,11 +294,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": [
@@ -295,11 +310,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": [
@@ -311,11 +326,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
         "path": [
@@ -327,11 +342,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
         "path": [
@@ -343,73 +358,73 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "A"
         },
         "path": [
@@ -421,11 +436,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
         "path": [
@@ -437,11 +452,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "A"
         },
         "path": [
@@ -453,11 +468,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
         "path": [
@@ -469,31 +484,31 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y"
         }
       }
index 7db8660..86b4413 100644 (file)
@@ -106,260 +106,280 @@ mograsim version: 0.1.3
       {
         "pos": {
           "x": 15.0,
-          "y": 2.5
+          "y": 27.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
         "pos": {
           "x": 15.0,
-          "y": 27.5
+          "y": 2.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
         "pos": {
           "x": 15.0,
-          "y": 52.5
+          "y": 77.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "params": 1
       },
       {
         "pos": {
           "x": 15.0,
-          "y": 77.5
+          "y": 52.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 15.0,
-          "y": 102.5
+          "x": 65.0,
+          "y": 77.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#11",
         "params": 1
       },
       {
         "pos": {
-          "x": 15.0,
-          "y": 127.5
+          "x": 65.0,
+          "y": 52.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#10",
         "params": 1
       },
       {
         "pos": {
-          "x": 15.0,
-          "y": 152.5
+          "x": 6.5,
+          "y": 36.5
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 15.0,
-          "y": 177.5
+          "x": 6.5,
+          "y": 11.5
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
         "pos": {
-          "x": 65.0,
-          "y": 2.5
+          "x": 6.5,
+          "y": 86.5
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "params": 1
       },
       {
         "pos": {
-          "x": 65.0,
-          "y": 27.5
+          "x": 6.5,
+          "y": 61.5
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 65.0,
-          "y": 52.5
+          "x": 6.5,
+          "y": 136.5
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "params": 1
       },
       {
         "pos": {
-          "x": 65.0,
-          "y": 77.5
+          "x": 6.5,
+          "y": 111.5
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 6.5,
-          "y": 11.5
+          "x": 65.0,
+          "y": 27.5
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
         "params": 1
       },
       {
         "pos": {
           "x": 6.5,
-          "y": 36.5
+          "y": 186.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "params": 1
       },
       {
         "pos": {
-          "x": 6.5,
-          "y": 61.5
+          "x": 65.0,
+          "y": 2.5
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "params": 1
       },
       {
         "pos": {
           "x": 6.5,
-          "y": 86.5
+          "y": 161.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "params": 1
       },
       {
         "pos": {
-          "x": 6.5,
-          "y": 111.5
+          "x": 15.0,
+          "y": 127.5
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "params": 1
       },
       {
         "pos": {
-          "x": 6.5,
-          "y": 136.5
+          "x": 15.0,
+          "y": 102.5
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 6.5,
-          "y": 161.5
+          "x": 15.0,
+          "y": 177.5
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "params": 1
       },
       {
         "pos": {
-          "x": 6.5,
-          "y": 186.5
+          "x": 15.0,
+          "y": 152.5
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A1"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A2"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A3"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A4"
         },
         "pin2": {
-          "compId": 16,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B1"
         },
         "pin2": {
-          "compId": 17,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B2"
         },
         "pin2": {
-          "compId": 18,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B3"
         },
         "pin2": {
-          "compId": 19,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B4"
         },
         "pin2": {
-          "compId": 20,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": [
@@ -371,11 +391,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": [
@@ -387,11 +407,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": [
@@ -403,11 +423,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": [
@@ -419,11 +439,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
         "path": [
@@ -435,11 +455,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
         "path": [
@@ -451,11 +471,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
         "path": [
@@ -467,11 +487,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
         "path": [
@@ -483,11 +503,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
         "path": [
@@ -499,11 +519,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "B"
         },
         "path": [
@@ -515,11 +535,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "A"
         },
         "path": [
@@ -531,11 +551,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
         "path": [
@@ -547,11 +567,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 19,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "A"
         },
         "path": [
@@ -563,11 +583,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 19,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
         "path": [
@@ -579,11 +599,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 20,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "A"
         },
         "path": [
@@ -595,11 +615,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 20,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
         "path": [
@@ -611,11 +631,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "A"
         },
         "path": [
@@ -631,11 +651,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
         "path": [
@@ -651,11 +671,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUINandGate#9",
           "pinName": "A"
         },
         "path": [
@@ -671,11 +691,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
         "path": [
@@ -691,11 +711,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUINandGate#10",
           "pinName": "A"
         },
         "path": [
@@ -711,11 +731,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUINandGate#10",
           "pinName": "B"
         },
         "path": [
@@ -731,11 +751,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUINandGate#11",
           "pinName": "A"
         },
         "path": [
@@ -751,11 +771,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUINandGate#11",
           "pinName": "B"
         },
         "path": [
@@ -771,44 +791,44 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUINandGate#9",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUINandGate#10",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUINandGate#11",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y4"
         },
         "path": []
index f748b0b..3cb8583 100644 (file)
@@ -145,108 +145,75 @@ mograsim version: 0.1.3
     "subComps": [
       {
         "pos": {
-          "x": 55.0,
-          "y": 45.0
-        },
-        "id": "GUIdemux2"
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 150.0
-        },
-        "id": "GUIdemux2"
-      },
-      {
-        "pos": {
-          "x": 130.0,
-          "y": 150.0
-        },
-        "id": "GUIand41"
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 325.0
-        },
-        "id": "GUIdlatch4"
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 475.0
-        },
-        "id": "GUIdlatch4"
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 625.0
-        },
-        "id": "GUIdlatch4"
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 775.0
-        },
-        "id": "GUIdlatch4"
-      },
-      {
-        "pos": {
-          "x": 235.0,
-          "y": 375.0
+          "x": 44.0,
+          "y": 649.0
         },
-        "id": "GUIand41"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
+        "params": 1
       },
       {
         "pos": {
-          "x": 235.0,
-          "y": 485.0
+          "x": 39.0,
+          "y": 639.0
         },
-        "id": "GUIandor414"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
+        "params": 1
       },
       {
         "pos": {
-          "x": 235.0,
-          "y": 635.0
+          "x": 129.0,
+          "y": 329.0
         },
-        "id": "GUIandor414"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
+        "params": 1
       },
       {
         "pos": {
-          "x": 235.0,
-          "y": 785.0
+          "x": 49.0,
+          "y": 659.0
         },
-        "id": "GUIandor414"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
+        "params": 1
       },
       {
         "pos": {
-          "x": 135.0,
-          "y": 325.0
+          "x": 119.0,
+          "y": 349.0
         },
-        "id": "GUIand41"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#18",
+        "params": 1
       },
       {
         "pos": {
-          "x": 135.0,
-          "y": 435.0
+          "x": 124.0,
+          "y": 339.0
         },
-        "id": "GUIandor414"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#17",
+        "params": 1
       },
       {
         "pos": {
-          "x": 135.0,
-          "y": 585.0
+          "x": 114.0,
+          "y": 359.0
         },
-        "id": "GUIandor414"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#19",
+        "params": 1
       },
       {
         "pos": {
-          "x": 135.0,
-          "y": 735.0
+          "x": 104.0,
+          "y": 164.0
         },
-        "id": "GUIandor414"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "params": 1
       },
       {
         "pos": {
@@ -254,14 +221,16 @@ mograsim version: 0.1.3
           "y": 154.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
         "pos": {
-          "x": 104.0,
-          "y": 164.0
+          "x": 94.0,
+          "y": 184.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "params": 1
       },
       {
@@ -270,14 +239,16 @@ mograsim version: 0.1.3
           "y": 174.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 94.0,
-          "y": 184.0
+          "x": 39.0,
+          "y": 649.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "params": 1
       },
       {
@@ -286,14 +257,16 @@ mograsim version: 0.1.3
           "y": 549.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 39.0,
-          "y": 649.0
+          "x": 49.0,
+          "y": 809.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "params": 1
       },
       {
@@ -302,14 +275,16 @@ mograsim version: 0.1.3
           "y": 749.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "params": 1
       },
       {
         "pos": {
-          "x": 49.0,
-          "y": 809.0
+          "x": 39.0,
+          "y": 489.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "params": 1
       },
       {
@@ -318,22 +293,25 @@ mograsim version: 0.1.3
           "y": 479.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "params": 1
       },
       {
         "pos": {
-          "x": 39.0,
-          "y": 489.0
+          "x": 44.0,
+          "y": 499.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "params": 1
       },
       {
         "pos": {
-          "x": 44.0,
-          "y": 499.0
+          "x": 34.0,
+          "y": 629.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "params": 1
       },
       {
@@ -342,102 +320,138 @@ mograsim version: 0.1.3
           "y": 509.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "params": 1
       },
       {
         "pos": {
-          "x": 34.0,
-          "y": 629.0
+          "x": 135.0,
+          "y": 735.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIandor414",
+        "name": "GUIandor414#5"
       },
       {
         "pos": {
-          "x": 39.0,
-          "y": 639.0
+          "x": 135.0,
+          "y": 435.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIandor414",
+        "name": "GUIandor414#3"
       },
       {
         "pos": {
-          "x": 44.0,
-          "y": 649.0
+          "x": 135.0,
+          "y": 585.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIandor414",
+        "name": "GUIandor414#4"
       },
       {
         "pos": {
-          "x": 49.0,
-          "y": 659.0
+          "x": 235.0,
+          "y": 635.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIandor414",
+        "name": "GUIandor414#1"
       },
       {
         "pos": {
-          "x": 129.0,
-          "y": 329.0
+          "x": 235.0,
+          "y": 785.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIandor414",
+        "name": "GUIandor414#2"
       },
       {
         "pos": {
-          "x": 124.0,
-          "y": 339.0
+          "x": 235.0,
+          "y": 485.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIandor414",
+        "name": "GUIandor414#0"
       },
       {
         "pos": {
-          "x": 119.0,
-          "y": 349.0
+          "x": 55.0,
+          "y": 475.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#1"
       },
       {
         "pos": {
-          "x": 114.0,
-          "y": 359.0
+          "x": 55.0,
+          "y": 325.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#0"
       },
       {
         "pos": {
-          "x": 129.0,
-          "y": 479.0
+          "x": 55.0,
+          "y": 775.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#3"
       },
       {
         "pos": {
-          "x": 124.0,
-          "y": 489.0
+          "x": 55.0,
+          "y": 625.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#2"
+      },
+      {
+        "pos": {
+          "x": 135.0,
+          "y": 325.0
+        },
+        "id": "GUIand41",
+        "name": "GUIand41#2"
       },
       {
         "pos": {
           "x": 119.0,
-          "y": 499.0
+          "y": 799.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#30",
         "params": 1
       },
       {
         "pos": {
           "x": 114.0,
-          "y": 509.0
+          "y": 809.0
+        },
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#31",
+        "params": 1
+      },
+      {
+        "pos": {
+          "x": 130.0,
+          "y": 150.0
+        },
+        "id": "GUIand41",
+        "name": "GUIand41#0"
+      },
+      {
+        "pos": {
+          "x": 235.0,
+          "y": 375.0
+        },
+        "id": "GUIand41",
+        "name": "GUIand41#1"
+      },
+      {
+        "pos": {
+          "x": 124.0,
+          "y": 639.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "params": 1
       },
       {
@@ -446,14 +460,16 @@ mograsim version: 0.1.3
           "y": 629.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "params": 1
       },
       {
         "pos": {
-          "x": 124.0,
-          "y": 639.0
+          "x": 114.0,
+          "y": 659.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#27",
         "params": 1
       },
       {
@@ -462,14 +478,16 @@ mograsim version: 0.1.3
           "y": 649.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#26",
         "params": 1
       },
       {
         "pos": {
-          "x": 114.0,
-          "y": 659.0
+          "x": 124.0,
+          "y": 789.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#29",
         "params": 1
       },
       {
@@ -478,52 +496,81 @@ mograsim version: 0.1.3
           "y": 779.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#28",
         "params": 1
       },
+      {
+        "pos": {
+          "x": 55.0,
+          "y": 150.0
+        },
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#1"
+      },
+      {
+        "pos": {
+          "x": 55.0,
+          "y": 45.0
+        },
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#0"
+      },
       {
         "pos": {
           "x": 124.0,
-          "y": 789.0
+          "y": 489.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "params": 1
       },
       {
         "pos": {
-          "x": 119.0,
-          "y": 799.0
+          "x": 129.0,
+          "y": 479.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "params": 1
       },
       {
         "pos": {
           "x": 114.0,
-          "y": 809.0
+          "y": 509.0
+        },
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#23",
+        "params": 1
+      },
+      {
+        "pos": {
+          "x": 119.0,
+          "y": 499.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A0"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIdemux2#0",
           "pinName": "S0"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A1"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIdemux2#0",
           "pinName": "S1"
         },
         "path": [
@@ -539,11 +586,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B0"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIdemux2#1",
           "pinName": "S0"
         },
         "path": [
@@ -559,11 +606,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B1"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIdemux2#1",
           "pinName": "S1"
         },
         "path": [
@@ -579,99 +626,99 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIdemux2#1",
           "pinName": "Y00"
         },
         "pin2": {
-          "compId": 16,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIdemux2#1",
           "pinName": "Y01"
         },
         "pin2": {
-          "compId": 17,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIdemux2#1",
           "pinName": "Y10"
         },
         "pin2": {
-          "compId": 18,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIdemux2#1",
           "pinName": "Y11"
         },
         "pin2": {
-          "compId": 19,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "A1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "A2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "A3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 19,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "A4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "WE"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "B"
         },
         "path": [
@@ -695,11 +742,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIdlatch4#0",
           "pinName": "C"
         },
         "path": [
@@ -723,11 +770,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIdlatch4#1",
           "pinName": "C"
         },
         "path": [
@@ -751,11 +798,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIdlatch4#2",
           "pinName": "C"
         },
         "path": [
@@ -779,11 +826,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIdlatch4#3",
           "pinName": "C"
         },
         "path": [
@@ -807,44 +854,44 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D1"
         },
         "pin2": {
-          "compId": 20,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D2"
         },
         "pin2": {
-          "compId": 21,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D3"
         },
         "pin2": {
-          "compId": 22,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D4"
         },
         "pin2": {
-          "compId": 23,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "path": [
@@ -856,11 +903,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 24,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIdlatch4#0",
           "pinName": "D1"
         },
         "path": [
@@ -872,11 +919,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 25,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIdlatch4#0",
           "pinName": "D2"
         },
         "path": [
@@ -888,11 +935,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 26,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIdlatch4#0",
           "pinName": "D3"
         },
         "path": [
@@ -904,11 +951,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 27,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIdlatch4#0",
           "pinName": "D4"
         },
         "path": [
@@ -920,187 +967,187 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 24,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIdlatch4#1",
           "pinName": "D1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 25,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIdlatch4#1",
           "pinName": "D2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 26,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIdlatch4#1",
           "pinName": "D3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 27,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIdlatch4#1",
           "pinName": "D4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 24,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 20,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 20,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 28,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 25,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 29,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 26,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 30,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 27,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compId": 31,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 28,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIdlatch4#2",
           "pinName": "D1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 29,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIdlatch4#2",
           "pinName": "D2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 30,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIdlatch4#2",
           "pinName": "D3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 31,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIdlatch4#2",
           "pinName": "D4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 29,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compId": 21,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 30,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compId": 22,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 31,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compId": 23,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 28,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIdlatch4#3",
           "pinName": "D1"
         },
         "path": [
@@ -1112,11 +1159,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 21,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIdlatch4#3",
           "pinName": "D2"
         },
         "path": [
@@ -1128,11 +1175,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 22,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIdlatch4#3",
           "pinName": "D3"
         },
         "path": [
@@ -1144,198 +1191,198 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 23,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIdlatch4#3",
           "pinName": "D4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIdlatch4#0",
           "pinName": "Q1"
         },
         "pin2": {
-          "compId": 32,
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIdlatch4#0",
           "pinName": "Q2"
         },
         "pin2": {
-          "compId": 33,
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIdlatch4#0",
           "pinName": "Q3"
         },
         "pin2": {
-          "compId": 34,
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIdlatch4#0",
           "pinName": "Q4"
         },
         "pin2": {
-          "compId": 35,
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIdlatch4#1",
           "pinName": "Q1"
         },
         "pin2": {
-          "compId": 36,
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIdlatch4#1",
           "pinName": "Q2"
         },
         "pin2": {
-          "compId": 37,
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIdlatch4#1",
           "pinName": "Q3"
         },
         "pin2": {
-          "compId": 38,
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIdlatch4#1",
           "pinName": "Q4"
         },
         "pin2": {
-          "compId": 39,
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIdlatch4#2",
           "pinName": "Q1"
         },
         "pin2": {
-          "compId": 40,
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIdlatch4#2",
           "pinName": "Q2"
         },
         "pin2": {
-          "compId": 41,
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIdlatch4#2",
           "pinName": "Q3"
         },
         "pin2": {
-          "compId": 42,
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIdlatch4#2",
           "pinName": "Q4"
         },
         "pin2": {
-          "compId": 43,
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUIdlatch4#3",
           "pinName": "Q1"
         },
         "pin2": {
-          "compId": 44,
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUIdlatch4#3",
           "pinName": "Q2"
         },
         "pin2": {
-          "compId": 45,
+          "compName": "WireCrossPoint#29",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUIdlatch4#3",
           "pinName": "Q3"
         },
         "pin2": {
-          "compId": 46,
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUIdlatch4#3",
           "pinName": "Q4"
         },
         "pin2": {
-          "compId": 47,
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIdemux2#0",
           "pinName": "Y00"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "B"
         },
         "path": [
@@ -1351,11 +1398,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIdemux2#0",
           "pinName": "Y01"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "B"
         },
         "path": [
@@ -1371,11 +1418,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIdemux2#0",
           "pinName": "Y10"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "B"
         },
         "path": [
@@ -1391,11 +1438,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIdemux2#0",
           "pinName": "Y11"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "B"
         },
         "path": [
@@ -1411,11 +1458,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "B"
         },
         "path": [
@@ -1427,11 +1474,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "B"
         },
         "path": [
@@ -1443,11 +1490,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "B"
         },
         "path": [
@@ -1459,11 +1506,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 19,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "B"
         },
         "path": [
@@ -1475,11 +1522,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 32,
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "A1"
         },
         "path": [
@@ -1491,11 +1538,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 33,
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "A2"
         },
         "path": [
@@ -1507,11 +1554,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 34,
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "A3"
         },
         "path": [
@@ -1523,11 +1570,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 35,
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "A4"
         },
         "path": [
@@ -1539,11 +1586,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 36,
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "A1"
         },
         "path": [
@@ -1555,11 +1602,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 37,
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "A2"
         },
         "path": [
@@ -1571,11 +1618,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 38,
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "A3"
         },
         "path": [
@@ -1587,11 +1634,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 39,
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "A4"
         },
         "path": [
@@ -1603,11 +1650,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 40,
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "A1"
         },
         "path": [
@@ -1619,11 +1666,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 41,
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "A2"
         },
         "path": [
@@ -1635,11 +1682,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 42,
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "A3"
         },
         "path": [
@@ -1651,11 +1698,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 43,
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "A4"
         },
         "path": [
@@ -1667,11 +1714,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 44,
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "A1"
         },
         "path": [
@@ -1683,11 +1730,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 45,
+          "compName": "WireCrossPoint#29",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "A2"
         },
         "path": [
@@ -1699,11 +1746,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 46,
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "A3"
         },
         "path": [
@@ -1715,11 +1762,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 47,
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "A4"
         },
         "path": [
@@ -1731,187 +1778,187 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 32,
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "A1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 33,
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "A2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 34,
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "A3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 35,
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "A4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 36,
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "A1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 37,
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "A2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 38,
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "A3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 39,
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "A4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 40,
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "A1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 41,
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "A2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 42,
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "A3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 43,
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "A4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 44,
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "A1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 45,
+          "compName": "WireCrossPoint#29",
           "pinName": ""
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "A2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 46,
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "A3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 47,
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "A4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "C1"
         },
         "path": [
@@ -1935,11 +1982,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "C2"
         },
         "path": [
@@ -1963,11 +2010,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "C3"
         },
         "path": [
@@ -1991,11 +2038,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "C4"
         },
         "path": [
@@ -2019,11 +2066,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "C1"
         },
         "path": [
@@ -2047,11 +2094,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "C2"
         },
         "path": [
@@ -2075,11 +2122,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "C3"
         },
         "path": [
@@ -2103,11 +2150,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "C4"
         },
         "path": [
@@ -2131,11 +2178,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "C1"
         },
         "path": [
@@ -2159,11 +2206,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "C2"
         },
         "path": [
@@ -2187,11 +2234,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "C3"
         },
         "path": [
@@ -2215,11 +2262,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "C4"
         },
         "path": [
@@ -2243,11 +2290,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QA1"
         },
         "path": [
@@ -2263,11 +2310,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QA2"
         },
         "path": [
@@ -2283,11 +2330,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QA3"
         },
         "path": [
@@ -2303,11 +2350,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QA4"
         },
         "path": [
@@ -2323,11 +2370,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "C1"
         },
         "path": [
@@ -2351,11 +2398,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "C2"
         },
         "path": [
@@ -2379,11 +2426,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "C3"
         },
         "path": [
@@ -2407,11 +2454,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "C4"
         },
         "path": [
@@ -2435,11 +2482,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "C1"
         },
         "path": [
@@ -2463,11 +2510,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "C2"
         },
         "path": [
@@ -2491,11 +2538,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "C3"
         },
         "path": [
@@ -2519,11 +2566,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "C4"
         },
         "path": [
@@ -2547,11 +2594,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "C1"
         },
         "path": [
@@ -2575,11 +2622,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "C2"
         },
         "path": [
@@ -2603,11 +2650,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "C3"
         },
         "path": [
@@ -2631,11 +2678,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "C4"
         },
         "path": [
@@ -2659,11 +2706,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QB1"
         },
         "path": [
@@ -2687,11 +2734,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QB2"
         },
         "path": [
@@ -2715,11 +2762,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QB3"
         },
         "path": [
@@ -2743,11 +2790,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QB4"
         },
         "path": [
index 976f09c..99f606d 100644 (file)
@@ -177,108 +177,83 @@ mograsim version: 0.1.3
     "subComps": [
       {
         "pos": {
-          "x": 55.0,
-          "y": 45.0
-        },
-        "id": "GUIdemux2"
-      },
-      {
-        "pos": {
-          "x": 55.0,
-          "y": 150.0
-        },
-        "id": "GUIdemux2"
-      },
-      {
-        "pos": {
-          "x": 235.0,
-          "y": 150.0
-        },
-        "id": "GUIand41"
-      },
-      {
-        "pos": {
-          "x": 80.0,
-          "y": 330.0
-        },
-        "id": "GUIram2"
-      },
-      {
-        "pos": {
-          "x": 80.0,
-          "y": 480.0
+          "x": 69.0,
+          "y": 854.0
         },
-        "id": "GUIram2"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
+        "params": 1
       },
       {
         "pos": {
-          "x": 80.0,
-          "y": 630.0
+          "x": 64.0,
+          "y": 844.0
         },
-        "id": "GUIram2"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
+        "params": 1
       },
       {
         "pos": {
-          "x": 80.0,
-          "y": 780.0
+          "x": 39.0,
+          "y": 484.0
         },
-        "id": "GUIram2"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
+        "params": 1
       },
       {
         "pos": {
-          "x": 250.0,
-          "y": 375.0
+          "x": 74.0,
+          "y": 864.0
         },
-        "id": "GUIand41"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
+        "params": 1
       },
       {
         "pos": {
-          "x": 250.0,
-          "y": 485.0
+          "x": 49.0,
+          "y": 504.0
         },
-        "id": "GUIandor414"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#18",
+        "params": 1
       },
       {
         "pos": {
-          "x": 250.0,
-          "y": 635.0
+          "x": 44.0,
+          "y": 494.0
         },
-        "id": "GUIandor414"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#17",
+        "params": 1
       },
       {
         "pos": {
-          "x": 250.0,
-          "y": 785.0
+          "x": 54.0,
+          "y": 514.0
         },
-        "id": "GUIandor414"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#19",
+        "params": 1
       },
       {
         "pos": {
           "x": 155.0,
           "y": 325.0
         },
-        "id": "GUIand41"
-      },
-      {
-        "pos": {
-          "x": 155.0,
-          "y": 435.0
-        },
-        "id": "GUIandor414"
-      },
-      {
-        "pos": {
-          "x": 155.0,
-          "y": 585.0
-        },
-        "id": "GUIandor414"
+        "id": "GUIand41",
+        "name": "GUIand41#2"
       },
       {
         "pos": {
-          "x": 155.0,
-          "y": 735.0
+          "x": 224.0,
+          "y": 164.0
         },
-        "id": "GUIandor414"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "params": 1
       },
       {
         "pos": {
@@ -286,14 +261,16 @@ mograsim version: 0.1.3
           "y": 154.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
         "pos": {
-          "x": 224.0,
-          "y": 164.0
+          "x": 214.0,
+          "y": 184.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "params": 1
       },
       {
@@ -302,14 +279,16 @@ mograsim version: 0.1.3
           "y": 174.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 214.0,
-          "y": 184.0
+          "x": 64.0,
+          "y": 544.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "params": 1
       },
       {
@@ -318,14 +297,16 @@ mograsim version: 0.1.3
           "y": 534.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 64.0,
-          "y": 544.0
+          "x": 74.0,
+          "y": 564.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "params": 1
       },
       {
@@ -334,14 +315,16 @@ mograsim version: 0.1.3
           "y": 554.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "params": 1
       },
       {
         "pos": {
-          "x": 74.0,
-          "y": 564.0
+          "x": 64.0,
+          "y": 694.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "params": 1
       },
       {
@@ -350,180 +333,240 @@ mograsim version: 0.1.3
           "y": 684.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "params": 1
       },
       {
         "pos": {
-          "x": 64.0,
-          "y": 694.0
+          "x": 69.0,
+          "y": 704.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "params": 1
       },
       {
         "pos": {
-          "x": 69.0,
-          "y": 704.0
+          "x": 235.0,
+          "y": 150.0
+        },
+        "id": "GUIand41",
+        "name": "GUIand41#0"
+      },
+      {
+        "pos": {
+          "x": 59.0,
+          "y": 834.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "params": 1
       },
+      {
+        "pos": {
+          "x": 250.0,
+          "y": 375.0
+        },
+        "id": "GUIand41",
+        "name": "GUIand41#1"
+      },
       {
         "pos": {
           "x": 74.0,
           "y": 714.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "params": 1
       },
       {
         "pos": {
-          "x": 59.0,
-          "y": 834.0
+          "x": 155.0,
+          "y": 735.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIandor414",
+        "name": "GUIandor414#5"
       },
       {
         "pos": {
-          "x": 64.0,
-          "y": 844.0
+          "x": 44.0,
+          "y": 349.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "params": 1
       },
       {
         "pos": {
-          "x": 69.0,
-          "y": 854.0
+          "x": 39.0,
+          "y": 334.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "params": 1
       },
       {
         "pos": {
-          "x": 74.0,
-          "y": 864.0
+          "x": 155.0,
+          "y": 435.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIandor414",
+        "name": "GUIandor414#3"
       },
       {
         "pos": {
-          "x": 39.0,
-          "y": 484.0
+          "x": 54.0,
+          "y": 749.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#27",
         "params": 1
       },
       {
         "pos": {
-          "x": 44.0,
-          "y": 494.0
+          "x": 155.0,
+          "y": 585.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIandor414",
+        "name": "GUIandor414#4"
       },
       {
         "pos": {
           "x": 49.0,
-          "y": 504.0
+          "y": 649.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#26",
         "params": 1
       },
       {
         "pos": {
-          "x": 54.0,
-          "y": 514.0
+          "x": 80.0,
+          "y": 780.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIram2",
+        "name": "GUIram2#3"
       },
       {
         "pos": {
-          "x": 39.0,
-          "y": 634.0
+          "x": 80.0,
+          "y": 630.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIram2",
+        "name": "GUIram2#2"
       },
       {
         "pos": {
-          "x": 44.0,
-          "y": 644.0
+          "x": 55.0,
+          "y": 150.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#1"
       },
       {
         "pos": {
-          "x": 49.0,
-          "y": 654.0
+          "x": 80.0,
+          "y": 480.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIram2",
+        "name": "GUIram2#1"
       },
       {
         "pos": {
-          "x": 54.0,
-          "y": 664.0
+          "x": 80.0,
+          "y": 330.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIram2",
+        "name": "GUIram2#0"
       },
       {
         "pos": {
-          "x": 39.0,
-          "y": 334.0
+          "x": 250.0,
+          "y": 635.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIandor414",
+        "name": "GUIandor414#1"
+      },
+      {
+        "pos": {
+          "x": 55.0,
+          "y": 45.0
+        },
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#0"
+      },
+      {
+        "pos": {
+          "x": 250.0,
+          "y": 785.0
+        },
+        "id": "GUIandor414",
+        "name": "GUIandor414#2"
+      },
+      {
+        "pos": {
+          "x": 250.0,
+          "y": 485.0
+        },
+        "id": "GUIandor414",
+        "name": "GUIandor414#0"
       },
       {
         "pos": {
           "x": 44.0,
-          "y": 349.0
+          "y": 644.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "params": 1
       },
       {
         "pos": {
-          "x": 49.0,
-          "y": 649.0
+          "x": 39.0,
+          "y": 634.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "params": 1
       },
       {
         "pos": {
           "x": 54.0,
-          "y": 749.0
+          "y": 664.0
+        },
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#23",
+        "params": 1
+      },
+      {
+        "pos": {
+          "x": 49.0,
+          "y": 654.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A0"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIdemux2#0",
           "pinName": "S0"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A1"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIdemux2#0",
           "pinName": "S1"
         },
         "path": [
@@ -539,11 +582,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B0"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIdemux2#1",
           "pinName": "S0"
         },
         "path": [
@@ -559,11 +602,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B1"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIdemux2#1",
           "pinName": "S1"
         },
         "path": [
@@ -579,99 +622,99 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIdemux2#1",
           "pinName": "Y00"
         },
         "pin2": {
-          "compId": 16,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIdemux2#1",
           "pinName": "Y01"
         },
         "pin2": {
-          "compId": 17,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIdemux2#1",
           "pinName": "Y10"
         },
         "pin2": {
-          "compId": 18,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIdemux2#1",
           "pinName": "Y11"
         },
         "pin2": {
-          "compId": 19,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "A1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "A2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "A3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 19,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "A4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "WE"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "B"
         },
         "path": [
@@ -687,11 +730,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "WE"
         },
         "path": [
@@ -715,11 +758,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "WE"
         },
         "path": [
@@ -743,11 +786,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "WE"
         },
         "path": [
@@ -771,11 +814,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIand41#0",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "WE"
         },
         "path": [
@@ -799,44 +842,44 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 32,
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compId": 40,
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 40,
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "A0"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 33,
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compId": 41,
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 41,
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "A1"
         },
         "path": [
@@ -848,11 +891,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 34,
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "B0"
         },
         "path": [
@@ -864,11 +907,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 35,
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "B1"
         },
         "path": [
@@ -880,165 +923,165 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 32,
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "A0"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 33,
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "A1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 34,
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "B0"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 35,
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "B1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 32,
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compId": 36,
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 33,
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compId": 37,
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 34,
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compId": 42,
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B2"
         },
         "pin2": {
-          "compId": 42,
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 42,
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compId": 38,
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 35,
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compId": 39,
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 36,
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "A0"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 37,
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "A1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 38,
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "B0"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 39,
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "B1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 36,
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "A0"
         },
         "path": [
@@ -1050,11 +1093,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 37,
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "A1"
         },
         "path": [
@@ -1066,11 +1109,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 38,
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "B0"
         },
         "path": [
@@ -1082,22 +1125,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 39,
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compId": 43,
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 43,
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "B1"
         },
         "path": [
@@ -1109,11 +1152,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A2"
         },
         "pin2": {
-          "compId": 40,
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "path": [
@@ -1125,33 +1168,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A3"
         },
         "pin2": {
-          "compId": 41,
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B3"
         },
         "pin2": {
-          "compId": 43,
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 20,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "D1"
         },
         "path": [
@@ -1163,11 +1206,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 21,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "D2"
         },
         "path": [
@@ -1179,11 +1222,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 22,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "D3"
         },
         "path": [
@@ -1195,11 +1238,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 23,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "D4"
         },
         "path": [
@@ -1211,231 +1254,231 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 20,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "D1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 21,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "D2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 22,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "D3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 23,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "D4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 20,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 24,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 21,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 25,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 22,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 26,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 23,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 27,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 24,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "D1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 25,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "D2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 26,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "D3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 27,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "D4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 24,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 28,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 25,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 29,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 26,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 30,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 27,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compId": 31,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 28,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "D1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 29,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "D2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 30,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "D3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 31,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "D4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D1"
         },
         "pin2": {
-          "compId": 28,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "path": [
@@ -1447,11 +1490,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D2"
         },
         "pin2": {
-          "compId": 29,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "path": [
@@ -1463,11 +1506,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D3"
         },
         "pin2": {
-          "compId": 30,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "path": [
@@ -1479,11 +1522,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D4"
         },
         "pin2": {
-          "compId": 31,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "path": [
@@ -1495,11 +1538,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIdemux2#0",
           "pinName": "Y00"
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "B"
         },
         "path": [
@@ -1515,11 +1558,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIdemux2#0",
           "pinName": "Y01"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "B"
         },
         "path": [
@@ -1535,11 +1578,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIdemux2#0",
           "pinName": "Y10"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "B"
         },
         "path": [
@@ -1555,11 +1598,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIdemux2#0",
           "pinName": "Y11"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "B"
         },
         "path": [
@@ -1575,11 +1618,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "B"
         },
         "path": [
@@ -1591,11 +1634,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "B"
         },
         "path": [
@@ -1607,11 +1650,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "B"
         },
         "path": [
@@ -1623,11 +1666,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 19,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "B"
         },
         "path": [
@@ -1639,11 +1682,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "QB1"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "A1"
         },
         "path": [
@@ -1659,11 +1702,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "QB2"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "A2"
         },
         "path": [
@@ -1679,11 +1722,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "QB3"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "A3"
         },
         "path": [
@@ -1699,11 +1742,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "QB4"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "A4"
         },
         "path": [
@@ -1719,11 +1762,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "QB1"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "A1"
         },
         "path": [
@@ -1739,11 +1782,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "QB2"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "A2"
         },
         "path": [
@@ -1759,11 +1802,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "QB3"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "A3"
         },
         "path": [
@@ -1779,11 +1822,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "QB4"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "A4"
         },
         "path": [
@@ -1799,11 +1842,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "QB1"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "A1"
         },
         "path": [
@@ -1819,11 +1862,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "QB2"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "A2"
         },
         "path": [
@@ -1839,11 +1882,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "QB3"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "A3"
         },
         "path": [
@@ -1859,11 +1902,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "QB4"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "A4"
         },
         "path": [
@@ -1879,11 +1922,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "QB1"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "A1"
         },
         "path": [
@@ -1899,11 +1942,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "QB2"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "A2"
         },
         "path": [
@@ -1919,11 +1962,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "QB3"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "A3"
         },
         "path": [
@@ -1939,11 +1982,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "QB4"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "A4"
         },
         "path": [
@@ -1959,11 +2002,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "QA1"
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "A1"
         },
         "path": [
@@ -1979,11 +2022,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "QA2"
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "A2"
         },
         "path": [
@@ -1999,11 +2042,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "QA3"
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "A3"
         },
         "path": [
@@ -2019,11 +2062,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIram2#0",
           "pinName": "QA4"
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "A4"
         },
         "path": [
@@ -2039,11 +2082,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "QA1"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "A1"
         },
         "path": [
@@ -2059,11 +2102,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "QA2"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "A2"
         },
         "path": [
@@ -2079,11 +2122,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "QA3"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "A3"
         },
         "path": [
@@ -2099,11 +2142,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIram2#1",
           "pinName": "QA4"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "A4"
         },
         "path": [
@@ -2119,11 +2162,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "QA1"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "A1"
         },
         "path": [
@@ -2139,11 +2182,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "QA2"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "A2"
         },
         "path": [
@@ -2159,11 +2202,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "QA3"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "A3"
         },
         "path": [
@@ -2179,11 +2222,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIram2#2",
           "pinName": "QA4"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "A4"
         },
         "path": [
@@ -2199,11 +2242,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "QA1"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "A1"
         },
         "path": [
@@ -2219,11 +2262,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "QA2"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "A2"
         },
         "path": [
@@ -2239,11 +2282,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "QA3"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "A3"
         },
         "path": [
@@ -2259,11 +2302,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUIram2#3",
           "pinName": "QA4"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "A4"
         },
         "path": [
@@ -2279,11 +2322,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "C1"
         },
         "path": [
@@ -2307,11 +2350,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "C2"
         },
         "path": [
@@ -2335,11 +2378,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "C3"
         },
         "path": [
@@ -2363,11 +2406,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIand41#1",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "C4"
         },
         "path": [
@@ -2391,11 +2434,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "C1"
         },
         "path": [
@@ -2419,11 +2462,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "C2"
         },
         "path": [
@@ -2447,11 +2490,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "C3"
         },
         "path": [
@@ -2475,11 +2518,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUIandor414#0",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "C4"
         },
         "path": [
@@ -2503,11 +2546,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "C1"
         },
         "path": [
@@ -2531,11 +2574,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "C2"
         },
         "path": [
@@ -2559,11 +2602,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "C3"
         },
         "path": [
@@ -2587,11 +2630,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUIandor414#1",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "C4"
         },
         "path": [
@@ -2615,11 +2658,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QB1"
         },
         "path": [
@@ -2635,11 +2678,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QB2"
         },
         "path": [
@@ -2655,11 +2698,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QB3"
         },
         "path": [
@@ -2675,11 +2718,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUIandor414#2",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QB4"
         },
         "path": [
@@ -2695,11 +2738,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "C1"
         },
         "path": [
@@ -2723,11 +2766,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "C2"
         },
         "path": [
@@ -2751,11 +2794,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "C3"
         },
         "path": [
@@ -2779,11 +2822,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUIand41#2",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "C4"
         },
         "path": [
@@ -2807,11 +2850,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "C1"
         },
         "path": [
@@ -2835,11 +2878,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "C2"
         },
         "path": [
@@ -2863,11 +2906,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "C3"
         },
         "path": [
@@ -2891,11 +2934,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "GUIandor414#3",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "C4"
         },
         "path": [
@@ -2919,11 +2962,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "C1"
         },
         "path": [
@@ -2947,11 +2990,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "C2"
         },
         "path": [
@@ -2975,11 +3018,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "C3"
         },
         "path": [
@@ -3003,11 +3046,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "GUIandor414#4",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "C4"
         },
         "path": [
@@ -3031,11 +3074,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QA1"
         },
         "path": [
@@ -3059,11 +3102,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QA2"
         },
         "path": [
@@ -3087,11 +3130,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QA3"
         },
         "path": [
@@ -3115,11 +3158,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "GUIandor414#5",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QA4"
         },
         "path": [
index 9f7babe..219e1b9 100644 (file)
@@ -122,156 +122,174 @@ mograsim version: 0.1.3
       {
         "pos": {
           "x": 20.0,
-          "y": 2.5
+          "y": 52.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
         "pos": {
           "x": 20.0,
-          "y": 52.5
+          "y": 2.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
         "pos": {
           "x": 20.0,
-          "y": 102.5
+          "y": 152.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "params": 1
       },
       {
         "pos": {
           "x": 20.0,
-          "y": 152.5
+          "y": 102.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 20.0,
-          "y": 27.5
+          "x": 65.0,
+          "y": 77.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#11",
         "params": 1
       },
       {
         "pos": {
-          "x": 20.0,
-          "y": 77.5
+          "x": 65.0,
+          "y": 52.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#10",
         "params": 1
       },
       {
         "pos": {
-          "x": 20.0,
-          "y": 127.5
+          "x": 6.5,
+          "y": 66.5
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 20.0,
-          "y": 177.5
+          "x": 6.5,
+          "y": 16.5
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
         "pos": {
-          "x": 65.0,
-          "y": 2.5
+          "x": 4.0,
+          "y": 41.5
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "params": 1
       },
       {
         "pos": {
-          "x": 65.0,
-          "y": 27.5
+          "x": 6.5,
+          "y": 116.5
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 65.0,
-          "y": 52.5
+          "x": 4.0,
+          "y": 141.5
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "params": 1
       },
       {
         "pos": {
-          "x": 65.0,
-          "y": 77.5
+          "x": 4.0,
+          "y": 91.5
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 6.5,
-          "y": 16.5
+          "x": 65.0,
+          "y": 27.5
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
         "params": 1
       },
       {
         "pos": {
-          "x": 6.5,
-          "y": 66.5
+          "x": 65.0,
+          "y": 2.5
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "params": 1
       },
       {
         "pos": {
-          "x": 6.5,
-          "y": 116.5
+          "x": 20.0,
+          "y": 77.5
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "params": 1
       },
       {
         "pos": {
-          "x": 4.0,
-          "y": 41.5
+          "x": 20.0,
+          "y": 27.5
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 4.0,
-          "y": 91.5
+          "x": 20.0,
+          "y": 177.5
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "params": 1
       },
       {
         "pos": {
-          "x": 4.0,
-          "y": 141.5
+          "x": 20.0,
+          "y": 127.5
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A1"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": [
@@ -287,11 +305,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A2"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": [
@@ -307,11 +325,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A3"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
         "path": [
@@ -327,11 +345,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A4"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
         "path": [
@@ -347,11 +365,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B1"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
         "path": [
@@ -367,11 +385,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B2"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "A"
         },
         "path": [
@@ -387,11 +405,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B3"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "A"
         },
         "path": [
@@ -407,11 +425,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B4"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "A"
         },
         "path": [
@@ -427,81 +445,81 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "SA"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         }
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "SB"
         },
         "pin2": {
-          "compId": 16,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         }
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 14,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         }
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 15,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         }
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
         "path": [
@@ -513,61 +531,61 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 17,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         }
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 18,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         }
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
         "path": [
@@ -579,11 +597,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "A"
         },
         "path": [
@@ -599,11 +617,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
         "path": [
@@ -619,11 +637,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUINandGate#9",
           "pinName": "A"
         },
         "path": [
@@ -639,11 +657,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
         "path": [
@@ -659,11 +677,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUINandGate#10",
           "pinName": "A"
         },
         "path": [
@@ -679,11 +697,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUINandGate#10",
           "pinName": "B"
         },
         "path": [
@@ -699,11 +717,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUINandGate#11",
           "pinName": "A"
         },
         "path": [
@@ -719,11 +737,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUINandGate#11",
           "pinName": "B"
         },
         "path": [
@@ -739,44 +757,44 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUINandGate#9",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUINandGate#10",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUINandGate#11",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y4"
         },
         "path": []
index f999b22..1cae789 100644 (file)
@@ -161,17 +161,12 @@ mograsim version: 0.1.3
     "subComps": [
       {
         "pos": {
-          "x": 35.0,
-          "y": 250.0
-        },
-        "id": "GUIsel2_4"
-      },
-      {
-        "pos": {
-          "x": 75.0,
-          "y": 250.0
+          "x": 50.0,
+          "y": 620.0
         },
-        "id": "GUInot4"
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "params": 1
       },
       {
         "pos": {
@@ -179,14 +174,16 @@ mograsim version: 0.1.3
           "y": 570.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
         "pos": {
           "x": 50.0,
-          "y": 620.0
+          "y": 720.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "params": 1
       },
       {
@@ -195,81 +192,97 @@ mograsim version: 0.1.3
           "y": 670.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 50.0,
-          "y": 720.0
+          "x": 75.0,
+          "y": 250.0
         },
-        "id": "GUINandGate",
-        "params": 1
+        "id": "GUInot4",
+        "name": "GUInot4#0"
       },
       {
         "pos": {
-          "x": 152.5,
-          "y": 15.0
+          "x": 29.0,
+          "y": 634.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 152.5,
-          "y": 65.0
+          "x": 29.0,
+          "y": 584.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
         "pos": {
-          "x": 152.5,
-          "y": 115.0
+          "x": 29.0,
+          "y": 684.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
         "pos": {
           "x": 152.5,
-          "y": 165.0
+          "y": 65.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "params": 1
       },
       {
         "pos": {
-          "x": 29.0,
-          "y": 584.0
+          "x": 35.0,
+          "y": 250.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUIsel2_4",
+        "name": "GUIsel2_4#0"
+      },
+      {
+        "pos": {
+          "x": 152.5,
+          "y": 15.0
+        },
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 29.0,
-          "y": 634.0
+          "x": 152.5,
+          "y": 165.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "params": 1
       },
       {
         "pos": {
-          "x": 29.0,
-          "y": 684.0
+          "x": 152.5,
+          "y": 115.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "SA"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIsel2_4#0",
           "pinName": "SA"
         },
         "path": [
@@ -285,11 +298,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "SB"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIsel2_4#0",
           "pinName": "SB"
         },
         "path": [
@@ -305,11 +318,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A1"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIsel2_4#0",
           "pinName": "A1"
         },
         "path": [
@@ -325,11 +338,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A2"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIsel2_4#0",
           "pinName": "A2"
         },
         "path": [
@@ -345,11 +358,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A3"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIsel2_4#0",
           "pinName": "A3"
         },
         "path": [
@@ -365,11 +378,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A4"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIsel2_4#0",
           "pinName": "A4"
         },
         "path": [
@@ -385,11 +398,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B1"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIsel2_4#0",
           "pinName": "B1"
         },
         "path": [
@@ -405,11 +418,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B2"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIsel2_4#0",
           "pinName": "B2"
         },
         "path": [
@@ -425,11 +438,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B3"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIsel2_4#0",
           "pinName": "B3"
         },
         "path": [
@@ -445,11 +458,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B4"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIsel2_4#0",
           "pinName": "B4"
         },
         "path": [
@@ -465,55 +478,55 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIsel2_4#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUInot4#0",
           "pinName": "A1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIsel2_4#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUInot4#0",
           "pinName": "A2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIsel2_4#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUInot4#0",
           "pinName": "A3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIsel2_4#0",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUInot4#0",
           "pinName": "A4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "SC"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": [
@@ -525,22 +538,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": [
@@ -552,22 +565,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 13,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": [
@@ -579,22 +592,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
         "path": [
@@ -606,55 +619,55 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "C1"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "C2"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "C3"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "C4"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUInot4#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
         "path": [
@@ -670,11 +683,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUInot4#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUINandGate#5",
           "pinName": "A"
         },
         "path": [
@@ -690,11 +703,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUInot4#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUINandGate#6",
           "pinName": "A"
         },
         "path": [
@@ -710,11 +723,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUInot4#0",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUINandGate#7",
           "pinName": "A"
         },
         "path": [
@@ -730,11 +743,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUINandGate#4",
           "pinName": "B"
         },
         "path": [
@@ -750,11 +763,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
         "path": [
@@ -770,11 +783,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
         "path": [
@@ -790,11 +803,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
         "path": [
@@ -810,44 +823,44 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUINandGate#6",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUINandGate#7",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y4"
         },
         "path": []
index 8f589d5..9e3ec59 100644 (file)
@@ -31,28 +31,22 @@ mograsim version: 0.1.3
   "submodel": {
     "innerScale": 0.4,
     "subComps": [
-      {
-        "pos": {
-          "x": 7.5,
-          "y": 15.0
-        },
-        "id": "GUINandGate",
-        "params": 1
-      },
       {
         "pos": {
           "x": 35.0,
           "y": 2.5
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 35.0,
-          "y": 27.5
+          "x": 7.5,
+          "y": 15.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
@@ -61,22 +55,34 @@ mograsim version: 0.1.3
           "y": 15.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "params": 1
       },
       {
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 36.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "params": 1
+      },
+      {
+        "pos": {
+          "x": 35.0,
+          "y": 27.5
+        },
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "params": 1
       },
       {
         "pos": {
           "x": 4.0,
-          "y": 36.5
+          "y": 11.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
@@ -85,39 +91,40 @@ mograsim version: 0.1.3
           "y": 24.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": [
@@ -129,11 +136,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": [
@@ -145,21 +152,21 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         }
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": [
@@ -171,11 +178,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
         "path": [
@@ -187,11 +194,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": [
@@ -203,11 +210,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
         "path": [
@@ -219,31 +226,31 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y"
         }
       }
index af06681..7563d83 100644 (file)
@@ -321,96 +321,99 @@ mograsim version: 0.1.3
     "subComps": [
       {
         "pos": {
-          "x": 15.0,
-          "y": 45.0
-        },
-        "id": "GUIAm2901DestDecode"
-      },
-      {
-        "pos": {
-          "x": 275.0,
-          "y": 135.0
-        },
-        "id": "GUImux1_4"
-      },
-      {
-        "pos": {
-          "x": 190.0,
-          "y": 65.0
+          "x": 45.0,
+          "y": 2310.0
         },
-        "id": "GUIand"
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#0"
       },
       {
         "pos": {
-          "x": 160.0,
-          "y": 75.0
+          "x": 144.0,
+          "y": 2524.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "params": 1
       },
       {
         "pos": {
-          "x": 240.0,
-          "y": 2110.0
+          "x": 45.0,
+          "y": 2510.0
         },
-        "id": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode"
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#1"
       },
       {
         "pos": {
-          "x": 275.0,
-          "y": 445.0
+          "x": 139.0,
+          "y": 2514.0
         },
-        "id": "GUIor4"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
+        "params": 1
       },
       {
         "pos": {
-          "x": 320.0,
-          "y": 440.0
+          "x": 234.0,
+          "y": 2524.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "params": 1
       },
       {
         "pos": {
-          "x": 95.0,
-          "y": 2220.0
+          "x": 219.0,
+          "y": 2494.0
         },
-        "id": "GUIram4"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
+        "params": 1
       },
       {
         "pos": {
-          "x": 160.0,
-          "y": 2220.0
+          "x": 15.0,
+          "y": 45.0
         },
-        "id": "GUIdlatch4"
+        "id": "GUIAm2901DestDecode",
+        "name": "GUIAm2901DestDecode#0"
       },
       {
         "pos": {
-          "x": 160.0,
-          "y": 2275.0
+          "x": 39.0,
+          "y": 2634.0
         },
-        "id": "GUIdlatch4"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#18",
+        "params": 1
       },
       {
         "pos": {
-          "x": 45.0,
-          "y": 2310.0
+          "x": 34.0,
+          "y": 2624.0
         },
-        "id": "GUIsel3_4"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#17",
+        "params": 1
       },
       {
         "pos": {
-          "x": 45.0,
-          "y": 2510.0
+          "x": 279.0,
+          "y": 2114.0
         },
-        "id": "GUIsel3_4"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#19",
+        "params": 1
       },
       {
         "pos": {
-          "x": 90.0,
-          "y": 2490.0
+          "x": 154.0,
+          "y": 89.0
         },
-        "id": "GUIAm2901QReg"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "params": 1
       },
       {
         "pos": {
@@ -418,14 +421,16 @@ mograsim version: 0.1.3
           "y": 949.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
         "pos": {
           "x": 154.0,
-          "y": 89.0
+          "y": 2319.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "params": 1
       },
       {
@@ -434,14 +439,16 @@ mograsim version: 0.1.3
           "y": 2264.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 154.0,
-          "y": 2319.0
+          "x": 34.0,
+          "y": 2324.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "params": 1
       },
       {
@@ -450,14 +457,16 @@ mograsim version: 0.1.3
           "y": 2314.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 34.0,
-          "y": 2324.0
+          "x": 219.0,
+          "y": 2224.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "params": 1
       },
       {
@@ -466,14 +475,16 @@ mograsim version: 0.1.3
           "y": 2334.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "params": 1
       },
       {
         "pos": {
-          "x": 219.0,
-          "y": 2224.0
+          "x": 229.0,
+          "y": 2244.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "params": 1
       },
       {
@@ -482,22 +493,25 @@ mograsim version: 0.1.3
           "y": 2234.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "params": 1
       },
       {
         "pos": {
-          "x": 229.0,
-          "y": 2244.0
+          "x": 234.0,
+          "y": 2254.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "params": 1
       },
       {
         "pos": {
-          "x": 234.0,
-          "y": 2254.0
+          "x": 134.0,
+          "y": 2504.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "params": 1
       },
       {
@@ -506,260 +520,300 @@ mograsim version: 0.1.3
           "y": 2494.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "params": 1
       },
       {
         "pos": {
-          "x": 134.0,
-          "y": 2504.0
+          "x": 160.0,
+          "y": 2275.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#1"
       },
       {
         "pos": {
-          "x": 139.0,
-          "y": 2514.0
+          "x": 160.0,
+          "y": 2220.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#0"
       },
       {
         "pos": {
-          "x": 144.0,
-          "y": 2524.0
+          "x": 314.0,
+          "y": 449.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#40",
         "params": 1
       },
       {
         "pos": {
-          "x": 219.0,
-          "y": 2494.0
+          "x": 90.0,
+          "y": 2490.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIAm2901QReg",
+        "name": "GUIAm2901QReg#0"
       },
       {
         "pos": {
-          "x": 234.0,
-          "y": 2524.0
+          "x": 320.0,
+          "y": 440.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 34.0,
-          "y": 2624.0
+          "x": 9.0,
+          "y": 2384.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#36",
         "params": 1
       },
       {
         "pos": {
-          "x": 39.0,
-          "y": 2634.0
+          "x": 160.0,
+          "y": 75.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
         "pos": {
-          "x": 279.0,
-          "y": 2114.0
+          "x": 24.0,
+          "y": 2414.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#35",
         "params": 1
       },
       {
         "pos": {
-          "x": 294.0,
-          "y": 2144.0
+          "x": 19.0,
+          "y": 2434.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#38",
         "params": 1
       },
       {
         "pos": {
-          "x": 329.0,
-          "y": 949.0
+          "x": 14.0,
+          "y": 2424.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#37",
         "params": 1
       },
       {
         "pos": {
-          "x": 254.0,
-          "y": 2089.0
+          "x": 24.0,
+          "y": 2444.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#39",
         "params": 1
       },
       {
         "pos": {
-          "x": 259.0,
-          "y": 2094.0
+          "x": 190.0,
+          "y": 65.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIand",
+        "name": "GUIand#0"
       },
       {
         "pos": {
-          "x": 264.0,
-          "y": 2099.0
+          "x": 275.0,
+          "y": 135.0
+        },
+        "id": "GUImux1_4",
+        "name": "GUImux1_4#0"
+      },
+      {
+        "pos": {
+          "x": 9.0,
+          "y": 2354.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#30",
         "params": 1
       },
       {
         "pos": {
-          "x": 269.0,
-          "y": 2104.0
+          "x": 19.0,
+          "y": 2374.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#32",
         "params": 1
       },
       {
         "pos": {
-          "x": 254.0,
-          "y": 449.0
+          "x": 14.0,
+          "y": 2364.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#31",
         "params": 1
       },
       {
         "pos": {
-          "x": 259.0,
-          "y": 459.0
+          "x": 19.0,
+          "y": 2404.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#34",
         "params": 1
       },
       {
         "pos": {
-          "x": 264.0,
-          "y": 469.0
+          "x": 14.0,
+          "y": 2394.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#33",
         "params": 1
       },
       {
         "pos": {
           "x": 269.0,
-          "y": 479.0
+          "y": 2104.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "params": 1
       },
       {
         "pos": {
-          "x": 9.0,
-          "y": 2354.0
+          "x": 264.0,
+          "y": 2099.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "params": 1
       },
       {
         "pos": {
-          "x": 14.0,
-          "y": 2364.0
+          "x": 259.0,
+          "y": 459.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#27",
         "params": 1
       },
       {
         "pos": {
-          "x": 19.0,
-          "y": 2374.0
+          "x": 254.0,
+          "y": 449.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#26",
         "params": 1
       },
       {
         "pos": {
-          "x": 14.0,
-          "y": 2394.0
+          "x": 275.0,
+          "y": 445.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIor4",
+        "name": "GUIor4#0"
       },
       {
         "pos": {
-          "x": 19.0,
-          "y": 2404.0
+          "x": 269.0,
+          "y": 479.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#29",
         "params": 1
       },
       {
         "pos": {
-          "x": 24.0,
-          "y": 2414.0
+          "x": 240.0,
+          "y": 2110.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
+        "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0"
       },
       {
         "pos": {
-          "x": 9.0,
-          "y": 2384.0
+          "x": 264.0,
+          "y": 469.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#28",
         "params": 1
       },
       {
         "pos": {
-          "x": 14.0,
-          "y": 2424.0
+          "x": 95.0,
+          "y": 2220.0
+        },
+        "id": "GUIram4",
+        "name": "GUIram4#0"
+      },
+      {
+        "pos": {
+          "x": 329.0,
+          "y": 949.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "params": 1
       },
       {
         "pos": {
-          "x": 19.0,
-          "y": 2434.0
+          "x": 294.0,
+          "y": 2144.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "params": 1
       },
       {
         "pos": {
-          "x": 24.0,
-          "y": 2444.0
+          "x": 259.0,
+          "y": 2094.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#23",
         "params": 1
       },
       {
         "pos": {
-          "x": 314.0,
-          "y": 449.0
+          "x": 254.0,
+          "y": 2089.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I8"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIAm2901DestDecode#0",
           "pinName": "I8"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I7"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIAm2901DestDecode#0",
           "pinName": "I7"
         },
         "path": [
@@ -775,11 +829,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I6"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIAm2901DestDecode#0",
           "pinName": "I6"
         },
         "path": [
@@ -795,11 +849,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I5"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "I5"
         },
         "path": [
@@ -815,11 +869,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I4"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "I4"
         },
         "path": [
@@ -835,11 +889,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I3"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "I3"
         },
         "path": [
@@ -855,11 +909,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I2"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "I2"
         },
         "path": [
@@ -875,11 +929,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I1"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "I1"
         },
         "path": [
@@ -895,11 +949,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I0"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "I0"
         },
         "path": [
@@ -915,33 +969,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "C"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 15,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": [
@@ -953,66 +1007,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 16,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIdlatch4#0",
           "pinName": "C"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 17,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIdlatch4#1",
           "pinName": "C"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIAm2901QReg#0",
           "pinName": "C"
         },
         "path": [
@@ -1032,11 +1086,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901DestDecode#0",
           "pinName": "LSH"
         },
         "pin2": {
-          "compId": 18,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "path": [
@@ -1056,11 +1110,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901DestDecode#0",
           "pinName": "NSH"
         },
         "pin2": {
-          "compId": 19,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "path": [
@@ -1080,11 +1134,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901DestDecode#0",
           "pinName": "RSH"
         },
         "pin2": {
-          "compId": 20,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "path": [
@@ -1104,44 +1158,44 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "SA"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 19,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "SB"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 20,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "SC"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "SA"
         },
         "path": [
@@ -1153,11 +1207,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 19,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "SB"
         },
         "path": [
@@ -1169,11 +1223,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 20,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "SC"
         },
         "path": [
@@ -1185,11 +1239,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A0"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "A0"
         },
         "path": [
@@ -1205,11 +1259,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A1"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "A1"
         },
         "path": [
@@ -1225,11 +1279,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A2"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "A2"
         },
         "path": [
@@ -1245,11 +1299,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A3"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "A3"
         },
         "path": [
@@ -1265,11 +1319,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B0"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "B0"
         },
         "path": [
@@ -1285,11 +1339,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B1"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "B1"
         },
         "path": [
@@ -1305,11 +1359,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B2"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "B2"
         },
         "path": [
@@ -1325,11 +1379,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B3"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "B3"
         },
         "path": [
@@ -1345,55 +1399,55 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "QA1"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIdlatch4#0",
           "pinName": "D1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "QA2"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIdlatch4#0",
           "pinName": "D2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "QA3"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIdlatch4#0",
           "pinName": "D3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "QA4"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUIdlatch4#0",
           "pinName": "D4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "QB1"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIdlatch4#1",
           "pinName": "D1"
         },
         "path": [
@@ -1409,11 +1463,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "QB2"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIdlatch4#1",
           "pinName": "D2"
         },
         "path": [
@@ -1429,11 +1483,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "QB3"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIdlatch4#1",
           "pinName": "D3"
         },
         "path": [
@@ -1449,11 +1503,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "QB4"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUIdlatch4#1",
           "pinName": "D4"
         },
         "path": [
@@ -1469,11 +1523,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Cn"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "Cn"
         },
         "path": [
@@ -1489,11 +1543,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D1"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "D1"
         },
         "path": [
@@ -1509,11 +1563,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D2"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "D2"
         },
         "path": [
@@ -1529,11 +1583,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D3"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "D3"
         },
         "path": [
@@ -1549,11 +1603,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D4"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "D4"
         },
         "path": [
@@ -1569,55 +1623,55 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUIdlatch4#0",
           "pinName": "Q1"
         },
         "pin2": {
-          "compId": 21,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUIdlatch4#0",
           "pinName": "Q2"
         },
         "pin2": {
-          "compId": 22,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUIdlatch4#0",
           "pinName": "Q3"
         },
         "pin2": {
-          "compId": 23,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUIdlatch4#0",
           "pinName": "Q4"
         },
         "pin2": {
-          "compId": 24,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 21,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUImux1_4#0",
           "pinName": "I0_1"
         },
         "path": [
@@ -1629,11 +1683,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 22,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUImux1_4#0",
           "pinName": "I0_2"
         },
         "path": [
@@ -1645,11 +1699,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 23,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUImux1_4#0",
           "pinName": "I0_3"
         },
         "path": [
@@ -1661,11 +1715,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 24,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUImux1_4#0",
           "pinName": "I0_4"
         },
         "path": [
@@ -1677,55 +1731,55 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 21,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "A1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 22,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "A2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 23,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "A3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 24,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "A4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUIdlatch4#1",
           "pinName": "Q1"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "B1"
         },
         "path": [
@@ -1741,11 +1795,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUIdlatch4#1",
           "pinName": "Q2"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "B2"
         },
         "path": [
@@ -1761,11 +1815,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUIdlatch4#1",
           "pinName": "Q3"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "B3"
         },
         "path": [
@@ -1781,11 +1835,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUIdlatch4#1",
           "pinName": "Q4"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "B4"
         },
         "path": [
@@ -1801,66 +1855,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "GUIAm2901QReg#0",
           "pinName": "Q1"
         },
         "pin2": {
-          "compId": 25,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "GUIAm2901QReg#0",
           "pinName": "Q2"
         },
         "pin2": {
-          "compId": 26,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "GUIAm2901QReg#0",
           "pinName": "Q3"
         },
         "pin2": {
-          "compId": 27,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "GUIAm2901QReg#0",
           "pinName": "Q4"
         },
         "pin2": {
-          "compId": 28,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 25,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compId": 29,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 29,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "OQn"
         },
         "path": [
@@ -1876,22 +1930,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 28,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compId": 30,
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 30,
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "OQn+3"
         },
         "path": [
@@ -1907,11 +1961,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 26,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compId": 31,
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "path": [
@@ -1935,11 +1989,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 27,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compId": 32,
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "path": [
@@ -1963,33 +2017,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 31,
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "C1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 32,
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "C2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 28,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "C3"
         },
         "path": [
@@ -2009,11 +2063,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "IQn+3"
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "C4"
         },
         "path": [
@@ -2029,11 +2083,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "IQn"
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "A1"
         },
         "path": [
@@ -2049,11 +2103,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 25,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "A2"
         },
         "path": [
@@ -2081,11 +2135,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 29,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "Q1"
         },
         "path": [
@@ -2097,11 +2151,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 26,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "Q2"
         },
         "path": [
@@ -2117,11 +2171,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 27,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "Q3"
         },
         "path": [
@@ -2137,11 +2191,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 30,
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "Q4"
         },
         "path": [
@@ -2153,11 +2207,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 31,
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "A3"
         },
         "path": [
@@ -2169,11 +2223,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 32,
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "A4"
         },
         "path": [
@@ -2185,55 +2239,55 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIAm2901QReg#0",
           "pinName": "D1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIAm2901QReg#0",
           "pinName": "D2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIAm2901QReg#0",
           "pinName": "D3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIAm2901QReg#0",
           "pinName": "D4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "Cn+4"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Cn+4"
         },
         "path": [
@@ -2249,11 +2303,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "OVR"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "OVR"
         },
         "path": [
@@ -2269,33 +2323,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "F1"
         },
         "pin2": {
-          "compId": 33,
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "F4"
         },
         "pin2": {
-          "compId": 34,
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 33,
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "ORAMn"
         },
         "path": [
@@ -2311,11 +2365,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 34,
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compId": 35,
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
         "path": [
@@ -2327,22 +2381,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 35,
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "ORAMn+3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 35,
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "F3"
         },
         "path": [
@@ -2354,11 +2408,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 33,
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compId": 36,
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "path": [
@@ -2370,11 +2424,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "F2"
         },
         "pin2": {
-          "compId": 37,
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "path": [
@@ -2390,11 +2444,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
           "pinName": "F3"
         },
         "pin2": {
-          "compId": 38,
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "path": [
@@ -2410,11 +2464,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 34,
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compId": 39,
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "path": [
@@ -2426,99 +2480,99 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 36,
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compId": 40,
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 37,
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compId": 41,
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 38,
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compId": 42,
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 39,
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compId": 43,
+          "compName": "WireCrossPoint#29",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 40,
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIor4#0",
           "pinName": "A1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 41,
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIor4#0",
           "pinName": "A2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 42,
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIor4#0",
           "pinName": "A3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 43,
+          "compName": "WireCrossPoint#29",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIor4#0",
           "pinName": "A4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 40,
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUImux1_4#0",
           "pinName": "I1_1"
         },
         "path": [
@@ -2530,11 +2584,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 41,
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUImux1_4#0",
           "pinName": "I1_2"
         },
         "path": [
@@ -2546,11 +2600,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 42,
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUImux1_4#0",
           "pinName": "I1_3"
         },
         "path": [
@@ -2562,11 +2616,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 43,
+          "compName": "WireCrossPoint#29",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUImux1_4#0",
           "pinName": "I1_4"
         },
         "path": [
@@ -2578,11 +2632,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 36,
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compId": 44,
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "path": [
@@ -2594,11 +2648,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 37,
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compId": 45,
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
         "path": [
@@ -2610,11 +2664,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 38,
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compId": 46,
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
         "path": [
@@ -2626,11 +2680,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "IRAMn"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "A1"
         },
         "path": [
@@ -2646,66 +2700,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 44,
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "A2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 45,
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "A3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 46,
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "A4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 45,
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
         "pin2": {
-          "compId": 47,
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 46,
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
         "pin2": {
-          "compId": 48,
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 39,
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compId": 49,
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
         "path": [
@@ -2717,132 +2771,132 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 44,
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compId": 50,
+          "compName": "WireCrossPoint#36",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 50,
+          "compName": "WireCrossPoint#36",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "B1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 47,
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "B2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 48,
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "B3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 49,
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "B4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 47,
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
         "pin2": {
-          "compId": 51,
+          "compName": "WireCrossPoint#37",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 48,
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
         "pin2": {
-          "compId": 52,
+          "compName": "WireCrossPoint#38",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 49,
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
         "pin2": {
-          "compId": 53,
+          "compName": "WireCrossPoint#39",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 51,
+          "compName": "WireCrossPoint#37",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "C1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 52,
+          "compName": "WireCrossPoint#38",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "C2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 53,
+          "compName": "WireCrossPoint#39",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "C3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "IRAMn+3"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "C4"
         },
         "path": [
@@ -2858,11 +2912,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 50,
+          "compName": "WireCrossPoint#36",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "B1"
         },
         "path": [
@@ -2874,11 +2928,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 51,
+          "compName": "WireCrossPoint#37",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "B2"
         },
         "path": [
@@ -2890,11 +2944,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 52,
+          "compName": "WireCrossPoint#38",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "B3"
         },
         "path": [
@@ -2906,11 +2960,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 53,
+          "compName": "WireCrossPoint#39",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUIsel3_4#1",
           "pinName": "B4"
         },
         "path": [
@@ -2922,76 +2976,76 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "D1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "D2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "D3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUIsel3_4#0",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "D4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901DestDecode#0",
           "pinName": "RAMWE"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand#0",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIand#0",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIand#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIram4#0",
           "pinName": "WE"
         },
         "path": [
@@ -3015,11 +3069,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901DestDecode#0",
           "pinName": "QWE"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUIAm2901QReg#0",
           "pinName": "WE"
         },
         "path": [
@@ -3035,11 +3089,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901DestDecode#0",
           "pinName": "YF"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUImux1_4#0",
           "pinName": "S0"
         },
         "path": [
@@ -3055,11 +3109,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUImux1_4#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y1"
         },
         "path": [
@@ -3075,22 +3129,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUImux1_4#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUImux1_4#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y3"
         },
         "path": [
@@ -3106,11 +3160,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUImux1_4#0",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Y4"
         },
         "path": [
@@ -3126,22 +3180,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIor4#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 54,
+          "compName": "WireCrossPoint#40",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 54,
+          "compName": "WireCrossPoint#40",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": [
@@ -3153,11 +3207,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 54,
+          "compName": "WireCrossPoint#40",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": [
@@ -3169,11 +3223,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "F\u003d0"
         },
         "path": []
index dfa954a..a24476b 100644 (file)
@@ -79,20 +79,13 @@ mograsim version: 0.1.3
   "submodel": {
     "innerScale": 0.25,
     "subComps": [
-      {
-        "pos": {
-          "x": 15.0,
-          "y": 10.0
-        },
-        "id": "GUINandGate",
-        "params": 1
-      },
       {
         "pos": {
           "x": 15.0,
           "y": 50.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
@@ -100,14 +93,16 @@ mograsim version: 0.1.3
           "x": 55.0,
           "y": 10.0
         },
-        "id": "GUInand3"
+        "id": "GUInand3",
+        "name": "GUInand3#0"
       },
       {
         "pos": {
-          "x": 55.0,
-          "y": 45.0
+          "x": 15.0,
+          "y": 10.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
@@ -116,14 +111,16 @@ mograsim version: 0.1.3
           "y": 70.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "params": 1
       },
       {
         "pos": {
-          "x": 100.0,
-          "y": 50.0
+          "x": 55.0,
+          "y": 45.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "params": 1
       },
       {
@@ -131,22 +128,34 @@ mograsim version: 0.1.3
           "x": 100.0,
           "y": 135.0
         },
-        "id": "GUIand"
+        "id": "GUIand",
+        "name": "GUIand#0"
       },
       {
         "pos": {
           "x": 4.0,
-          "y": 19.0
+          "y": 24.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "params": 1
       },
       {
         "pos": {
           "x": 4.0,
-          "y": 24.0
+          "y": 19.0
+        },
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "params": 1
+      },
+      {
+        "pos": {
+          "x": 9.0,
+          "y": 59.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "params": 1
       },
       {
@@ -155,14 +164,16 @@ mograsim version: 0.1.3
           "y": 44.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
         "pos": {
           "x": 9.0,
-          "y": 59.0
+          "y": 64.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "params": 1
       },
       {
@@ -171,14 +182,16 @@ mograsim version: 0.1.3
           "y": 54.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 9.0,
-          "y": 64.0
+          "x": 49.0,
+          "y": 99.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "params": 1
       },
       {
@@ -187,14 +200,16 @@ mograsim version: 0.1.3
           "y": 84.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "params": 1
       },
       {
         "pos": {
-          "x": 49.0,
-          "y": 99.0
+          "x": 39.0,
+          "y": 19.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "params": 1
       },
       {
@@ -203,44 +218,47 @@ mograsim version: 0.1.3
           "y": 74.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "params": 1
       },
       {
         "pos": {
           "x": 39.0,
-          "y": 19.0
+          "y": 34.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "params": 1
       },
       {
         "pos": {
-          "x": 39.0,
-          "y": 34.0
+          "x": 100.0,
+          "y": 50.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I5"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": [
@@ -252,44 +270,44 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 9,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 10,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
         "path": [
@@ -305,11 +323,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "FN"
         },
         "path": [
@@ -321,33 +339,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I4"
         },
         "pin2": {
-          "compId": 11,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUInand3#0",
           "pinName": "A"
         },
         "path": [
@@ -367,66 +385,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 13,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 14,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "SN"
         },
         "path": [
@@ -446,11 +464,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I3"
         },
         "pin2": {
-          "compId": 15,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "path": [
@@ -462,11 +480,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "RN"
         },
         "path": [
@@ -478,22 +496,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 16,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUInand3#0",
           "pinName": "B"
         },
         "path": [
@@ -505,33 +523,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 17,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "CinE"
         },
         "path": [
@@ -551,33 +569,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 18,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUInand3#0",
           "pinName": "C"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIand#0",
           "pinName": "B"
         },
         "path": [
@@ -589,63 +607,63 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUInand3#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUINandGate#4",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUINandGate#4",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUIand#0",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "L"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUIand#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "SBE"
         },
         "path": []
index 9d6395c..62d78f1 100644 (file)
@@ -153,215 +153,241 @@ mograsim version: 0.1.3
     "subComps": [
       {
         "pos": {
-          "x": 20.0,
-          "y": 2.5
+          "x": 34.0,
+          "y": 354.0
         },
-        "id": "GUIAm2901ALUFuncDecode"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
+        "params": 1
       },
       {
         "pos": {
-          "x": 45.0,
-          "y": 80.0
+          "x": 34.0,
+          "y": 254.0
         },
-        "id": "GUIAm2901ALUOneBit"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
+        "params": 1
       },
       {
         "pos": {
-          "x": 45.0,
-          "y": 180.0
+          "x": 36.5,
+          "y": 264.0
         },
-        "id": "GUIAm2901ALUOneBit"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
+        "params": 1
       },
       {
         "pos": {
-          "x": 45.0,
-          "y": 280.0
+          "x": 36.5,
+          "y": 164.0
         },
-        "id": "GUIAm2901ALUOneBit"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
+        "params": 1
       },
       {
         "pos": {
-          "x": 45.0,
-          "y": 380.0
+          "x": 84.0,
+          "y": 374.0
         },
-        "id": "GUIAm2901ALUOneBit"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#18",
+        "params": 1
       },
       {
         "pos": {
-          "x": 95.0,
-          "y": 400.0
+          "x": 36.5,
+          "y": 364.0
         },
-        "id": "GUIxor"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#17",
+        "params": 1
       },
       {
         "pos": {
-          "x": 24.0,
-          "y": 94.0
+          "x": 20.0,
+          "y": 2.5
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIAm2901ALUFuncDecode",
+        "name": "GUIAm2901ALUFuncDecode#0"
       },
       {
         "pos": {
-          "x": 24.0,
-          "y": 194.0
+          "x": 45.0,
+          "y": 80.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#0"
       },
       {
         "pos": {
-          "x": 24.0,
-          "y": 294.0
+          "x": 84.0,
+          "y": 384.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#19",
         "params": 1
       },
       {
         "pos": {
-          "x": 26.5,
-          "y": 104.0
+          "x": 95.0,
+          "y": 400.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIxor",
+        "name": "GUIxor#0"
       },
       {
         "pos": {
-          "x": 26.5,
-          "y": 204.0
+          "x": 24.0,
+          "y": 194.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 26.5,
-          "y": 304.0
+          "x": 24.0,
+          "y": 94.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
         "pos": {
-          "x": 29.0,
-          "y": 124.0
+          "x": 26.5,
+          "y": 104.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "params": 1
       },
       {
         "pos": {
-          "x": 29.0,
-          "y": 224.0
+          "x": 24.0,
+          "y": 294.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 29.0,
-          "y": 324.0
+          "x": 26.5,
+          "y": 304.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "params": 1
       },
       {
         "pos": {
-          "x": 31.5,
-          "y": 144.0
+          "x": 26.5,
+          "y": 204.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 31.5,
-          "y": 244.0
+          "x": 45.0,
+          "y": 180.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#1"
       },
       {
         "pos": {
-          "x": 31.5,
-          "y": 344.0
+          "x": 29.0,
+          "y": 224.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "params": 1
       },
       {
         "pos": {
-          "x": 34.0,
-          "y": 154.0
+          "x": 45.0,
+          "y": 280.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#2"
       },
       {
         "pos": {
-          "x": 34.0,
-          "y": 254.0
+          "x": 29.0,
+          "y": 124.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "params": 1
       },
       {
         "pos": {
-          "x": 34.0,
-          "y": 354.0
+          "x": 45.0,
+          "y": 380.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#3"
       },
       {
         "pos": {
-          "x": 36.5,
-          "y": 164.0
+          "x": 31.5,
+          "y": 144.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "params": 1
       },
       {
         "pos": {
-          "x": 36.5,
-          "y": 264.0
+          "x": 29.0,
+          "y": 324.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "params": 1
       },
       {
         "pos": {
-          "x": 36.5,
-          "y": 364.0
+          "x": 31.5,
+          "y": 244.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "params": 1
       },
       {
         "pos": {
-          "x": 84.0,
-          "y": 374.0
+          "x": 34.0,
+          "y": 154.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "params": 1
       },
       {
         "pos": {
-          "x": 84.0,
-          "y": 384.0
+          "x": 31.5,
+          "y": 344.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I5"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIAm2901ALUFuncDecode#0",
           "pinName": "I5"
         },
         "path": [
@@ -377,11 +403,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I4"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIAm2901ALUFuncDecode#0",
           "pinName": "I4"
         },
         "path": [
@@ -397,11 +423,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I3"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIAm2901ALUFuncDecode#0",
           "pinName": "I3"
         },
         "path": [
@@ -417,11 +443,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901ALUFuncDecode#0",
           "pinName": "SBE"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": [
@@ -441,66 +467,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 9,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "CoutE"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIAm2901ALUOneBit#1",
           "pinName": "CoutE"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "CoutE"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUOneBit#3",
           "pinName": "CoutE"
         },
         "path": [
@@ -512,11 +538,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901ALUFuncDecode#0",
           "pinName": "CinE"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "path": [
@@ -536,66 +562,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "CinE"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIAm2901ALUOneBit#1",
           "pinName": "CinE"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "CinE"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUOneBit#3",
           "pinName": "CinE"
         },
         "path": [
@@ -607,11 +633,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901ALUFuncDecode#0",
           "pinName": "RN"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "path": [
@@ -631,66 +657,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 14,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 15,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "RN"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIAm2901ALUOneBit#1",
           "pinName": "RN"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "RN"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUOneBit#3",
           "pinName": "RN"
         },
         "path": [
@@ -702,11 +728,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901ALUFuncDecode#0",
           "pinName": "SN"
         },
         "pin2": {
-          "compId": 16,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "path": [
@@ -726,66 +752,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 17,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 18,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "SN"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIAm2901ALUOneBit#1",
           "pinName": "SN"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "SN"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUOneBit#3",
           "pinName": "SN"
         },
         "path": [
@@ -797,11 +823,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901ALUFuncDecode#0",
           "pinName": "FN"
         },
         "pin2": {
-          "compId": 19,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "path": [
@@ -821,66 +847,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 19,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compId": 20,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 20,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compId": 21,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 19,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "FN"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 20,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIAm2901ALUOneBit#1",
           "pinName": "FN"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 21,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "FN"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 21,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUOneBit#3",
           "pinName": "FN"
         },
         "path": [
@@ -892,11 +918,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901ALUFuncDecode#0",
           "pinName": "L"
         },
         "pin2": {
-          "compId": 22,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "path": [
@@ -916,66 +942,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 22,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compId": 23,
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 23,
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compId": 24,
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 22,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "L"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 23,
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIAm2901ALUOneBit#1",
           "pinName": "L"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 24,
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "L"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 24,
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUOneBit#3",
           "pinName": "L"
         },
         "path": [
@@ -987,11 +1013,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "R1"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "R"
         },
         "path": [
@@ -1007,11 +1033,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "R2"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIAm2901ALUOneBit#1",
           "pinName": "R"
         },
         "path": [
@@ -1027,11 +1053,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "R3"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "R"
         },
         "path": [
@@ -1047,11 +1073,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "R4"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUOneBit#3",
           "pinName": "R"
         },
         "path": [
@@ -1067,11 +1093,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "S1"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "S"
         },
         "path": [
@@ -1087,11 +1113,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "S2"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIAm2901ALUOneBit#1",
           "pinName": "S"
         },
         "path": [
@@ -1107,11 +1133,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "S3"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "S"
         },
         "path": [
@@ -1127,11 +1153,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "S4"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUOneBit#3",
           "pinName": "S"
         },
         "path": [
@@ -1147,11 +1173,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Cn"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "Cin"
         },
         "path": [
@@ -1167,11 +1193,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "Cout"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIAm2901ALUOneBit#1",
           "pinName": "Cin"
         },
         "path": [
@@ -1195,11 +1221,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIAm2901ALUOneBit#1",
           "pinName": "Cout"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "Cin"
         },
         "path": [
@@ -1223,11 +1249,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "Cout"
         },
         "pin2": {
-          "compId": 25,
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "path": [
@@ -1239,11 +1265,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 25,
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUOneBit#3",
           "pinName": "Cin"
         },
         "path": [
@@ -1259,22 +1285,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUOneBit#3",
           "pinName": "Cout"
         },
         "pin2": {
-          "compId": 26,
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "F"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "F1"
         },
         "path": [
@@ -1290,11 +1316,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIAm2901ALUOneBit#1",
           "pinName": "F"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "F2"
         },
         "path": [
@@ -1310,11 +1336,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "F"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "F3"
         },
         "path": [
@@ -1330,11 +1356,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIAm2901ALUOneBit#3",
           "pinName": "F"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "F4"
         },
         "path": [
@@ -1350,11 +1376,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 25,
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIxor#0",
           "pinName": "A"
         },
         "path": [
@@ -1370,11 +1396,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 26,
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIxor#0",
           "pinName": "B"
         },
         "path": [
@@ -1386,11 +1412,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 26,
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Cn+4"
         },
         "path": [
@@ -1406,11 +1432,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIxor#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "OVR"
         }
       }
index fb6e911..75c63dd 100644 (file)
@@ -241,84 +241,92 @@ mograsim version: 0.1.3
     "subComps": [
       {
         "pos": {
-          "x": 15.0,
-          "y": 165.0
+          "x": 45.0,
+          "y": 575.0
         },
-        "id": "GUIAm2901SourceDecode"
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#0"
       },
       {
         "pos": {
-          "x": 45.0,
-          "y": 365.0
+          "x": 14.0,
+          "y": 499.0
         },
-        "id": "GUIsel2_4"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "params": 1
       },
       {
         "pos": {
-          "x": 45.0,
-          "y": 575.0
+          "x": 9.0,
+          "y": 459.0
         },
-        "id": "GUIsel3_4"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "params": 1
       },
       {
         "pos": {
           "x": 60.0,
           "y": 15.0
         },
-        "id": "GUIAm2901ALUInclDecode"
+        "id": "GUIAm2901ALUInclDecode",
+        "name": "GUIAm2901ALUInclDecode#0"
       },
       {
         "pos": {
-          "x": 9.0,
-          "y": 459.0
+          "x": 24.0,
+          "y": 579.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "params": 1
       },
       {
         "pos": {
-          "x": 14.0,
-          "y": 499.0
+          "x": 19.0,
+          "y": 539.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 19.0,
-          "y": 539.0
+          "x": 45.0,
+          "y": 365.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIsel2_4",
+        "name": "GUIsel2_4#0"
       },
       {
         "pos": {
-          "x": 24.0,
-          "y": 579.0
+          "x": 15.0,
+          "y": 165.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIAm2901SourceDecode",
+        "name": "GUIAm2901SourceDecode#0"
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I5"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "I5"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I4"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "I4"
         },
         "path": [
@@ -334,11 +342,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I3"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "I3"
         },
         "path": [
@@ -354,11 +362,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I2"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIAm2901SourceDecode#0",
           "pinName": "I2"
         },
         "path": [
@@ -374,22 +382,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I1"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIAm2901SourceDecode#0",
           "pinName": "I1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I0"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIAm2901SourceDecode#0",
           "pinName": "I0"
         },
         "path": [
@@ -405,11 +413,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Cn"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "Cn"
         },
         "path": [
@@ -425,11 +433,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D1"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIsel2_4#0",
           "pinName": "A1"
         },
         "path": [
@@ -445,11 +453,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D2"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIsel2_4#0",
           "pinName": "A2"
         },
         "path": [
@@ -465,11 +473,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D3"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIsel2_4#0",
           "pinName": "A3"
         },
         "path": [
@@ -485,66 +493,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D4"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIsel2_4#0",
           "pinName": "A4"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A1"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A2"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A3"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "A4"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIsel2_4#0",
           "pinName": "B1"
         },
         "path": [
@@ -556,11 +564,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIsel2_4#0",
           "pinName": "B2"
         },
         "path": [
@@ -572,11 +580,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIsel2_4#0",
           "pinName": "B3"
         },
         "path": [
@@ -588,11 +596,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIsel2_4#0",
           "pinName": "B4"
         },
         "path": [
@@ -604,11 +612,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "A1"
         },
         "path": [
@@ -620,11 +628,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "A2"
         },
         "path": [
@@ -636,11 +644,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "A3"
         },
         "path": [
@@ -652,11 +660,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "A4"
         },
         "path": [
@@ -668,11 +676,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B1"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "B1"
         },
         "path": [
@@ -688,22 +696,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B2"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "B2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B3"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "B3"
         },
         "path": [
@@ -719,11 +727,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "B4"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "B4"
         },
         "path": [
@@ -739,11 +747,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q1"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "C1"
         },
         "path": [
@@ -759,11 +767,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q2"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "C2"
         },
         "path": [
@@ -779,11 +787,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q3"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "C3"
         },
         "path": [
@@ -799,11 +807,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q4"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "C4"
         },
         "path": [
@@ -819,11 +827,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901SourceDecode#0",
           "pinName": "SQ"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "SC"
         },
         "path": [
@@ -847,11 +855,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901SourceDecode#0",
           "pinName": "RA"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIsel2_4#0",
           "pinName": "SB"
         },
         "path": [
@@ -875,11 +883,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901SourceDecode#0",
           "pinName": "SB"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "SB"
         },
         "path": [
@@ -903,11 +911,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901SourceDecode#0",
           "pinName": "SA"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "SA"
         },
         "path": [
@@ -931,11 +939,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIAm2901SourceDecode#0",
           "pinName": "RD"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIsel2_4#0",
           "pinName": "SA"
         },
         "path": [
@@ -959,11 +967,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIsel2_4#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "R1"
         },
         "path": [
@@ -987,11 +995,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIsel2_4#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "R2"
         },
         "path": [
@@ -1015,11 +1023,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIsel2_4#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "R3"
         },
         "path": [
@@ -1043,11 +1051,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIsel2_4#0",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "R4"
         },
         "path": [
@@ -1071,11 +1079,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "S1"
         },
         "path": [
@@ -1099,11 +1107,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "S2"
         },
         "path": [
@@ -1127,11 +1135,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "S3"
         },
         "path": [
@@ -1155,11 +1163,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIsel3_4#0",
           "pinName": "Y4"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "S4"
         },
         "path": [
@@ -1183,22 +1191,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "F1"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "F1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "F2"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "F2"
         },
         "path": [
@@ -1214,11 +1222,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "F3"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "F3"
         },
         "path": [
@@ -1234,11 +1242,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "F4"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "F4"
         },
         "path": [
@@ -1254,11 +1262,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "Cn+4"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Cn+4"
         },
         "path": [
@@ -1274,11 +1282,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIAm2901ALUInclDecode#0",
           "pinName": "OVR"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "OVR"
         },
         "path": [
index ac53c55..b6b05e1 100644 (file)
@@ -97,97 +97,107 @@ mograsim version: 0.1.3
     "subComps": [
       {
         "pos": {
-          "x": 10.0,
-          "y": 20.0
+          "x": 60.0,
+          "y": 55.0
         },
-        "id": "GUIand"
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "params": 1
       },
       {
         "pos": {
-          "x": 10.0,
-          "y": 190.0
+          "x": 54.0,
+          "y": 69.0
         },
-        "id": "GUIxor"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "params": 1
       },
       {
         "pos": {
-          "x": 10.0,
-          "y": 290.0
+          "x": 49.0,
+          "y": 59.0
         },
-        "id": "GUIxor"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "params": 1
       },
       {
         "pos": {
-          "x": 60.0,
-          "y": 20.0
+          "x": 90.0,
+          "y": 70.0
         },
-        "id": "GUIfulladder"
+        "id": "GUImux1",
+        "name": "GUImux1#0"
       },
       {
         "pos": {
-          "x": 60.0,
-          "y": 55.0
+          "x": 10.0,
+          "y": 20.0
         },
-        "id": "GUINandGate",
-        "params": 1
+        "id": "GUIand",
+        "name": "GUIand#0"
       },
       {
         "pos": {
-          "x": 135.0,
-          "y": 20.0
+          "x": 10.0,
+          "y": 290.0
         },
-        "id": "GUIand"
+        "id": "GUIxor",
+        "name": "GUIxor#1"
       },
       {
         "pos": {
-          "x": 90.0,
+          "x": 135.0,
           "y": 70.0
         },
-        "id": "GUImux1"
+        "id": "GUIxor",
+        "name": "GUIxor#2"
       },
       {
         "pos": {
-          "x": 135.0,
-          "y": 70.0
+          "x": 60.0,
+          "y": 20.0
         },
-        "id": "GUIxor"
+        "id": "GUIfulladder",
+        "name": "GUIfulladder#0"
       },
       {
         "pos": {
-          "x": 49.0,
-          "y": 59.0
+          "x": 10.0,
+          "y": 190.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIxor",
+        "name": "GUIxor#0"
       },
       {
         "pos": {
-          "x": 54.0,
-          "y": 69.0
+          "x": 135.0,
+          "y": 20.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIand",
+        "name": "GUIand#1"
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Cin"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIand#0",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "CoutE"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIand#1",
           "pinName": "A"
         },
         "path": [
@@ -211,11 +221,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "CinE"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIand#0",
           "pinName": "B"
         },
         "path": [
@@ -231,51 +241,51 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "R"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIxor#0",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "RN"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIxor#0",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "S"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIxor#1",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "SN"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIxor#1",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "FN"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIxor#2",
           "pinName": "B"
         },
         "path": [
@@ -291,11 +301,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "L"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUImux1#0",
           "pinName": "S0"
         },
         "path": [
@@ -311,22 +321,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIand#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIfulladder#0",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIxor#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": [
@@ -338,11 +348,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIfulladder#0",
           "pinName": "B"
         },
         "path": [
@@ -354,22 +364,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIxor#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 10,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": [
@@ -381,11 +391,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIfulladder#0",
           "pinName": "C"
         },
         "path": [
@@ -397,22 +407,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIfulladder#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUImux1#0",
           "pinName": "I0"
         },
         "path": [
@@ -436,22 +446,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIfulladder#0",
           "pinName": "Z"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUIand#1",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUImux1#0",
           "pinName": "I1"
         },
         "path": [
@@ -467,33 +477,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUImux1#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUIxor#2",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUIand#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Cout"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUIxor#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "F"
         },
         "path": []
index 613b9b9..d80d080 100644 (file)
@@ -82,310 +82,339 @@ mograsim version: 0.1.3
       {
         "pos": {
           "x": 15.0,
-          "y": 10.0
+          "y": 50.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 15.0,
-          "y": 50.0
+          "x": 74.0,
+          "y": 159.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "params": 1
       },
       {
         "pos": {
           "x": 15.0,
-          "y": 90.0
+          "y": 10.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
         "pos": {
-          "x": 15.0,
-          "y": 150.0
+          "x": 74.0,
+          "y": 104.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "params": 1
       },
       {
         "pos": {
-          "x": 50.0,
-          "y": 10.0
+          "x": 15.0,
+          "y": 150.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "params": 1
       },
       {
         "pos": {
-          "x": 50.0,
-          "y": 50.0
+          "x": 15.0,
+          "y": 90.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 50.0,
-          "y": 90.0
+          "x": 109.0,
+          "y": 214.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "params": 1
       },
       {
         "pos": {
-          "x": 50.0,
-          "y": 130.0
+          "x": 4.0,
+          "y": 14.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 80.0,
-          "y": 10.0
+          "x": 4.0,
+          "y": 19.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
         "pos": {
-          "x": 80.0,
-          "y": 90.0
+          "x": 9.0,
+          "y": 59.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "params": 1
       },
       {
         "pos": {
-          "x": 80.0,
-          "y": 145.0
+          "x": 4.0,
+          "y": 24.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 110.0,
-          "y": 105.0
+          "x": 9.0,
+          "y": 104.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "params": 1
       },
       {
         "pos": {
-          "x": 115.0,
-          "y": 210.0
+          "x": 9.0,
+          "y": 64.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 4.0,
-          "y": 19.0
+          "x": 39.0,
+          "y": 59.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "params": 1
       },
       {
         "pos": {
           "x": 4.0,
-          "y": 14.0
+          "y": 154.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "params": 1
       },
       {
         "pos": {
-          "x": 4.0,
-          "y": 24.0
+          "x": 44.0,
+          "y": 54.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "params": 1
       },
       {
         "pos": {
-          "x": 9.0,
-          "y": 59.0
+          "x": 44.0,
+          "y": 19.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "params": 1
       },
       {
         "pos": {
-          "x": 9.0,
-          "y": 64.0
+          "x": 39.0,
+          "y": 134.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "params": 1
       },
       {
         "pos": {
-          "x": 9.0,
-          "y": 104.0
+          "x": 74.0,
+          "y": 99.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "params": 1
       },
       {
         "pos": {
-          "x": 4.0,
-          "y": 154.0
+          "x": 74.0,
+          "y": 19.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "params": 1
       },
       {
         "pos": {
-          "x": 39.0,
-          "y": 59.0
+          "x": 115.0,
+          "y": 210.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#12",
         "params": 1
       },
       {
         "pos": {
-          "x": 44.0,
-          "y": 19.0
+          "x": 110.0,
+          "y": 105.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#11",
         "params": 1
       },
       {
         "pos": {
-          "x": 44.0,
-          "y": 54.0
+          "x": 80.0,
+          "y": 145.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#10",
         "params": 1
       },
       {
         "pos": {
-          "x": 39.0,
-          "y": 134.0
+          "x": 80.0,
+          "y": 90.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
         "params": 1
       },
       {
         "pos": {
-          "x": 74.0,
-          "y": 19.0
+          "x": 80.0,
+          "y": 10.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "params": 1
       },
       {
         "pos": {
-          "x": 74.0,
-          "y": 99.0
+          "x": 50.0,
+          "y": 50.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "params": 1
       },
       {
         "pos": {
-          "x": 74.0,
-          "y": 104.0
+          "x": 50.0,
+          "y": 10.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 74.0,
-          "y": 159.0
+          "x": 50.0,
+          "y": 130.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "params": 1
       },
       {
         "pos": {
-          "x": 109.0,
-          "y": 214.0
+          "x": 50.0,
+          "y": 90.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I8"
         },
         "pin2": {
-          "compId": 14,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 15,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 16,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I7"
         },
         "pin2": {
-          "compId": 17,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": [
@@ -397,55 +426,55 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 18,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 19,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 19,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
         "path": [
@@ -457,11 +486,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I6"
         },
         "pin2": {
-          "compId": 20,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "path": [
@@ -473,22 +502,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 20,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 20,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
         "path": [
@@ -500,11 +529,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
         "path": [
@@ -524,22 +553,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 21,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 21,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "B"
         },
         "path": [
@@ -551,11 +580,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 21,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
         "path": [
@@ -567,22 +596,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 22,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 22,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "NSH"
         },
         "path": [
@@ -602,33 +631,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 22,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 23,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 23,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 23,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "A"
         },
         "path": [
@@ -640,11 +669,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 19,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
         "path": [
@@ -664,11 +693,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 24,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "path": [
@@ -680,22 +709,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 24,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 24,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
         "path": [
@@ -707,22 +736,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 25,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 25,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "A"
         },
         "path": [
@@ -734,11 +763,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 25,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
         "path": [
@@ -750,11 +779,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "RAMWE"
         },
         "path": [
@@ -770,22 +799,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 26,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 26,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUINandGate#9",
           "pinName": "A"
         },
         "path": [
@@ -797,33 +826,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 26,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compId": 27,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 27,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "LSH"
         },
         "path": [
@@ -839,11 +868,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 27,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUINandGate#10",
           "pinName": "A"
         },
         "path": [
@@ -855,33 +884,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 28,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 28,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUINandGate#10",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "RSH"
         },
         "path": [
@@ -897,21 +926,21 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUINandGate#9",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUINandGate#11",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 28,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUINandGate#11",
           "pinName": "B"
         },
         "path": [
@@ -931,11 +960,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUINandGate#10",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 29,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "path": [
@@ -947,22 +976,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 29,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUINandGate#12",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 29,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUINandGate#12",
           "pinName": "B"
         },
         "path": [
@@ -974,21 +1003,21 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUINandGate#11",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "YF"
         }
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "GUINandGate#12",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "QWE"
         },
         "path": []
index 7188972..6af804d 100644 (file)
@@ -87,40 +87,30 @@ mograsim version: 0.1.3
   "submodel": {
     "innerScale": 0.4,
     "subComps": [
-      {
-        "pos": {
-          "x": 5.0,
-          "y": 15.0
-        },
-        "id": "GUIand"
-      },
-      {
-        "pos": {
-          "x": 50.0,
-          "y": 7.5
-        },
-        "id": "GUIdff"
-      },
       {
         "pos": {
           "x": 50.0,
           "y": 32.5
         },
-        "id": "GUIdff"
+        "id": "GUIdff",
+        "name": "GUIdff#1"
       },
       {
         "pos": {
           "x": 50.0,
-          "y": 57.5
+          "y": 7.5
         },
-        "id": "GUIdff"
+        "id": "GUIdff",
+        "name": "GUIdff#0"
       },
       {
         "pos": {
-          "x": 50.0,
-          "y": 82.5
+          "x": 41.5,
+          "y": 36.5
         },
-        "id": "GUIdff"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "params": 1
       },
       {
         "pos": {
@@ -128,64 +118,82 @@ mograsim version: 0.1.3
           "y": 19.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
         "pos": {
           "x": 41.5,
-          "y": 36.5
+          "y": 61.5
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 41.5,
-          "y": 61.5
+          "x": 5.0,
+          "y": 15.0
         },
-        "id": "WireCrossPoint",
-        "params": 1
+        "id": "GUIand",
+        "name": "GUIand#0"
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 82.5
+        },
+        "id": "GUIdff",
+        "name": "GUIdff#3"
+      },
+      {
+        "pos": {
+          "x": 50.0,
+          "y": 57.5
+        },
+        "id": "GUIdff",
+        "name": "GUIdff#2"
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "C"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIand#0",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "WE"
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUIand#0",
           "pinName": "B"
         }
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUIand#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 6,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIdff#0",
           "pinName": "C"
         },
         "path": [
@@ -197,55 +205,55 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIdff#1",
           "pinName": "C"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIdff#2",
           "pinName": "C"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIdff#3",
           "pinName": "C"
         },
         "path": [
@@ -257,11 +265,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D1"
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUIdff#0",
           "pinName": "D"
         },
         "path": [
@@ -285,11 +293,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D2"
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUIdff#1",
           "pinName": "D"
         },
         "path": [
@@ -305,11 +313,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D3"
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUIdff#2",
           "pinName": "D"
         },
         "path": [
@@ -325,11 +333,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "D4"
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUIdff#3",
           "pinName": "D"
         },
         "path": [
@@ -345,44 +353,44 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUIdff#0",
           "pinName": "Q"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q1"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUIdff#1",
           "pinName": "Q"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q2"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUIdff#2",
           "pinName": "Q"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q3"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUIdff#3",
           "pinName": "Q"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "Q4"
         },
         "path": []
index 75b5f70..e36193d 100644 (file)
@@ -74,271 +74,302 @@ mograsim version: 0.1.3
       {
         "pos": {
           "x": 10.0,
-          "y": 10.0
+          "y": 50.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 10.0,
-          "y": 50.0
+          "x": 94.0,
+          "y": 19.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "params": 1
       },
       {
         "pos": {
           "x": 10.0,
-          "y": 90.0
+          "y": 10.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "params": 1
       },
       {
         "pos": {
-          "x": 40.0,
-          "y": 10.0
+          "x": 64.0,
+          "y": 139.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "params": 1
       },
       {
         "pos": {
           "x": 40.0,
-          "y": 50.0
+          "y": 10.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "params": 1
       },
       {
         "pos": {
-          "x": 40.0,
+          "x": 10.0,
           "y": 90.0
         },
         "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 40.0,
-          "y": 130.0
+          "x": 94.0,
+          "y": 179.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "params": 1
       },
       {
         "pos": {
-          "x": 40.0,
-          "y": 170.0
+          "x": 6.5,
+          "y": 19.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "params": 1
       },
       {
         "pos": {
-          "x": 70.0,
-          "y": 10.0
+          "x": 4.0,
+          "y": 19.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "params": 1
       },
       {
         "pos": {
-          "x": 70.0,
-          "y": 50.0
+          "x": 6.5,
+          "y": 59.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "params": 1
       },
       {
         "pos": {
-          "x": 70.0,
-          "y": 90.0
+          "x": 4.0,
+          "y": 144.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "params": 1
       },
       {
         "pos": {
-          "x": 70.0,
-          "y": 130.0
+          "x": 6.5,
+          "y": 104.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "params": 1
       },
       {
         "pos": {
-          "x": 70.0,
-          "y": 170.0
+          "x": 6.5,
+          "y": 99.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 100.0,
-          "y": 10.0
+          "x": 34.0,
+          "y": 59.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "params": 1
       },
       {
         "pos": {
-          "x": 100.0,
-          "y": 170.0
+          "x": 31.5,
+          "y": 54.0
         },
-        "id": "GUINandGate",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "params": 1
       },
       {
         "pos": {
-          "x": 4.0,
-          "y": 19.0
+          "x": 34.0,
+          "y": 134.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "params": 1
       },
       {
         "pos": {
-          "x": 6.5,
-          "y": 19.0
+          "x": 34.0,
+          "y": 64.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "params": 1
       },
       {
         "pos": {
-          "x": 4.0,
-          "y": 144.0
+          "x": 36.5,
+          "y": 99.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "params": 1
       },
       {
         "pos": {
-          "x": 6.5,
-          "y": 59.0
+          "x": 64.0,
+          "y": 99.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "params": 1
       },
       {
         "pos": {
-          "x": 6.5,
-          "y": 99.0
+          "x": 64.0,
+          "y": 59.0
         },
         "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "params": 1
       },
       {
         "pos": {
-          "x": 6.5,
-          "y": 104.0
+          "x": 70.0,
+          "y": 170.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#12",
         "params": 1
       },
       {
         "pos": {
-          "x": 31.5,
-          "y": 54.0
+          "x": 70.0,
+          "y": 130.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#11",
         "params": 1
       },
       {
         "pos": {
-          "x": 34.0,
-          "y": 59.0
+          "x": 100.0,
+          "y": 170.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#14",
         "params": 1
       },
       {
         "pos": {
-          "x": 34.0,
-          "y": 64.0
+          "x": 100.0,
+          "y": 10.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#13",
         "params": 1
       },
       {
         "pos": {
-          "x": 34.0,
-          "y": 134.0
+          "x": 70.0,
+          "y": 90.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#10",
         "params": 1
       },
       {
         "pos": {
-          "x": 36.5,
-          "y": 99.0
+          "x": 70.0,
+          "y": 50.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
         "params": 1
       },
       {
         "pos": {
-          "x": 64.0,
-          "y": 59.0
+          "x": 70.0,
+          "y": 10.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "params": 1
       },
       {
         "pos": {
-          "x": 64.0,
-          "y": 99.0
+          "x": 40.0,
+          "y": 90.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "params": 1
       },
       {
         "pos": {
-          "x": 64.0,
-          "y": 139.0
+          "x": 40.0,
+          "y": 50.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "params": 1
       },
       {
         "pos": {
-          "x": 94.0,
-          "y": 19.0
+          "x": 40.0,
+          "y": 170.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "params": 1
       },
       {
         "pos": {
-          "x": 94.0,
-          "y": 179.0
+          "x": 40.0,
+          "y": 130.0
         },
-        "id": "WireCrossPoint",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "params": 1
       }
     ],
     "innerWires": [
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I2"
         },
         "pin2": {
-          "compId": 16,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
         "path": [
@@ -358,22 +389,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 17,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
         "path": [
@@ -385,11 +416,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 17,
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
         "path": [
@@ -401,33 +432,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 16,
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compId": 18,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 18,
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUINandGate#12",
           "pinName": "B"
         },
         "path": [
@@ -447,22 +478,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I1"
         },
         "pin2": {
-          "compId": 19,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 19,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
         "path": [
@@ -474,11 +505,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 19,
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
         "path": [
@@ -490,22 +521,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "I0"
         },
         "pin2": {
-          "compId": 20,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 20,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
         "path": [
@@ -517,33 +548,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 20,
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compId": 21,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 21,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 21,
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
         "path": [
@@ -563,11 +594,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 1,
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 22,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "path": [
@@ -579,22 +610,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 22,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 22,
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "A"
         },
         "path": [
@@ -606,22 +637,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 2,
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 23,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 23,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
         "path": [
@@ -633,55 +664,55 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 23,
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compId": 24,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 24,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "B"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 24,
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compId": 25,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 25,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "A"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 25,
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "A"
         },
         "path": [
@@ -693,22 +724,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 3,
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 26,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 26,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
         "path": [
@@ -728,11 +759,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 26,
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
         "path": [
@@ -744,32 +775,32 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 4,
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 5,
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 27,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 27,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUINandGate#9",
           "pinName": "A"
         },
         "path": [
@@ -781,11 +812,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 27,
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compId": 10,
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
         "path": [
@@ -797,22 +828,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 6,
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 28,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 28,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUINandGate#10",
           "pinName": "A"
         },
         "path": [
@@ -824,11 +855,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 28,
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compId": 11,
+          "compName": "GUINandGate#10",
           "pinName": "B"
         },
         "path": [
@@ -840,22 +871,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 7,
+          "compName": "GUINandGate#6",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 29,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 29,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUINandGate#11",
           "pinName": "A"
         },
         "path": [
@@ -867,11 +898,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 29,
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compId": 12,
+          "compName": "GUINandGate#11",
           "pinName": "B"
         },
         "path": [
@@ -883,32 +914,32 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 8,
+          "compName": "GUINandGate#7",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 13,
+          "compName": "GUINandGate#12",
           "pinName": "A"
         }
       },
       {
         "pin1": {
-          "compId": 9,
+          "compName": "GUINandGate#8",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 30,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 30,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUINandGate#13",
           "pinName": "A"
         },
         "path": [
@@ -920,11 +951,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 30,
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compId": 14,
+          "compName": "GUINandGate#13",
           "pinName": "B"
         },
         "path": [
@@ -936,55 +967,55 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 10,
+          "compName": "GUINandGate#9",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "RA"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 11,
+          "compName": "GUINandGate#10",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "SB"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 12,
+          "compName": "GUINandGate#11",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "SA"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 13,
+          "compName": "GUINandGate#12",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 31,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 31,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUINandGate#14",
           "pinName": "A"
         },
         "path": [
@@ -996,11 +1027,11 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 31,
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compId": 15,
+          "compName": "GUINandGate#14",
           "pinName": "B"
         },
         "path": [
@@ -1012,22 +1043,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compId": 14,
+          "compName": "GUINandGate#13",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "SQ"
         },
         "path": []
       },
       {
         "pin1": {
-          "compId": 15,
+          "compName": "GUINandGate#14",
           "pinName": "Y"
         },
         "pin2": {
-          "compId": 0,
+          "compName": "_submodelinterface",
           "pinName": "RD"
         },
         "path": []
index c0ebad6..009dedd 100644 (file)
@@ -10,7 +10,6 @@ import net.mograsim.logic.ui.model.components.atomic.GUIBitDisplay;
 import net.mograsim.logic.ui.model.components.atomic.GUIManualSwitch;
 import net.mograsim.logic.ui.model.components.mi.nandbased.GUI_rsLatch;
 import net.mograsim.logic.ui.model.components.mi.nandbased.GUIfulladder;
-import net.mograsim.logic.ui.model.components.mi.nandbased.GUIhalfadder;
 import net.mograsim.logic.ui.model.components.submodels.SimpleRectangularSubmodelComponent;
 import net.mograsim.logic.ui.model.components.submodels.SubmodelComponent;
 import net.mograsim.logic.ui.model.wires.GUIWire;
@@ -28,30 +27,30 @@ public class JsonExample
 
        public static void mappingTest(ViewModelModifiable model)
        {
-               IndirectGUIComponentCreator.createComponent(model, "Am2901", JsonNull.INSTANCE);
+               IndirectGUIComponentCreator.createComponent(model, "Am2901", JsonNull.INSTANCE, "Am2901 instance");
        }
 
        private static class TestComponent extends SimpleRectangularSubmodelComponent
        {
-               protected TestComponent(ViewModelModifiable model)
+               protected TestComponent(ViewModelModifiable model, String name)
                {
-                       super(model, 1, "Test");
+                       super(model, 1, "Test", name);
                        setSubmodelScale(.4);
                        setInputPins("Input pin #0");
-                       SubmodelComponentDeserializer.create(submodelModifiable, "HalfAdder.json");
+                       SubmodelComponentDeserializer.create(submodelModifiable, "HalfAdder.json", "halfadder");
                }
        }
 
        @SuppressWarnings("unused") // GUIWires being created
        private static void basicTest(ViewModelModifiable viewModel)
        {
-               GUI_rsLatch comp = new GUI_rsLatch(viewModel);
+               GUI_rsLatch comp = new GUI_rsLatch(viewModel, "Original RS latch");
                comp.moveTo(30, 0);
                SubmodelComponentParams params = comp.calculateParams();
                String jsonString = JsonHandler.toJson(params);
                System.out.println(jsonString);
                SubmodelComponentParams paramsD = JsonHandler.fromJson(jsonString, SubmodelComponentParams.class);
-               SubmodelComponent componentD = SubmodelComponentDeserializer.create(viewModel, paramsD);
+               SubmodelComponent componentD = SubmodelComponentDeserializer.create(viewModel, paramsD, "Deserialized RS latch");
                componentD.moveTo(30, 50);
                double h = 0;
                for (String s : comp.getInputPinNames())
@@ -80,34 +79,16 @@ public class JsonExample
        // Execute only after HalfAdder.json has been created
        public static void refJsonFromJsonTest(ViewModelModifiable model)
        {
-               TestComponent t = new TestComponent(model);
+               TestComponent t = new TestComponent(model, "Original component");
                t.calculateParams().writeJson("Test.json");
-               SubmodelComponent c = SubmodelComponentDeserializer.create(model, "Test.json");
+               SubmodelComponent c = SubmodelComponentDeserializer.create(model, "Test.json", "Deserialized component");
                c.moveTo(0, 50);
        }
 
-       public static void createHalfAdderExample(ViewModelModifiable model)
-       {
-               GUIhalfadder tmp = new GUIhalfadder(model);
-               tmp.moveTo(1000, 50);
-               SubmodelComponentParams p = tmp.calculateParams();
-               try
-               {
-                       p.writeJson("HalfAdder.json");
-                       p = SubmodelComponentParams.readJson("HalfAdder.json");
-               }
-               catch (IOException e)
-               {
-                       e.printStackTrace();
-               }
-
-               SubmodelComponentDeserializer.create(model, p);
-       }
-
        @SuppressWarnings("unused") // for GUIWires being created
        public static void createFromJsonExample(ViewModelModifiable model)
        {
-               SimpleRectangularSubmodelComponent tmp = new GUIfulladder(model);
+               SimpleRectangularSubmodelComponent tmp = new GUIfulladder(model, "Original full adder");
                SubmodelComponentParams pC = tmp.calculateParams();
                tmp.moveTo(1000, 100);
                try
@@ -121,7 +102,7 @@ public class JsonExample
                }
 
                SimpleRectangularSubmodelComponent adder = (SimpleRectangularSubmodelComponent) SubmodelComponentDeserializer.create(model,
-                               "FullAdder.json");
+                               "FullAdder.json", "Deserialized full adder");
 
                GUIManualSwitch swA = new GUIManualSwitch(model);
                swA.moveTo(0, 0);
@@ -143,7 +124,7 @@ public class JsonExample
                new GUIWire(model, adder.getPin("Y"), bdY.getInputPin());
                new GUIWire(model, adder.getPin("Z"), bdZ.getInputPin());
 
-               SubmodelComponent adder2 = SubmodelComponentDeserializer.create(model, pC);
+               SubmodelComponent adder2 = SubmodelComponentDeserializer.create(model, pC, "Full adder created from params instance");
 
                swA = new GUIManualSwitch(model);
                swA.moveTo(0, 70);
index cc667b0..4ae8bd3 100644 (file)
@@ -17,7 +17,12 @@ public class GUI_rsLatch extends SimpleRectangularSubmodelComponent
 
        public GUI_rsLatch(ViewModelModifiable model)
        {
-               super(model, 1, "_rsLatch");
+               this(model, null);
+       }
+
+       public GUI_rsLatch(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "_rsLatch", name);
                setSubmodelScale(.4);
                setInputPins("_S", "_R");
                setOutputPins("Q", "_Q");
@@ -99,6 +104,6 @@ public class GUI_rsLatch extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUI_rsLatch.class.getCanonicalName(), (m, p) -> new GUI_rsLatch(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUI_rsLatch.class.getCanonicalName(), (m, p, n) -> new GUI_rsLatch(m, n));
        }
 }
\ No newline at end of file
index d362869..064fee3 100644 (file)
@@ -13,7 +13,12 @@ public class GUIand extends SimpleRectangularSubmodelComponent
 {
        public GUIand(ViewModelModifiable model)
        {
-               super(model, 1, "GUIand");
+               this(model, null);
+       }
+
+       public GUIand(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIand", name);
                setSubmodelScale(.4);
                setInputPins("A", "B");
                setOutputPins("Y");
@@ -46,6 +51,6 @@ public class GUIand extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIand.class.getCanonicalName(), (m, p) -> new GUIand(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIand.class.getCanonicalName(), (m, p, n) -> new GUIand(m, n));
        }
 }
\ No newline at end of file
index 5ba774f..73e5fa1 100644 (file)
@@ -12,7 +12,12 @@ public class GUIand41 extends SimpleRectangularSubmodelComponent
 {
        public GUIand41(ViewModelModifiable model)
        {
-               super(model, 1, "GUIand41");
+               this(model, null);
+       }
+
+       public GUIand41(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIand41", name);
                setSubmodelScale(.4);
                setInputPins("A1", "A2", "A3", "A4", "B");
                setOutputPins("Y1", "Y2", "Y3", "Y4");
@@ -68,6 +73,6 @@ public class GUIand41 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIand41.class.getCanonicalName(), (m, p) -> new GUIand41(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIand41.class.getCanonicalName(), (m, p, n) -> new GUIand41(m, n));
        }
 }
\ No newline at end of file
index 9b1a859..3f9d09c 100644 (file)
@@ -11,7 +11,12 @@ public class GUIandor414 extends SimpleRectangularSubmodelComponent
 {
        public GUIandor414(ViewModelModifiable model)
        {
-               super(model, 1, "GUIandor414");
+               this(model, null);
+       }
+
+       public GUIandor414(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIandor414", name);
                setSubmodelScale(.4);
                setInputPins("C1", "C2", "C3", "C4", "A1", "A2", "A3", "A4", "B");
                setOutputPins("Y1", "Y2", "Y3", "Y4");
@@ -66,6 +71,6 @@ public class GUIandor414 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIandor414.class.getCanonicalName(), (m, p) -> new GUIandor414(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIandor414.class.getCanonicalName(), (m, p, n) -> new GUIandor414(m, n));
        }
 }
\ No newline at end of file
index 4e8ad6d..1198dde 100644 (file)
@@ -13,7 +13,12 @@ public class GUIdemux2 extends SimpleRectangularSubmodelComponent
 {
        public GUIdemux2(ViewModelModifiable model)
        {
-               super(model, 1, "GUIdemux2");
+               this(model, null);
+       }
+
+       public GUIdemux2(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIdemux2", name);
                setSubmodelScale(.4);
                setInputPins("S0", "S1");
                setOutputPins("Y00", "Y01", "Y10", "Y11");
@@ -89,6 +94,6 @@ public class GUIdemux2 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIdemux2.class.getCanonicalName(), (m, p) -> new GUIdemux2(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIdemux2.class.getCanonicalName(), (m, p, n) -> new GUIdemux2(m, n));
        }
 }
\ No newline at end of file
index 7b84010..4756547 100644 (file)
@@ -15,7 +15,12 @@ public class GUIdff extends SimpleRectangularSubmodelComponent
 
        public GUIdff(ViewModelModifiable model)
        {
-               super(model, 1, "GUIdff");
+               this(model, null);
+       }
+
+       public GUIdff(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIdff", name);
                setSubmodelScale(.2);
                setInputPins("C", "D");
                setOutputPins("Q", "_Q");
@@ -97,6 +102,6 @@ public class GUIdff extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIdff.class.getCanonicalName(), (m, p) -> new GUIdff(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIdff.class.getCanonicalName(), (m, p, n) -> new GUIdff(m, n));
        }
 }
\ No newline at end of file
index 8258934..e0a6038 100644 (file)
@@ -15,7 +15,12 @@ public class GUIdlatch extends SimpleRectangularSubmodelComponent
 
        public GUIdlatch(ViewModelModifiable model)
        {
-               super(model, 1, "GUIdlatch");
+               this(model, null);
+       }
+
+       public GUIdlatch(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIdlatch", name);
                setSubmodelScale(.4);
                setInputPins("D", "E");
                setOutputPins("Q", "_Q");
@@ -86,6 +91,6 @@ public class GUIdlatch extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIdlatch.class.getCanonicalName(), (m, p) -> new GUIdlatch(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIdlatch.class.getCanonicalName(), (m, p, n) -> new GUIdlatch(m, n));
        }
 }
\ No newline at end of file
index 1c1f838..388c454 100644 (file)
@@ -19,7 +19,12 @@ public class GUIdlatch4 extends SimpleRectangularSubmodelComponent
 
        public GUIdlatch4(ViewModelModifiable model)
        {
-               super(model, 1, "GUIdlatch4");
+               this(model, null);
+       }
+
+       public GUIdlatch4(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIdlatch4", name);
                setSubmodelScale(.4);
                setInputPins("D1", "D2", "D3", "D4", "C");
                setOutputPins("Q1", "Q2", "Q3", "Q4");
@@ -136,6 +141,6 @@ public class GUIdlatch4 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIdlatch4.class.getCanonicalName(), (m, p) -> new GUIdlatch4(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIdlatch4.class.getCanonicalName(), (m, p, n) -> new GUIdlatch4(m, n));
        }
 }
\ No newline at end of file
index a880186..3a793a8 100644 (file)
@@ -12,7 +12,12 @@ public class GUIfulladder extends SimpleRectangularSubmodelComponent
 {
        public GUIfulladder(ViewModelModifiable model)
        {
-               super(model, 1, "GUIfulladder");
+               this(model, null);
+       }
+
+       public GUIfulladder(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIfulladder", name);
                setSubmodelScale(.4);
                setInputPins("A", "B", "C");
                setOutputPins("Y", "Z");
@@ -49,6 +54,6 @@ public class GUIfulladder extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIfulladder.class.getCanonicalName(), (m, p) -> new GUIfulladder(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIfulladder.class.getCanonicalName(), (m, p, n) -> new GUIfulladder(m, n));
        }
 }
\ No newline at end of file
index a31eae5..abb93cc 100644 (file)
@@ -13,7 +13,12 @@ public class GUIhalfadder extends SimpleRectangularSubmodelComponent
 {
        public GUIhalfadder(ViewModelModifiable model)
        {
-               super(model, 1, "GUIhalfadder");
+               this(model, null);
+       }
+
+       public GUIhalfadder(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIhalfadder", name);
                setSubmodelScale(.4);
                setInputPins("A", "B");
                setOutputPins("Y", "_Z");
@@ -62,6 +67,6 @@ public class GUIhalfadder extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIhalfadder.class.getCanonicalName(), (m, p) -> new GUIhalfadder(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIhalfadder.class.getCanonicalName(), (m, p, n) -> new GUIhalfadder(m, n));
        }
 }
\ No newline at end of file
index ea39de9..0e6eca6 100644 (file)
@@ -13,7 +13,12 @@ public class GUImux1 extends SimpleRectangularSubmodelComponent
 {
        public GUImux1(ViewModelModifiable model)
        {
-               super(model, 1, "GUImux1");
+               this(model, null);
+       }
+
+       public GUImux1(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUImux1", name);
                setSubmodelScale(.4);
                setInputPins("S0", "I0", "I1");
                setOutputPins("Y");
@@ -58,6 +63,6 @@ public class GUImux1 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUImux1.class.getCanonicalName(), (m, p) -> new GUImux1(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUImux1.class.getCanonicalName(), (m, p, n) -> new GUImux1(m, n));
        }
 }
\ No newline at end of file
index 85afdf5..6fb74b3 100644 (file)
@@ -12,7 +12,12 @@ public class GUImux1_4 extends SimpleRectangularSubmodelComponent
 {
        public GUImux1_4(ViewModelModifiable model)
        {
-               super(model, 1, "GUImux1_4");
+               this(model, null);
+       }
+
+       public GUImux1_4(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUImux1_4", name);
                setSubmodelScale(.4);
                setInputPins("S0", "I0_1", "I0_2", "I0_3", "I0_4", "I1_1", "I1_2", "I1_3", "I1_4");
                setOutputPins("Y1", "Y2", "Y3", "Y4");
@@ -77,6 +82,6 @@ public class GUImux1_4 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUImux1_4.class.getCanonicalName(), (m, p) -> new GUImux1_4(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUImux1_4.class.getCanonicalName(), (m, p, n) -> new GUImux1_4(m, n));
        }
 }
\ No newline at end of file
index 4443e21..56076cf 100644 (file)
@@ -13,7 +13,12 @@ public class GUInand3 extends SimpleRectangularSubmodelComponent
 {
        public GUInand3(ViewModelModifiable model)
        {
-               super(model, 1, "GUInand3");
+               this(model, null);
+       }
+
+       public GUInand3(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUInand3", name);
                setSubmodelScale(.4);
                setInputPins("A", "B", "C");
                setOutputPins("Y");
@@ -51,6 +56,6 @@ public class GUInand3 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUInand3.class.getCanonicalName(), (m, p) -> new GUInand3(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUInand3.class.getCanonicalName(), (m, p, n) -> new GUInand3(m, n));
        }
 }
\ No newline at end of file
index 7a16509..b1e9985 100644 (file)
@@ -13,7 +13,12 @@ public class GUInot4 extends SimpleRectangularSubmodelComponent
 {
        public GUInot4(ViewModelModifiable model)
        {
-               super(model, 1, "GUInot4");
+               this(model, null);
+       }
+
+       public GUInot4(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUInot4", name);
                setSubmodelScale(.4);
                setInputPins("A1", "A2", "A3", "A4");
                setOutputPins("Y1", "Y2", "Y3", "Y4");
@@ -71,6 +76,6 @@ public class GUInot4 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUInot4.class.getCanonicalName(), (m, p) -> new GUInot4(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUInot4.class.getCanonicalName(), (m, p, n) -> new GUInot4(m, n));
        }
 }
\ No newline at end of file
index a3caf9d..b0d3029 100644 (file)
@@ -13,7 +13,12 @@ public class GUIor4 extends SimpleRectangularSubmodelComponent
 {
        public GUIor4(ViewModelModifiable model)
        {
-               super(model, 1, "GUIor4");
+               this(model, null);
+       }
+
+       public GUIor4(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIor4", name);
                setSubmodelScale(.2);
                setInputPins("A1", "A2", "A3", "A4");
                setOutputPins("Y");
@@ -91,6 +96,6 @@ public class GUIor4 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIor4.class.getCanonicalName(), (m, p) -> new GUIor4(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIor4.class.getCanonicalName(), (m, p, n) -> new GUIor4(m, n));
        }
 }
\ No newline at end of file
index 0fd0dcf..7744abd 100644 (file)
@@ -13,7 +13,12 @@ public class GUIor_4 extends SimpleRectangularSubmodelComponent
 {
        public GUIor_4(ViewModelModifiable model)
        {
-               super(model, 1, "GUIor_4");
+               this(model, null);
+       }
+
+       public GUIor_4(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIor_4", name);
                setSubmodelScale(.4);
                setInputPins("A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4");
                setOutputPins("Y1", "Y2", "Y3", "Y4");
@@ -119,6 +124,6 @@ public class GUIor_4 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIor_4.class.getCanonicalName(), (m, p) -> new GUIor_4(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIor_4.class.getCanonicalName(), (m, p, n) -> new GUIor_4(m, n));
        }
 }
\ No newline at end of file
index 5f45b59..a7d9e9c 100644 (file)
@@ -18,7 +18,12 @@ public class GUIram2 extends SimpleRectangularSubmodelComponent
 
        public GUIram2(ViewModelModifiable model)
        {
-               super(model, 1, "GUIram2");
+               this(model, null);
+       }
+
+       public GUIram2(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIram2", name);
                setSubmodelScale(.1);
                setInputPins("A0", "A1", "B0", "B1", "WE", "D1", "D2", "D3", "D4");
                setOutputPins("QA1", "QA2", "QA3", "QA4", "QB1", "QB2", "QB3", "QB4");
@@ -323,6 +328,6 @@ public class GUIram2 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIram2.class.getCanonicalName(), (m, p) -> new GUIram2(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIram2.class.getCanonicalName(), (m, p, n) -> new GUIram2(m, n));
        }
 }
\ No newline at end of file
index 8b532d4..38b7516 100644 (file)
@@ -13,7 +13,12 @@ public class GUIram4 extends SimpleRectangularSubmodelComponent
 {
        public GUIram4(ViewModelModifiable model)
        {
-               super(model, 1, "GUIram4");
+               this(model, null);
+       }
+
+       public GUIram4(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIram4", name);
                setSubmodelScale(.1);
                setInputPins("A0", "A1", "A2", "A3", "B0", "B1", "B2", "B3", "WE", "D1", "D2", "D3", "D4");
                setOutputPins("QA1", "QA2", "QA3", "QA4", "QB1", "QB2", "QB3", "QB4");
@@ -361,6 +366,6 @@ public class GUIram4 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIram4.class.getCanonicalName(), (m, p) -> new GUIram4(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIram4.class.getCanonicalName(), (m, p, n) -> new GUIram4(m, n));
        }
 }
\ No newline at end of file
index 2bf9e98..e8abe39 100644 (file)
@@ -13,7 +13,12 @@ public class GUIsel2_4 extends SimpleRectangularSubmodelComponent
 {
        public GUIsel2_4(ViewModelModifiable model)
        {
-               super(model, 1, "GUIsel2_4");
+               this(model, null);
+       }
+
+       public GUIsel2_4(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIsel2_4", name);
                setSubmodelScale(.4);
                setInputPins("SA", "SB", "A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4");
                setOutputPins("Y1", "Y2", "Y3", "Y4");
@@ -115,6 +120,6 @@ public class GUIsel2_4 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIsel2_4.class.getCanonicalName(), (m, p) -> new GUIsel2_4(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIsel2_4.class.getCanonicalName(), (m, p, n) -> new GUIsel2_4(m, n));
        }
 }
\ No newline at end of file
index 58931d4..5695df8 100644 (file)
@@ -13,7 +13,12 @@ public class GUIsel3_4 extends SimpleRectangularSubmodelComponent
 {
        public GUIsel3_4(ViewModelModifiable model)
        {
-               super(model, 1, "GUIsel3_4");
+               this(model, null);
+       }
+
+       public GUIsel3_4(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIsel3_4", name);
                setSubmodelScale(.2);
                setInputPins("SA", "SB", "SC", "A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4", "C1", "C2", "C3", "C4");
                setOutputPins("Y1", "Y2", "Y3", "Y4");
@@ -113,6 +118,6 @@ public class GUIsel3_4 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIsel3_4.class.getCanonicalName(), (m, p) -> new GUIsel3_4(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIsel3_4.class.getCanonicalName(), (m, p, n) -> new GUIsel3_4(m, n));
        }
 }
\ No newline at end of file
index f1058e1..2fb100b 100644 (file)
@@ -13,7 +13,12 @@ public class GUIxor extends SimpleRectangularSubmodelComponent
 {
        public GUIxor(ViewModelModifiable model)
        {
-               super(model, 1, "GUIxor");
+               this(model, null);
+       }
+
+       public GUIxor(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIxor", name);
                setSubmodelScale(.4);
                setInputPins("A", "B");
                setOutputPins("Y");
@@ -60,6 +65,6 @@ public class GUIxor extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIxor.class.getCanonicalName(), (m, p) -> new GUIxor(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIxor.class.getCanonicalName(), (m, p, n) -> new GUIxor(m, n));
        }
 }
\ No newline at end of file
index 420526e..d396148 100644 (file)
@@ -17,10 +17,14 @@ import net.mograsim.logic.ui.serializing.IndirectGUIComponentCreator;
 
 public class GUIAm2901 extends SimpleRectangularSubmodelComponent
 {
-
        public GUIAm2901(ViewModelModifiable model)
        {
-               super(model, 1, "GUIAm2901");
+               this(model, null);
+       }
+
+       public GUIAm2901(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIAm2901", name);
                setSubmodelScale(.1);
                setInputPins("I8", "I7", "I6", "I5", "I4", "I3", "I2", "I1", "I0", "C", "Cn", "D1", "D2", "D3", "D4", "A0", "A1", "A2", "A3", "B0",
                                "B1", "B2", "B3", "IRAMn", "IRAMn+3", "IQn", "IQn+3");
@@ -348,6 +352,6 @@ public class GUIAm2901 extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901.class.getCanonicalName(), (m, p) -> new GUIAm2901(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901.class.getCanonicalName(), (m, p, n) -> new GUIAm2901(m, n));
        }
 }
\ No newline at end of file
index 09eeab4..07af76d 100644 (file)
@@ -15,7 +15,12 @@ public class GUIAm2901ALUFuncDecode extends SimpleRectangularSubmodelComponent
 {
        public GUIAm2901ALUFuncDecode(ViewModelModifiable model)
        {
-               super(model, 1, "GUIAm2901ALUFuncDecode");
+               this(model, null);
+       }
+
+       public GUIAm2901ALUFuncDecode(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIAm2901ALUFuncDecode", name);
                setSubmodelScale(.25);
                setInputPins("I5", "I4", "I3");
                setOutputPins("CinE", "L", "SN", "SBE", "FN", "RN");
@@ -111,6 +116,6 @@ public class GUIAm2901ALUFuncDecode extends SimpleRectangularSubmodelComponent
        static
        {
                IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901ALUFuncDecode.class.getCanonicalName(),
-                               (m, p) -> new GUIAm2901ALUFuncDecode(m));
+                               (m, p, n) -> new GUIAm2901ALUFuncDecode(m, n));
        }
 }
\ No newline at end of file
index 856f6a1..0fef480 100644 (file)
@@ -13,7 +13,12 @@ public class GUIAm2901ALUInclDecode extends SimpleRectangularSubmodelComponent
 {
        public GUIAm2901ALUInclDecode(ViewModelModifiable model)
        {
-               super(model, 1, "GUIAm2901ALUInclDecode");
+               this(model, null);
+       }
+
+       public GUIAm2901ALUInclDecode(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIAm2901ALUInclDecode", name);
                setSubmodelScale(.25);
                setInputPins("I5", "I4", "I3", "Cn", "R1", "R2", "R3", "R4", "S1", "S2", "S3", "S4");
                setOutputPins("F1", "F2", "F3", "F4", "Cn+4", "OVR");
@@ -171,6 +176,6 @@ public class GUIAm2901ALUInclDecode extends SimpleRectangularSubmodelComponent
        static
        {
                IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901ALUInclDecode.class.getCanonicalName(),
-                               (m, p) -> new GUIAm2901ALUInclDecode(m));
+                               (m, p, n) -> new GUIAm2901ALUInclDecode(m, n));
        }
 }
\ No newline at end of file
index 578ba81..12da51c 100644 (file)
@@ -14,7 +14,12 @@ public class GUIAm2901ALUInclSourceDecodeInclFunctionDecode extends SimpleRectan
 {
        public GUIAm2901ALUInclSourceDecodeInclFunctionDecode(ViewModelModifiable model)
        {
-               super(model, 1, "GUIAm2901ALUInclSourceDecodeInclFunctionDecode");
+               this(model, null);
+       }
+
+       public GUIAm2901ALUInclSourceDecodeInclFunctionDecode(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIAm2901ALUInclSourceDecodeInclFunctionDecode", name);
                setSubmodelScale(.25);
                setInputPins("I5", "I4", "I3", "I2", "I1", "I0", "Cn", "D1", "D2", "D3", "D4", "A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4", "Q1",
                                "Q2", "Q3", "Q4");
@@ -142,6 +147,6 @@ public class GUIAm2901ALUInclSourceDecodeInclFunctionDecode extends SimpleRectan
        static
        {
                IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901ALUInclSourceDecodeInclFunctionDecode.class.getCanonicalName(),
-                               (m, p) -> new GUIAm2901ALUInclSourceDecodeInclFunctionDecode(m));
+                               (m, p, n) -> new GUIAm2901ALUInclSourceDecodeInclFunctionDecode(m, n));
        }
 }
\ No newline at end of file
index 42b2357..ffe8b95 100644 (file)
@@ -17,7 +17,12 @@ public class GUIAm2901ALUOneBit extends SimpleRectangularSubmodelComponent
 {
        public GUIAm2901ALUOneBit(ViewModelModifiable model)
        {
-               super(model, 1, "GUIAm2901ALUOneBit");
+               this(model, null);
+       }
+
+       public GUIAm2901ALUOneBit(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIAm2901ALUOneBit", name);
                setSubmodelScale(.2);
                setInputPins("Cin", "CoutE", "CinE", "R", "RN", "S", "SN", "FN", "L");
                setOutputPins("Cout", "F");
@@ -90,6 +95,7 @@ public class GUIAm2901ALUOneBit extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901ALUOneBit.class.getCanonicalName(), (m, p) -> new GUIAm2901ALUOneBit(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901ALUOneBit.class.getCanonicalName(),
+                               (m, p, n) -> new GUIAm2901ALUOneBit(m, n));
        }
 }
\ No newline at end of file
index 7c7f380..f6bd0bb 100644 (file)
@@ -13,7 +13,12 @@ public class GUIAm2901DestDecode extends SimpleRectangularSubmodelComponent
 {
        public GUIAm2901DestDecode(ViewModelModifiable model)
        {
-               super(model, 1, "GUIAm2901DestDecode");
+               this(model, null);
+       }
+
+       public GUIAm2901DestDecode(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIAm2901DestDecode", name);
                setSubmodelScale(.25);
                setInputPins("I8", "I7", "I6");
                setOutputPins("NSH", "RSH", "RAMWE", "YF", "LSH", "QWE");
@@ -147,6 +152,6 @@ public class GUIAm2901DestDecode extends SimpleRectangularSubmodelComponent
        static
        {
                IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901DestDecode.class.getCanonicalName(),
-                               (m, p) -> new GUIAm2901DestDecode(m));
+                               (m, p, n) -> new GUIAm2901DestDecode(m, n));
        }
 }
\ No newline at end of file
index cdea0b7..f45c116 100644 (file)
@@ -21,7 +21,12 @@ public class GUIAm2901QReg extends SimpleRectangularSubmodelComponent
 
        public GUIAm2901QReg(ViewModelModifiable model)
        {
-               super(model, 1, "GUIAm2901QReg");
+               this(model, null);
+       }
+
+       public GUIAm2901QReg(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "GUIAm2901QReg", name);
                setSubmodelScale(.4);
                setInputPins("C", "WE", "D1", "D2", "D3", "D4");
                setOutputPins("Q1", "Q2", "Q3", "Q4");
@@ -144,6 +149,6 @@ public class GUIAm2901QReg extends SimpleRectangularSubmodelComponent
 
        static
        {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901QReg.class.getCanonicalName(), (m, p) -> new GUIAm2901QReg(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901QReg.class.getCanonicalName(), (m, p, n) -> new GUIAm2901QReg(m, n));
        }
 }
\ No newline at end of file
index 585ab83..f579a83 100644 (file)
@@ -13,7 +13,12 @@ public class GUIAm2901SourceDecode extends SimpleRectangularSubmodelComponent
 {
        public GUIAm2901SourceDecode(ViewModelModifiable model)
        {
-               super(model, 1, "Am2901SourceDecode");
+               this(model, null);
+       }
+
+       public GUIAm2901SourceDecode(ViewModelModifiable model, String name)
+       {
+               super(model, 1, "Am2901SourceDecode", name);
                setSubmodelScale(.25);
                setInputPins("I2", "I1", "I0");
                setOutputPins("SQ", "RA", "SB", "SA", "RD");
@@ -153,6 +158,6 @@ public class GUIAm2901SourceDecode extends SimpleRectangularSubmodelComponent
        static
        {
                IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901SourceDecode.class.getCanonicalName(),
-                               (m, p) -> new GUIAm2901SourceDecode(m));
+                               (m, p, n) -> new GUIAm2901SourceDecode(m, n));
        }
 }
\ No newline at end of file
index 25f1566..455a03c 100644 (file)
@@ -151,7 +151,7 @@ public class TestableAm2901Impl implements TestableAm2901
                {
                        ViewModel model = modelsToIterate.poll();
                        wiresIncludingSubmodels.addAll(model.getWires());
-                       for (GUIComponent comp : model.getComponents())
+                       for (GUIComponent comp : model.getComponentsByName().values())
                                if (comp instanceof SubmodelComponent)
                                        modelsToIterate.offer(((SubmodelComponent) comp).submodel);
                }
index 0ea2680..3795f64 100644 (file)
@@ -66,7 +66,7 @@ public class LogicUICanvas extends ZoomableCanvas
                if (e.button == 1)
                {
                        Point click = displayToWorldCoords(e.x, e.y);
-                       for (GUIComponent component : model.getComponents())
+                       for (GUIComponent component : model.getComponentsByName().values())
                                if (component.getBounds().contains(click) && component.clicked(click.x, click.y))
                                {
                                        redraw();
@@ -163,10 +163,10 @@ public class LogicUICanvas extends ZoomableCanvas
 
        private void addComponentSelectorItems(List<GUIComponent> componentsByItemIndex, String base, Combo componentSelector, ViewModel model)
        {
-               for (GUIComponent c : model.getComponents())
+               for (GUIComponent c : model.getComponentsByName().values())
                        if (!(c instanceof WireCrossPoint || c instanceof SubmodelInterface))
                        {
-                               String item = base + c.getClass().getSimpleName();
+                               String item = base + c.name;
                                componentsByItemIndex.add(c);
                                componentSelector.add(item);
                                if (c instanceof SubmodelComponent)
index 7858a70..56ecffb 100644 (file)
@@ -32,7 +32,7 @@ public class LogicUIRenderer
                        if (visibleRegion.intersects(bounds.x - lw, bounds.y - lw, bounds.width + lw + lw, bounds.height + lw + lw))
                                w.render(gc);
                });
-               model.getComponents().forEach(c -> renderComponent(gc, c, visibleRegion));
+               model.getComponentsByName().values().forEach(c -> renderComponent(gc, c, visibleRegion));
        }
 
        private static void renderComponent(GeneralGC gc, GUIComponent component, Rectangle visibleRegion)
index 55402c2..4d1f21b 100644 (file)
@@ -2,7 +2,9 @@ package net.mograsim.logic.ui.model;
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.function.Consumer;
 
 import net.mograsim.logic.ui.model.components.GUIComponent;
@@ -10,8 +12,8 @@ import net.mograsim.logic.ui.model.wires.GUIWire;
 
 public class ViewModel
 {
-       private final List<GUIComponent> components;
-       private final List<GUIComponent> componentsUnmodifiable;
+       private final Map<String, GUIComponent> components;
+       private final Map<String, GUIComponent> componentsUnmodifiable;
        private final List<GUIWire> wires;
        private final List<GUIWire> wiresUnmodifiable;
 
@@ -25,8 +27,8 @@ public class ViewModel
 
        protected ViewModel()
        {
-               components = new ArrayList<>();
-               componentsUnmodifiable = Collections.unmodifiableList(components);
+               components = new HashMap<>();
+               componentsUnmodifiable = Collections.unmodifiableMap(components);
                wires = new ArrayList<>();
                wiresUnmodifiable = Collections.unmodifiableList(wires);
 
@@ -45,9 +47,9 @@ public class ViewModel
         */
        protected void componentCreated(GUIComponent component)
        {
-               if (components.contains(component))
+               if (components.containsKey(component.name))
                        throw new IllegalStateException("Don't add the same component twice!");
-               components.add(component);
+               components.put(component.name, component);
                callComponentAddedListeners(component);
                component.addRedrawListener(redrawListenerForSubcomponents);
                callRedrawListeners();
@@ -59,9 +61,9 @@ public class ViewModel
         */
        protected void componentDestroyed(GUIComponent component)
        {
-               if (!components.contains(component))
+               if (!components.containsKey(component.name))
                        throw new IllegalStateException("Don't remove the same component twice!");
-               components.remove(component);
+               components.remove(component.name);
                callComponentRemovedListeners(component);
                component.removeRedrawListener(redrawListenerForSubcomponents);
                callRedrawListeners();
@@ -95,7 +97,7 @@ public class ViewModel
                callRedrawListeners();
        }
 
-       public List<GUIComponent> getComponents()
+       public Map<String, GUIComponent> getComponentsByName()
        {
                return componentsUnmodifiable;
        }
index 21863db..3a95075 100644 (file)
@@ -1,10 +1,24 @@
 package net.mograsim.logic.ui.model;
 
+import java.util.Set;
+
 import net.mograsim.logic.ui.model.components.GUIComponent;
 import net.mograsim.logic.ui.model.wires.GUIWire;
 
 public class ViewModelModifiable extends ViewModel
 {
+       public String getDefaultComponentName(GUIComponent component)
+       {
+               Set<String> componentNames = getComponentsByName().keySet();
+               String nameBase = component.getClass().getSimpleName() + '#';
+               for (int i = 0;; i++)
+               {
+                       String nameCandidate = nameBase + i;
+                       if (!componentNames.contains(nameCandidate))
+                               return nameCandidate;
+               }
+       }
+
        @Override
        public void componentCreated(GUIComponent component)
        {
index 952d753..bf9ea85 100644 (file)
@@ -28,6 +28,10 @@ public abstract class GUIComponent
         * The model this component is a part of.
         */
        protected final ViewModelModifiable model;
+       /**
+        * The name of this component. Is unique in its model.
+        */
+       public final String name;
        private final Rectangle bounds;
        /**
         * The list of all pins of this component by name.
@@ -47,9 +51,10 @@ public abstract class GUIComponent
        private final Runnable redrawListenerForSubcomponents;
        // creation and destruction
 
-       public GUIComponent(ViewModelModifiable model)
+       public GUIComponent(ViewModelModifiable model, String name)
        {
                this.model = model;
+               this.name = name == null ? model.getDefaultComponentName(this) : name;
                this.bounds = new Rectangle(0, 0, 0, 0);
                this.pinsByName = new HashMap<>();
                this.pinsUnmodifiable = Collections.unmodifiableMap(pinsByName);
index ef83740..b0427bd 100644 (file)
@@ -10,13 +10,19 @@ public class GUIAndGate extends SimpleRectangularGUIGate
 {
        public GUIAndGate(ViewModelModifiable model, int logicWidth)
        {
-               super(model, logicWidth, "&", false);
+               this(model, logicWidth, null);
+       }
+
+       public GUIAndGate(ViewModelModifiable model, int logicWidth, String name)
+       {
+               super(model, "&", false, logicWidth, name);
                setInputCount(2);// TODO make variable
        }
 
        static
        {
                ViewLogicModelAdapter.addComponentAdapter(new SimpleGateAdapter<>(GUIAndGate.class, AndGate::new));
-               IndirectGUIComponentCreator.setComponentSupplier(GUIAndGate.class.getCanonicalName(), (m, p) -> new GUIAndGate(m, p.getAsInt()));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIAndGate.class.getCanonicalName(),
+                               (m, p, n) -> new GUIAndGate(m, p.getAsInt(), n));
        }
 }
\ No newline at end of file
index 8311d7d..cd643db 100644 (file)
@@ -30,7 +30,12 @@ public class GUIBitDisplay extends GUIComponent
 
        public GUIBitDisplay(ViewModelModifiable model)
        {
-               super(model);
+               this(model, null);
+       }
+
+       public GUIBitDisplay(ViewModelModifiable model, String name)
+       {
+               super(model, name);
                logicObs = (i) -> requestRedraw();
 
                setSize(width, height);
@@ -84,6 +89,6 @@ public class GUIBitDisplay extends GUIComponent
        static
        {
                ViewLogicModelAdapter.addComponentAdapter(new BitDisplayAdapter());
-               IndirectGUIComponentCreator.setComponentSupplier(GUIBitDisplay.class.getCanonicalName(), (m, p) -> new GUIBitDisplay(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIBitDisplay.class.getCanonicalName(), (m, p, n) -> new GUIBitDisplay(m, n));
        }
 }
\ No newline at end of file
index 0329e96..ebb7a18 100644 (file)
@@ -34,7 +34,12 @@ public class GUIManualSwitch extends GUIComponent
 
        public GUIManualSwitch(ViewModelModifiable model)
        {
-               super(model);
+               this(model, null);
+       }
+
+       public GUIManualSwitch(ViewModelModifiable model, String name)
+       {
+               super(model, name);
                logicObs = (i) -> requestRedraw();
 
                setSize(width, height);
@@ -138,6 +143,6 @@ public class GUIManualSwitch extends GUIComponent
        static
        {
                ViewLogicModelAdapter.addComponentAdapter(new ManualSwitchAdapter());
-               IndirectGUIComponentCreator.setComponentSupplier(GUIManualSwitch.class.getName(), (m, p) -> new GUIManualSwitch(m));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIManualSwitch.class.getName(), (m, p, n) -> new GUIManualSwitch(m, n));
        }
 }
\ No newline at end of file
index bcaab1c..78b1639 100644 (file)
@@ -10,13 +10,19 @@ public class GUINandGate extends SimpleRectangularGUIGate
 {
        public GUINandGate(ViewModelModifiable model, int logicWidth)
        {
-               super(model, logicWidth, "&", true);
+               this(model, logicWidth, null);
+       }
+
+       public GUINandGate(ViewModelModifiable model, int logicWidth, String name)
+       {
+               super(model, "&", true, logicWidth, name);
                setInputCount(2);// TODO make variable
        }
 
        static
        {
                ViewLogicModelAdapter.addComponentAdapter(new SimpleGateAdapter<>(GUINandGate.class, NandGate::new));
-               IndirectGUIComponentCreator.setComponentSupplier(GUINandGate.class.getCanonicalName(), (m, p) -> new GUINandGate(m, p.getAsInt()));
+               IndirectGUIComponentCreator.setComponentSupplier(GUINandGate.class.getCanonicalName(),
+                               (m, p, n) -> new GUINandGate(m, p.getAsInt(), n));
        }
 }
\ No newline at end of file
index 6f1acd4..fdab22c 100644 (file)
@@ -10,13 +10,19 @@ public class GUINotGate extends SimpleRectangularGUIGate
 {
        public GUINotGate(ViewModelModifiable model, int logicWidth)
        {
-               super(model, logicWidth, "1", true);
+               this(model, logicWidth, null);
+       }
+
+       public GUINotGate(ViewModelModifiable model, int logicWidth, String name)
+       {
+               super(model, "1", true, logicWidth, name);
                setInputCount(1);
        }
 
        static
        {
                ViewLogicModelAdapter.addComponentAdapter(new SimpleGateAdapter<>(GUINotGate.class, (t, p, o, i) -> new NotGate(t, p, i[0], o)));
-               IndirectGUIComponentCreator.setComponentSupplier(GUINotGate.class.getCanonicalName(), (m, p) -> new GUINotGate(m, p.getAsInt()));
+               IndirectGUIComponentCreator.setComponentSupplier(GUINotGate.class.getCanonicalName(),
+                               (m, p, n) -> new GUINotGate(m, p.getAsInt(), n));
        }
 }
\ No newline at end of file
index e69410c..e9c2d0b 100644 (file)
@@ -10,13 +10,19 @@ public class GUIOrGate extends SimpleRectangularGUIGate
 {
        public GUIOrGate(ViewModelModifiable model, int logicWidth)
        {
-               super(model, logicWidth, "\u22651", false);// ">=1"
+               this(model, logicWidth, null);
+       }
+
+       public GUIOrGate(ViewModelModifiable model, int logicWidth, String name)
+       {
+               super(model, "\u22651", false, logicWidth, name);// ">=1"
                setInputCount(2);
        }
 
        static
        {
                ViewLogicModelAdapter.addComponentAdapter(new SimpleGateAdapter<>(GUIOrGate.class, OrGate::new));
-               IndirectGUIComponentCreator.setComponentSupplier(GUIOrGate.class.getCanonicalName(), (m, p) -> new GUIOrGate(m, p.getAsInt()));
+               IndirectGUIComponentCreator.setComponentSupplier(GUIOrGate.class.getCanonicalName(),
+                               (m, p, n) -> new GUIOrGate(m, p.getAsInt(), n));
        }
 }
\ No newline at end of file
index 7debf23..384ecb5 100644 (file)
@@ -26,16 +26,16 @@ public class SimpleRectangularGUIGate extends GUIComponent
        private static final double invertedCircleDiam = 3.5;
 
        private final String label;
-       protected final int logicWidth;
        private final boolean isInverted;
+       protected final int logicWidth;
        private final double rectWidth;
 
        private MovablePin outputPin;
        private final List<Pin> inputPins;
 
-       protected SimpleRectangularGUIGate(ViewModelModifiable model, int logicWidth, String label, boolean isInverted)
+       protected SimpleRectangularGUIGate(ViewModelModifiable model, String label, boolean isInverted, int logicWidth, String name)
        {
-               super(model);
+               super(model, name);
                this.label = label;
                this.logicWidth = logicWidth;
                this.isInverted = isInverted;
index 84766f6..c204dca 100644 (file)
@@ -22,7 +22,12 @@ public class TextComponent extends GUIComponent
 
        public TextComponent(ViewModelModifiable model, String text)
        {
-               super(model);
+               this(model, text, null);
+       }
+
+       public TextComponent(ViewModelModifiable model, String text, String name)
+       {
+               super(model, name);
                this.text = text;
                // If size is unset, it defaults to 0, which could prohibit this component from being rendered, which would prohibit the size being
                // set to a better guess
@@ -52,6 +57,7 @@ public class TextComponent extends GUIComponent
        static
        {
                ViewLogicModelAdapter.addComponentAdapter(new NoLogicAdapter<>(TextComponent.class));
-               IndirectGUIComponentCreator.setComponentSupplier(TextComponent.class.getName(), (m, p) -> new TextComponent(m, p.getAsString()));
+               IndirectGUIComponentCreator.setComponentSupplier(TextComponent.class.getName(),
+                               (m, p, n) -> new TextComponent(m, p.getAsString(), n));
        }
 }
index d7ac643..acf9fb2 100644 (file)
@@ -43,7 +43,12 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent
 
        public SimpleRectangularSubmodelComponent(ViewModelModifiable model, int logicWidth, String label)
        {
-               super(model);
+               this(model, logicWidth, label, null);
+       }
+
+       public SimpleRectangularSubmodelComponent(ViewModelModifiable model, int logicWidth, String label, String name)
+       {
+               super(model, name);
                this.label = label;
                this.logicWidth = logicWidth;
                this.inputPinNames = new ArrayList<>();
index 49c2b5c..6f2bab5 100644 (file)
@@ -3,7 +3,6 @@ package net.mograsim.logic.ui.model.components.submodels;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -35,6 +34,7 @@ import net.mograsim.logic.ui.serializing.SubmodelComponentParams.SubmodelParamet
  */
 public abstract class SubmodelComponent extends GUIComponent
 {
+       private static final String SUBMODEL_INTERFACE_NAME = "_submodelinterface";
        /**
         * A modifiable view of {@link #submodel}.
         */
@@ -102,9 +102,9 @@ public abstract class SubmodelComponent extends GUIComponent
 
        // creation and destruction
 
-       public SubmodelComponent(ViewModelModifiable model)
+       public SubmodelComponent(ViewModelModifiable model, String name)
        {
-               super(model);
+               super(model, name);
                this.submodelModifiable = new ViewModelModifiable();
                this.submodel = submodelModifiable;
                this.submodelPins = new HashMap<>();
@@ -113,7 +113,7 @@ public abstract class SubmodelComponent extends GUIComponent
                this.supermodelPins = new HashMap<>();
                this.supermodelMovablePinsUnmodifiable = Collections.unmodifiableMap(supermodelPins);
                this.supermodelUnmovablePinsUnmodifiable = Collections.unmodifiableMap(supermodelPins);
-               this.submodelInterface = new SubmodelInterface(submodelModifiable);
+               this.submodelInterface = new SubmodelInterface(submodelModifiable, SUBMODEL_INTERFACE_NAME);
 
                this.highLevelAtomicStates = new HashSet<>();
                this.subcomponentsByHighLevelStateSubcomponentID = new HashMap<>();
@@ -492,7 +492,7 @@ public abstract class SubmodelComponent extends GUIComponent
        {
                double scaledX = (x - getPosX()) / submodelScale;
                double scaledY = (y - getPosY()) / submodelScale;
-               for (GUIComponent component : submodel.getComponents())
+               for (GUIComponent component : submodel.getComponentsByName().values())
                        if (component.getBounds().contains(scaledX, scaledY) && component.clicked(scaledX, scaledY))
                                return true;
                return false;
@@ -538,19 +538,18 @@ public abstract class SubmodelComponent extends GUIComponent
                SubmodelParameters params = new SubmodelParameters();
                params.innerScale = getSubmodelScale();
 
-               List<GUIComponent> compList = submodel.getComponents();
-               Iterator<GUIComponent> componentIt = compList.iterator();
-               componentIt.next(); // Skip inner SubmodelInterface
-               InnerComponentParams[] comps = new InnerComponentParams[compList.size() - 1];
+               Map<String, GUIComponent> components = new HashMap<>(submodel.getComponentsByName());
+               components.remove(SUBMODEL_INTERFACE_NAME);
+               InnerComponentParams[] comps = new InnerComponentParams[components.size()];
                int i = 0;
-               while (componentIt.hasNext())
+               for (GUIComponent component : components.values())
                {
-                       GUIComponent component = componentIt.next();
                        InnerComponentParams inner = new InnerComponentParams();
                        comps[i] = inner;
                        inner.pos = new Point(component.getPosX(), component.getPosY());
                        inner.id = getIdentifier.apply(component);
                        inner.params = component.getParams();
+                       inner.name = component.name;
                        i++;
                }
                params.subComps = comps;
@@ -565,9 +564,9 @@ public abstract class SubmodelComponent extends GUIComponent
                        InnerPinParams pin1Params = new InnerPinParams(), pin2Params = new InnerPinParams();
 
                        pin1Params.pinName = wire.getPin1().name;
-                       pin1Params.compId = compList.indexOf(wire.getPin1().component);
+                       pin1Params.compName = wire.getPin1().component.name;
                        pin2Params.pinName = wire.getPin2().name;
-                       pin2Params.compId = compList.indexOf(wire.getPin2().component);
+                       pin2Params.compName = wire.getPin2().component.name;
                        inner.pin1 = pin1Params;
                        inner.pin2 = pin2Params;
                        inner.path = wire.getPath();
index 21b9e13..a657b4e 100644 (file)
@@ -8,9 +8,9 @@ import net.mograsim.logic.ui.model.wires.Pin;
 
 public class SubmodelInterface extends GUIComponent
 {
-       public SubmodelInterface(ViewModelModifiable model)
+       public SubmodelInterface(ViewModelModifiable model, String name)
        {
-               super(model);
+               super(model, name);
        }
 
        @Override
index 58e3a02..da0a450 100644 (file)
@@ -46,7 +46,12 @@ public class WireCrossPoint extends GUIComponent
 
        public WireCrossPoint(ViewModelModifiable model, int logicWidth)
        {
-               super(model);
+               this(model, logicWidth, null);
+       }
+
+       public WireCrossPoint(ViewModelModifiable model, int logicWidth, String name)
+       {
+               super(model, name);
                logicObs = (i) -> requestRedraw();
 
                setSize(CIRCLE_DIAM, CIRCLE_DIAM);
@@ -118,6 +123,6 @@ public class WireCrossPoint extends GUIComponent
        static
        {
                IndirectGUIComponentCreator.setComponentSupplier(WireCrossPoint.class.getCanonicalName(),
-                               (m, p) -> new WireCrossPoint(m, p.getAsInt()));
+                               (m, p, n) -> new WireCrossPoint(m, p.getAsInt(), n));
        }
 }
\ No newline at end of file
index 88e7c1b..b0d7831 100644 (file)
@@ -46,7 +46,7 @@ public class ViewLogicModelAdapter
                Map<Pin, Wire> logicWiresPerPin = convertWires(getAllPins(viewModel), viewModel.getWires(), externalWires, params, timeline);
                Map<Pin, Wire> logicWiresPerPinUnmodifiable = Collections.unmodifiableMap(logicWiresPerPin);
 
-               for (GUIComponent guiComp : viewModel.getComponents())
+               for (GUIComponent guiComp : viewModel.getComponentsByName().values())
                {
                        if (guiComp instanceof SubmodelComponent)
                        {
@@ -66,7 +66,8 @@ public class ViewLogicModelAdapter
 
        private static Set<Pin> getAllPins(ViewModel viewModel)
        {
-               return viewModel.getComponents().stream().flatMap(component -> component.getPins().values().stream()).collect(Collectors.toSet());
+               return viewModel.getComponentsByName().values().stream().flatMap(component -> component.getPins().values().stream())
+                               .collect(Collectors.toSet());
        }
 
        private static Map<Pin, Wire> convertWires(Set<Pin> allPins, List<GUIWire> wires, Map<Pin, Wire> externalWires,
index 2348af6..0468b12 100644 (file)
@@ -13,9 +13,9 @@ public class DeserializedSubmodelComponent extends SubmodelComponent
        public Renderer outlineRenderer;
        public Renderer symbolRenderer;
 
-       public DeserializedSubmodelComponent(ViewModelModifiable model)
+       public DeserializedSubmodelComponent(ViewModelModifiable model, String name)
        {
-               super(model);
+               super(model, name);
        }
 
        @Override
index 0e89af7..365fe9a 100644 (file)
@@ -58,10 +58,20 @@ public class IndirectGUIComponentCreator
 
        public static GUIComponent createComponent(ViewModelModifiable model, String id)
        {
-               return createComponent(model, id, JsonNull.INSTANCE);
+               return createComponent(model, id, (String) null);
+       }
+
+       public static GUIComponent createComponent(ViewModelModifiable model, String id, String name)
+       {
+               return createComponent(model, id, JsonNull.INSTANCE, name);
        }
 
        public static GUIComponent createComponent(ViewModelModifiable model, String id, JsonElement params)
+       {
+               return createComponent(model, id, params, null);
+       }
+
+       public static GUIComponent createComponent(ViewModelModifiable model, String id, JsonElement params, String name)
        {
                if (id != null)
                {
@@ -76,11 +86,11 @@ public class IndirectGUIComponentCreator
                                tryLoadComponentClass(className);
                                ComponentSupplier componentSupplier = componentSuppliers.get(className);
                                if (componentSupplier != null)
-                                       return componentSupplier.create(model, params);
+                                       return componentSupplier.create(model, params, name);
                        } else
                                // we know id has to start with "file:" here
                                // because standardComponentIDs only contains strings starting with "class:" or "file:"
-                               return SubmodelComponentDeserializer.create(model, resolvedID.substring(5));
+                               return SubmodelComponentDeserializer.create(model, resolvedID.substring(5), name);
                }
                throw new RuntimeException("Could not get component supplier for ID " + id);
        }
@@ -92,6 +102,6 @@ public class IndirectGUIComponentCreator
 
        public static interface ComponentSupplier
        {
-               public GUIComponent create(ViewModelModifiable model, JsonElement params);
+               public GUIComponent create(ViewModelModifiable model, JsonElement params, String name);
        }
 }
\ No newline at end of file
index 53d7205..5698115 100644 (file)
@@ -1,10 +1,10 @@
 package net.mograsim.logic.ui.serializing;
 
 import java.io.IOException;
+import java.util.Map;
 
 import net.mograsim.logic.ui.model.ViewModelModifiable;
 import net.mograsim.logic.ui.model.components.GUIComponent;
-import net.mograsim.logic.ui.model.components.submodels.SimpleRectangularSubmodelComponent;
 import net.mograsim.logic.ui.model.components.submodels.SubmodelComponent;
 import net.mograsim.logic.ui.model.wires.GUIWire;
 import net.mograsim.logic.ui.model.wires.MovablePin;
@@ -19,47 +19,53 @@ import net.mograsim.logic.ui.serializing.SubmodelComponentParams.SubmodelParamet
 public final class SubmodelComponentDeserializer
 {
        /**
-        * Creates a {@link SubmodelComponent} from the {@link SubmodelComponentParams}, specified at the given path. The returned
-        * SubmodelComponent can also be e.g. a {@link SimpleRectangularSubmodelComponent}, depending on what the
-        * {@link SubmodelComponentParams} describe.
+        * Like {@link #create(ViewModelModifiable, String, String)}, but using the default name.
+        */
+       public static SubmodelComponent create(ViewModelModifiable model, String path)
+       {
+               return create(model, path, null);
+       }
+
+       /**
+        * Creates a {@link SubmodelComponent} from the {@link SubmodelComponentParams} located at the given path as a JSON file. The returned
+        * SubmodelComponent is a {@link DeserializedSubmodelComponent}.
         * 
         * @param path The path of the file describing the {@link SubmodelComponentParams}, which define the new {@link SubmodelComponent}
         * @return A new SubmodelComponent, as described in the file located at the given path
         */
-       public static SubmodelComponent create(ViewModelModifiable model, String path)
+       public static SubmodelComponent create(ViewModelModifiable model, String path, String name)
        {
                try
                {
                        SubmodelComponentParams params = SubmodelComponentParams.readJson(path);
-                       SubmodelComponent ret = create(model, params);
+                       SubmodelComponent ret = create(model, params, name);
                        return ret;
                }
                catch (IOException e)
                {
-                       System.err.println("Failed to construct GUICustomComponent. Parameters were not found.");
-                       e.printStackTrace();
+                       throw new RuntimeException("Failed to construct GUICustomComponent. Parameters were not found.", e);
                }
-               return new SimpleRectangularSubmodelComponent(model, 0, "ERROR");
        }
 
        /**
-        * Creates a {@link SubmodelComponent} from the specified {@link SubmodelComponentParams}. The returned SubmodelComponent can also be
-        * e.g. a {@link SimpleRectangularSubmodelComponent}, depending on what the {@link SubmodelComponentParams} describe.
+        * Creates a {@link SubmodelComponent} from the specified {@link SubmodelComponentParams}. The returned SubmodelComponent is a
+        * {@link DeserializedSubmodelComponent}.
         * 
         * @param params The parameters describing the {@link SubmodelComponent}
         * 
         * @return A new SubmodelComponent, as described by the {@link SubmodelComponentParams}
         */
-       public static SubmodelComponent create(ViewModelModifiable model, SubmodelComponentParams params)
+       public static SubmodelComponent create(ViewModelModifiable model, SubmodelComponentParams params, String name)
        {
-               DeserializedSubmodelComponent comp = createSubmodelComponent(model, params);
+               DeserializedSubmodelComponent comp = createSubmodelComponent(model, params, name);
                initSubmodel(comp, params.submodel);
                return comp;
        }
 
-       private static DeserializedSubmodelComponent createSubmodelComponent(ViewModelModifiable model, SubmodelComponentParams params)
+       private static DeserializedSubmodelComponent createSubmodelComponent(ViewModelModifiable model, SubmodelComponentParams params,
+                       String name)
        {
-               DeserializedSubmodelComponent comp = new DeserializedSubmodelComponent(model);
+               DeserializedSubmodelComponent comp = new DeserializedSubmodelComponent(model, name);
                comp.setSubmodelScale(params.submodel.innerScale);
                comp.setOutlineRenderer(CodeSnippetSupplier.outlineRendererSupplier.getSnippetSupplier(params.outlineRendererSnippetID).create(comp,
                                params.outlineRendererParams));
@@ -73,24 +79,24 @@ public final class SubmodelComponentDeserializer
                return comp;
        }
 
-       @SuppressWarnings("unused")
+       @SuppressWarnings("unused") // GUIWire being created
        private static void initSubmodel(DeserializedSubmodelComponent comp, SubmodelParameters params)
        {
+               ViewModelModifiable submodelModifiable = comp.getSubmodelModifiable();
+               Map<String, GUIComponent> componentsByName = submodelModifiable.getComponentsByName();
                GUIComponent[] components = new GUIComponent[params.subComps.length];
                for (int i = 0; i < components.length; i++)
                {
                        InnerComponentParams cParams = params.subComps[i];
-                       String path = cParams.id;
-                       components[i] = IndirectGUIComponentCreator.createComponent(comp.getSubmodelModifiable(), cParams.id, cParams.params);
+                       components[i] = IndirectGUIComponentCreator.createComponent(submodelModifiable, cParams.id, cParams.params, cParams.name);
                        components[i].moveTo(cParams.pos.x, cParams.pos.y);
                }
 
                for (int i = 0; i < params.innerWires.length; i++)
                {
                        InnerWireParams innerWire = params.innerWires[i];
-                       new GUIWire(comp.getSubmodelModifiable(),
-                                       comp.getSubmodelModifiable().getComponents().get(innerWire.pin1.compId).getPin(innerWire.pin1.pinName),
-                                       comp.getSubmodelModifiable().getComponents().get(innerWire.pin2.compId).getPin(innerWire.pin2.pinName), innerWire.path);
+                       new GUIWire(submodelModifiable, componentsByName.get(innerWire.pin1.compName).getPin(innerWire.pin1.pinName),
+                                       componentsByName.get(innerWire.pin2.compName).getPin(innerWire.pin2.pinName), innerWire.path);
                }
        }
 }
index e2a0e48..3deda5f 100644 (file)
@@ -42,6 +42,7 @@ public class SubmodelComponentParams
                {
                        public Point pos;
                        public String id;
+                       public String name;
                        public JsonElement params;
                }
 
@@ -52,7 +53,7 @@ public class SubmodelComponentParams
 
                        public static class InnerPinParams
                        {
-                               public int compId;
+                               public String compName;
                                public String pinName;
                        }
                }