Reserialized all components to version 0.1.5 and set correct PinUsages
authorDaniel Kirschten <daniel.kirschten@gmx.de>
Sat, 31 Aug 2019 17:50:05 +0000 (19:50 +0200)
committerDaniel Kirschten <daniel.kirschten@gmx.de>
Sat, 31 Aug 2019 19:28:25 +0000 (21:28 +0200)
84 files changed:
net.mograsim.logic.model.am2900/GUIAm2904Testbench.json
net.mograsim.logic.model.am2900/components/GUI_rsLatch.json
net.mograsim.logic.model.am2900/components/GUIand.json
net.mograsim.logic.model.am2900/components/GUIand41.json
net.mograsim.logic.model.am2900/components/GUIandor414.json
net.mograsim.logic.model.am2900/components/GUIdemux2.json
net.mograsim.logic.model.am2900/components/GUIdff.json
net.mograsim.logic.model.am2900/components/GUIdff4.json
net.mograsim.logic.model.am2900/components/GUIdff4_invwe.json
net.mograsim.logic.model.am2900/components/GUIdlatch.json
net.mograsim.logic.model.am2900/components/GUIdlatch4.json
net.mograsim.logic.model.am2900/components/GUIfulladder.json
net.mograsim.logic.model.am2900/components/GUIhalfadder.json
net.mograsim.logic.model.am2900/components/GUImux1.json
net.mograsim.logic.model.am2900/components/GUImux1_4.json
net.mograsim.logic.model.am2900/components/GUImux2.json
net.mograsim.logic.model.am2900/components/GUImux2_4.json
net.mograsim.logic.model.am2900/components/GUImux3.json
net.mograsim.logic.model.am2900/components/GUInand3.json
net.mograsim.logic.model.am2900/components/GUInot4.json
net.mograsim.logic.model.am2900/components/GUIor4.json
net.mograsim.logic.model.am2900/components/GUIor_4.json
net.mograsim.logic.model.am2900/components/GUIram2.json
net.mograsim.logic.model.am2900/components/GUIram4.json
net.mograsim.logic.model.am2900/components/GUIsel1.json
net.mograsim.logic.model.am2900/components/GUIsel2_4.json
net.mograsim.logic.model.am2900/components/GUIsel3_4.json
net.mograsim.logic.model.am2900/components/GUIxor.json
net.mograsim.logic.model.am2900/components/am2901/GUIAm2901.json
net.mograsim.logic.model.am2900/components/am2901/GUIAm2901ALUFuncDecode.json
net.mograsim.logic.model.am2900/components/am2901/GUIAm2901ALUInclDecode.json
net.mograsim.logic.model.am2900/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json
net.mograsim.logic.model.am2900/components/am2901/GUIAm2901ALUOneBit.json
net.mograsim.logic.model.am2900/components/am2901/GUIAm2901DestDecode.json
net.mograsim.logic.model.am2900/components/am2901/GUIAm2901SourceDecode.json
net.mograsim.logic.model.am2900/components/am2904/GUIAm2904.json
net.mograsim.logic.model.am2900/components/am2904/GUIAm2904MSR.json
net.mograsim.logic.model.am2900/components/am2904/GUIAm2904TestLogic.json
net.mograsim.logic.model.am2900/components/am2904/GUIAm2904muSR.json
net.mograsim.logic.model.am2900/components/am2910/GUIAm2910.json
net.mograsim.logic.model.am2900/components/am2910/GUIAm2910_old.json [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ReserializeJSONsSettingUsages.java [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUI_rsLatch.json
net.mograsim.logic.model.editor/components/GUIand.json
net.mograsim.logic.model.editor/components/GUIand41.json
net.mograsim.logic.model.editor/components/GUIandor414.json
net.mograsim.logic.model.editor/components/GUIdemux2.json
net.mograsim.logic.model.editor/components/GUIdff.json
net.mograsim.logic.model.editor/components/GUIdff4.json
net.mograsim.logic.model.editor/components/GUIdff4_invwe.json
net.mograsim.logic.model.editor/components/GUIdlatch.json
net.mograsim.logic.model.editor/components/GUIdlatch4.json
net.mograsim.logic.model.editor/components/GUIfulladder.json
net.mograsim.logic.model.editor/components/GUIhalfadder.json
net.mograsim.logic.model.editor/components/GUImux1.json
net.mograsim.logic.model.editor/components/GUImux1_4.json
net.mograsim.logic.model.editor/components/GUImux2.json
net.mograsim.logic.model.editor/components/GUImux2_4.json
net.mograsim.logic.model.editor/components/GUImux3.json
net.mograsim.logic.model.editor/components/GUInand3.json
net.mograsim.logic.model.editor/components/GUInot4.json
net.mograsim.logic.model.editor/components/GUIor4.json
net.mograsim.logic.model.editor/components/GUIor_4.json
net.mograsim.logic.model.editor/components/GUIram2.json
net.mograsim.logic.model.editor/components/GUIram4.json
net.mograsim.logic.model.editor/components/GUIsel1.json
net.mograsim.logic.model.editor/components/GUIsel2_4.json
net.mograsim.logic.model.editor/components/GUIsel3_4.json
net.mograsim.logic.model.editor/components/GUIxor.json
net.mograsim.logic.model.editor/components/am2901/GUIAm2901.json
net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUFuncDecode.json
net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUInclDecode.json
net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json
net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUOneBit.json
net.mograsim.logic.model.editor/components/am2901/GUIAm2901DestDecode.json
net.mograsim.logic.model.editor/components/am2901/GUIAm2901SourceDecode.json
net.mograsim.logic.model.editor/components/am2904/GUIAm2904.json
net.mograsim.logic.model.editor/components/am2904/GUIAm2904MSR.json
net.mograsim.logic.model.editor/components/am2904/GUIAm2904TestLogic.json
net.mograsim.logic.model.editor/components/am2904/GUIAm2904muSR.json
net.mograsim.logic.model.editor/components/am2910/GUIAm2910.json
net.mograsim.logic.model.editor/components/am2910/GUIAm2910_old.json [deleted file]
net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModelModifiable.java
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/SubmodelComponentSerializer.java

index faea225..568ee04 100644 (file)
   "submodel": {
     "components": [
       {
-        "id": "TextComponent",
-        "name": "TextComponent#1",
-        "pos": {
-          "x": 140.0,
-          "y": 125.0
-        },
-        "params": "IC"
-      },
-      {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#4",
+        "id": "GUIAm2904",
+        "name": "Am2904",
         "pos": {
-          "x": 335.0,
-          "y": 105.0
-        },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
+          "x": 220.0,
+          "y": 175.0
         }
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#8",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#0",
         "pos": {
-          "x": 125.0,
-          "y": 230.0
+          "x": 391.0,
+          "y": 150.0
         },
-        "params": "_EN"
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#1",
         "pos": {
-          "x": 185.0,
-          "y": 310.0
+          "x": 391.0,
+          "y": 165.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#2",
         "pos": {
-          "x": 345.0,
-          "y": 85.0
+          "x": 391.0,
+          "y": 180.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#3",
         "pos": {
-          "x": 375.0,
-          "y": 190.0
+          "x": 391.0,
+          "y": 195.0
         },
         "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#4",
         "pos": {
-          "x": 391.0,
-          "y": 180.0
+          "x": 365.0,
+          "y": 240.0
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#6",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#5",
         "pos": {
-          "x": 125.0,
-          "y": 200.0
+          "x": 365.0,
+          "y": 275.0
         },
-        "params": "_EZ"
+        "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#14",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#6",
         "pos": {
-          "x": 40.0,
-          "y": 130.0
+          "x": 365.0,
+          "y": 370.0
         },
-        "params": "I1"
+        "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#13",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#7",
         "pos": {
-          "x": 60.0,
-          "y": 132.5
+          "x": 365.0,
+          "y": 385.0
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#48",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#8",
         "pos": {
-          "x": 350.0,
-          "y": 220.0
+          "x": 365.0,
+          "y": 330.0
         },
-        "params": "_OECT"
+        "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#9",
         "pos": {
-          "x": 175.0,
-          "y": 370.0
+          "x": 365.0,
+          "y": 315.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#42",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#0",
         "pos": {
-          "x": 270.0,
-          "y": 135.0
+          "x": 255.0,
+          "y": 152.5
         },
-        "params": "YOVR"
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#1",
         "pos": {
-          "x": 355.0,
-          "y": 380.0
+          "x": 170.0,
+          "y": 82.5
         },
         "params": 1
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#10",
         "pos": {
-          "x": 85.0,
-          "y": 130.0
+          "x": 160.0,
+          "y": 247.5
         },
-        "params": 13
+        "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#36",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#11",
         "pos": {
-          "x": 300.0,
-          "y": 77.5
+          "x": 160.0,
+          "y": 217.5
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#24",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#12",
         "pos": {
-          "x": 55.0,
-          "y": 162.5
+          "x": 160.0,
+          "y": 202.5
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#31",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#13",
         "pos": {
-          "x": 55.0,
-          "y": 242.5
+          "x": 60.0,
+          "y": 132.5
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#25",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#14",
         "pos": {
-          "x": 55.0,
-          "y": 182.5
+          "x": 165.0,
+          "y": 287.5
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#16",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#15",
         "pos": {
-          "x": 35.0,
-          "y": 160.0
+          "x": 140.0,
+          "y": 317.5
         },
-        "params": "I4"
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#16",
         "pos": {
-          "x": 380.0,
-          "y": 200.0
+          "x": 140.0,
+          "y": 332.5
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#29",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#17",
         "pos": {
-          "x": 416.0,
-          "y": 195.0
+          "x": 140.0,
+          "y": 387.5
         },
-        "params": "YOVR"
+        "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#23",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#18",
         "pos": {
-          "x": 60.0,
-          "y": 172.5
+          "x": 140.0,
+          "y": 372.5
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#35",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#19",
         "pos": {
-          "x": 300.0,
-          "y": 122.5
+          "x": 140.0,
+          "y": 357.5
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#2",
         "pos": {
           "x": 170.0,
-          "y": 127.5
+          "y": 112.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#20",
         "pos": {
-          "x": 360.0,
-          "y": 125.0
+          "x": 140.0,
+          "y": 302.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#21",
         "pos": {
-          "x": 215.0,
-          "y": 340.0
+          "x": 55.0,
+          "y": 142.5
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#22",
         "pos": {
-          "x": 55.0,
-          "y": 122.5
+          "x": 60.0,
+          "y": 152.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#23",
         "pos": {
-          "x": 370.0,
-          "y": 175.0
+          "x": 60.0,
+          "y": 172.5
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#34",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#24",
         "pos": {
-          "x": 300.0,
-          "y": 92.5
+          "x": 55.0,
+          "y": 162.5
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#25",
         "pos": {
-          "x": 170.0,
-          "y": 112.5
+          "x": 55.0,
+          "y": 182.5
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#44",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#26",
         "pos": {
-          "x": 270.0,
-          "y": 90.0
+          "x": 60.0,
+          "y": 192.5
         },
-        "params": "YZ"
+        "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#32",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#27",
         "pos": {
-          "x": 390.0,
-          "y": 315.0
+          "x": 60.0,
+          "y": 232.5
         },
-        "params": "SIOn"
+        "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#6",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#28",
         "pos": {
-          "x": 170.0,
-          "y": 157.5
+          "x": 55.0,
+          "y": 202.5
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#39",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#29",
         "pos": {
-          "x": 110.0,
-          "y": 370.0
+          "x": 55.0,
+          "y": 222.5
         },
-        "params": "SIO0"
+        "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#6",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#3",
         "pos": {
-          "x": 365.0,
-          "y": 370.0
+          "x": 55.0,
+          "y": 122.5
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#41",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#30",
         "pos": {
-          "x": 110.0,
-          "y": 330.0
+          "x": 60.0,
+          "y": 212.5
         },
-        "params": "QIOn"
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#31",
         "pos": {
-          "x": 185.0,
-          "y": 365.0
+          "x": 55.0,
+          "y": 242.5
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#10",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#32",
         "pos": {
-          "x": 35.0,
-          "y": 120.0
+          "x": 300.0,
+          "y": 107.5
         },
-        "params": "I0"
+        "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#15",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#33",
         "pos": {
-          "x": 140.0,
-          "y": 317.5
+          "x": 300.0,
+          "y": 137.5
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#20",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#34",
         "pos": {
-          "x": 140.0,
-          "y": 302.5
+          "x": 300.0,
+          "y": 92.5
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#17",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#35",
         "pos": {
-          "x": 140.0,
-          "y": 387.5
+          "x": 300.0,
+          "y": 122.5
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#10",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#36",
         "pos": {
-          "x": 160.0,
-          "y": 247.5
+          "x": 300.0,
+          "y": 77.5
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#11",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#37",
         "pos": {
-          "x": 160.0,
-          "y": 217.5
+          "x": 165.0,
+          "y": 270.0
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#35",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#38",
         "pos": {
-          "x": 390.0,
-          "y": 385.0
+          "x": 385.0,
+          "y": 220.0
         },
-        "params": "QIO0"
+        "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#30",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#4",
         "pos": {
-          "x": 390.0,
-          "y": 240.0
+          "x": 170.0,
+          "y": 127.5
         },
-        "params": "CT"
+        "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#40",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#5",
         "pos": {
-          "x": 110.0,
-          "y": 315.0
+          "x": 170.0,
+          "y": 142.5
         },
-        "params": "SIOn"
+        "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#12",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#6",
         "pos": {
-          "x": 35.0,
-          "y": 140.0
+          "x": 170.0,
+          "y": 157.5
         },
-        "params": "I2"
+        "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#18",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#7",
         "pos": {
-          "x": 140.0,
-          "y": 372.5
+          "x": 155.0,
+          "y": 172.5
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#8",
         "pos": {
-          "x": 170.0,
-          "y": 142.5
+          "x": 155.0,
+          "y": 187.5
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#8",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIManualSwitch",
+        "name": "GUIManualSwitch#9",
         "pos": {
-          "x": 155.0,
-          "y": 187.5
+          "x": 160.0,
+          "y": 232.5
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#15",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
+        "name": "GUIMerger#0",
         "pos": {
-          "x": 40.0,
-          "y": 150.0
+          "x": 85.0,
+          "y": 130.0
         },
-        "params": "I3"
+        "params": 13
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#6",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#0",
         "pos": {
-          "x": 335.0,
-          "y": 120.0
+          "x": 175.0,
+          "y": 315.0
         },
         "params": {
           "logicWidth": 1,
         }
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#43",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#1",
         "pos": {
-          "x": 270.0,
-          "y": 120.0
+          "x": 175.0,
+          "y": 330.0
         },
-        "params": "YN"
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#29",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#2",
         "pos": {
-          "x": 55.0,
-          "y": 222.5
+          "x": 175.0,
+          "y": 385.0
         },
-        "params": 1
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#3",
         "pos": {
           "x": 175.0,
-          "y": 330.0
+          "y": 370.0
         },
         "params": {
           "logicWidth": 1,
         }
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#45",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#4",
         "pos": {
-          "x": 270.0,
+          "x": 335.0,
           "y": 105.0
         },
-        "params": "YC"
-      },
-      {
-        "id": "TextComponent",
-        "name": "TextComponent#17",
-        "pos": {
-          "x": 35.0,
-          "y": 180.0
-        },
-        "params": "I6"
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#5",
         "pos": {
-          "x": 365.0,
-          "y": 160.0
+          "x": 335.0,
+          "y": 90.0
         },
-        "params": 1
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#11",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#6",
         "pos": {
-          "x": 35.0,
-          "y": 240.0
+          "x": 335.0,
+          "y": 120.0
         },
-        "params": "I12"
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUITriStateBuffer",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
         "name": "GUITriStateBuffer#7",
         "pos": {
           "x": 335.0,
         }
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#0",
         "pos": {
           "x": 140.0,
-          "y": 155.0
+          "y": 110.0
         },
-        "params": "IOVR"
+        "params": "IZ"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#36",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#1",
         "pos": {
-          "x": 30.0,
-          "y": 300.0
+          "x": 140.0,
+          "y": 125.0
         },
-        "params": "enable S/QIOn input"
+        "params": "IC"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#19",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#10",
         "pos": {
           "x": 35.0,
-          "y": 200.0
+          "y": 120.0
         },
-        "params": "I8"
+        "params": "I0"
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#11",
         "pos": {
-          "x": 360.0,
-          "y": 110.0
+          "x": 35.0,
+          "y": 240.0
         },
-        "params": 1
+        "params": "I12"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#22",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#12",
         "pos": {
-          "x": 60.0,
-          "y": 152.5
+          "x": 35.0,
+          "y": 140.0
         },
-        "params": 1
+        "params": "I2"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#47",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#13",
         "pos": {
-          "x": 145.0,
-          "y": 270.0
+          "x": 40.0,
+          "y": 170.0
         },
-        "params": "_SE"
+        "params": "I5"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#9",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#14",
         "pos": {
-          "x": 160.0,
-          "y": 232.5
+          "x": 40.0,
+          "y": 130.0
         },
-        "params": 1
+        "params": "I1"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#9",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#15",
         "pos": {
-          "x": 125.0,
-          "y": 245.0
+          "x": 40.0,
+          "y": 150.0
         },
-        "params": "_EOVR"
+        "params": "I3"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#28",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#16",
         "pos": {
-          "x": 416.0,
-          "y": 180.0
+          "x": 35.0,
+          "y": 160.0
         },
-        "params": "YN"
+        "params": "I4"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#12",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#17",
         "pos": {
-          "x": 160.0,
-          "y": 202.5
+          "x": 35.0,
+          "y": 180.0
         },
-        "params": 1
+        "params": "I6"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#27",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#18",
         "pos": {
-          "x": 416.0,
-          "y": 165.0
+          "x": 40.0,
+          "y": 190.0
         },
-        "params": "YC"
+        "params": "I7"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#32",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#19",
         "pos": {
-          "x": 300.0,
-          "y": 107.5
+          "x": 35.0,
+          "y": 200.0
         },
-        "params": 1
+        "params": "I8"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#33",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#2",
         "pos": {
-          "x": 300.0,
-          "y": 137.5
+          "x": 140.0,
+          "y": 140.0
         },
-        "params": 1
+        "params": "IN"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#37",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#20",
         "pos": {
-          "x": 165.0,
-          "y": 270.0
+          "x": 40.0,
+          "y": 210.0
         },
-        "params": 1
+        "params": "I9"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#21",
         "pos": {
-          "x": 115.0,
-          "y": 170.0
+          "x": 35.0,
+          "y": 220.0
         },
-        "params": "_CEM"
+        "params": "I10"
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#9",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#22",
         "pos": {
-          "x": 365.0,
-          "y": 315.0
+          "x": 40.0,
+          "y": 230.0
         },
-        "params": 1
+        "params": "I11"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#23",
         "pos": {
-          "x": 255.0,
-          "y": 152.5
+          "x": 145.0,
+          "y": 285.0
         },
-        "params": 1
+        "params": "CX"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#21",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#24",
         "pos": {
-          "x": 35.0,
-          "y": 220.0
+          "x": 150.0,
+          "y": 80.0
         },
-        "params": "I10"
+        "params": "C"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#25",
         "pos": {
-          "x": 170.0,
-          "y": 82.5
+          "x": 225.0,
+          "y": 150.0
         },
-        "params": 1
+        "params": "_OEY"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#16",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#26",
         "pos": {
-          "x": 140.0,
-          "y": 332.5
+          "x": 416.0,
+          "y": 150.0
         },
-        "params": 1
+        "params": "YZ"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#46",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#27",
         "pos": {
-          "x": 220.0,
-          "y": 75.0
+          "x": 416.0,
+          "y": 165.0
         },
-        "params": "enable Y input"
+        "params": "YC"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#30",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#28",
         "pos": {
-          "x": 60.0,
-          "y": 212.5
+          "x": 416.0,
+          "y": 180.0
         },
-        "params": 1
+        "params": "YN"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#29",
+        "pos": {
+          "x": 416.0,
+          "y": 195.0
+        },
+        "params": "YOVR"
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#3",
         "pos": {
           "x": 140.0,
-          "y": 110.0
+          "y": 155.0
         },
-        "params": "IZ"
+        "params": "IOVR"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#14",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#30",
         "pos": {
-          "x": 165.0,
-          "y": 287.5
+          "x": 390.0,
+          "y": 240.0
         },
-        "params": 1
+        "params": "CT"
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#8",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#31",
         "pos": {
-          "x": 365.0,
-          "y": 330.0
+          "x": 390.0,
+          "y": 275.0
         },
-        "params": 1
+        "params": "C0"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#32",
         "pos": {
-          "x": 115.0,
-          "y": 185.0
+          "x": 390.0,
+          "y": 315.0
         },
-        "params": "_CEmu"
+        "params": "SIOn"
       },
       {
-        "id": "GUIAm2904",
-        "name": "Am2904",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#33",
         "pos": {
-          "x": 220.0,
-          "y": 175.0
-        }
+          "x": 390.0,
+          "y": 330.0
+        },
+        "params": "QIOn"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#7",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#34",
         "pos": {
-          "x": 155.0,
-          "y": 172.5
+          "x": 390.0,
+          "y": 370.0
         },
-        "params": 1
+        "params": "SIO0"
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#35",
         "pos": {
-          "x": 365.0,
-          "y": 275.0
+          "x": 390.0,
+          "y": 385.0
         },
-        "params": 1
+        "params": "QIO0"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#18",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#36",
         "pos": {
-          "x": 40.0,
-          "y": 190.0
+          "x": 30.0,
+          "y": 300.0
         },
-        "params": "I7"
+        "params": "enable S/QIOn input"
       },
       {
-        "id": "TextComponent",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
         "name": "TextComponent#37",
         "pos": {
           "x": 30.0,
         "params": "enable S/QIO0 input"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#13",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#38",
         "pos": {
-          "x": 40.0,
-          "y": 170.0
+          "x": 110.0,
+          "y": 385.0
         },
-        "params": "I5"
+        "params": "QIO0"
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#39",
         "pos": {
-          "x": 210.0,
-          "y": 325.0
+          "x": 110.0,
+          "y": 370.0
         },
-        "params": 1
+        "params": "SIO0"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#22",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#4",
         "pos": {
-          "x": 40.0,
-          "y": 230.0
+          "x": 115.0,
+          "y": 170.0
         },
-        "params": "I11"
+        "params": "_CEM"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#19",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#40",
         "pos": {
-          "x": 140.0,
-          "y": 357.5
+          "x": 110.0,
+          "y": 315.0
         },
-        "params": 1
+        "params": "SIOn"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#7",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#41",
         "pos": {
-          "x": 125.0,
-          "y": 215.0
+          "x": 110.0,
+          "y": 330.0
         },
-        "params": "_EC"
+        "params": "QIOn"
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#42",
         "pos": {
-          "x": 335.0,
-          "y": 90.0
+          "x": 270.0,
+          "y": 135.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": "YOVR"
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#43",
         "pos": {
-          "x": 360.0,
-          "y": 390.0
+          "x": 270.0,
+          "y": 120.0
         },
-        "params": 1
+        "params": "YN"
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#44",
         "pos": {
-          "x": 365.0,
-          "y": 240.0
+          "x": 270.0,
+          "y": 90.0
         },
-        "params": 1
+        "params": "YZ"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#25",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#45",
         "pos": {
-          "x": 225.0,
-          "y": 150.0
+          "x": 270.0,
+          "y": 105.0
         },
-        "params": "_OEY"
+        "params": "YC"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#31",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#46",
         "pos": {
-          "x": 390.0,
-          "y": 275.0
+          "x": 220.0,
+          "y": 75.0
         },
-        "params": "C0"
+        "params": "enable Y input"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#28",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#47",
         "pos": {
-          "x": 55.0,
-          "y": 202.5
+          "x": 145.0,
+          "y": 270.0
         },
-        "params": 1
+        "params": "_SE"
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#48",
         "pos": {
-          "x": 175.0,
-          "y": 385.0
+          "x": 350.0,
+          "y": 220.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": "_OECT"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#23",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#5",
         "pos": {
-          "x": 145.0,
-          "y": 285.0
+          "x": 115.0,
+          "y": 185.0
         },
-        "params": "CX"
+        "params": "_CEmu"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#21",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#6",
         "pos": {
-          "x": 55.0,
-          "y": 142.5
+          "x": 125.0,
+          "y": 200.0
         },
-        "params": 1
+        "params": "_EZ"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#26",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#7",
         "pos": {
-          "x": 416.0,
-          "y": 150.0
+          "x": 125.0,
+          "y": 215.0
         },
-        "params": "YZ"
+        "params": "_EC"
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#8",
         "pos": {
-          "x": 391.0,
-          "y": 150.0
+          "x": 125.0,
+          "y": 230.0
         },
-        "params": 1
+        "params": "_EN"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#20",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+        "name": "TextComponent#9",
         "pos": {
-          "x": 40.0,
-          "y": 210.0
+          "x": 125.0,
+          "y": 245.0
         },
-        "params": "I9"
+        "params": "_EOVR"
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 391.0,
-          "y": 195.0
+          "x": 185.0,
+          "y": 365.0
         },
         "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 391.0,
-          "y": 165.0
+          "x": 185.0,
+          "y": 310.0
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#34",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 390.0,
-          "y": 370.0
+          "x": 370.0,
+          "y": 175.0
         },
-        "params": "SIO0"
+        "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#38",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 110.0,
-          "y": 385.0
+          "x": 375.0,
+          "y": 190.0
         },
-        "params": "QIO0"
+        "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#27",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 60.0,
-          "y": 232.5
+          "x": 380.0,
+          "y": 200.0
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#24",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 150.0,
-          "y": 80.0
+          "x": 210.0,
+          "y": 325.0
         },
-        "params": "C"
+        "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 175.0,
-          "y": 315.0
+          "x": 215.0,
+          "y": 340.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#26",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 60.0,
-          "y": 192.5
+          "x": 355.0,
+          "y": 380.0
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 140.0,
-          "y": 140.0
+          "x": 360.0,
+          "y": 390.0
         },
-        "params": "IN"
+        "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 365.0,
-          "y": 385.0
+          "x": 345.0,
+          "y": 85.0
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#38",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 385.0,
-          "y": 220.0
+          "x": 360.0,
+          "y": 110.0
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#33",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 390.0,
-          "y": 330.0
+          "x": 360.0,
+          "y": 125.0
         },
-        "params": "QIOn"
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
+        "pos": {
+          "x": 365.0,
+          "y": 160.0
+        },
+        "params": 1
       }
     ],
     "wires": [
       {
         "pin1": {
-          "compName": "GUIManualSwitch#20",
+          "compName": "GUIManualSwitch#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "_OEY"
         },
-        "name": "unnamedWire#31",
-        "path": []
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 280.0,
+            "y": 160.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "GUIManualSwitch#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "EN"
+          "compName": "Am2904",
+          "pinName": "C"
         },
-        "name": "unnamedWire#62",
-        "path": []
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 215.0,
+            "y": 90.0
+          },
+          {
+            "x": 215.0,
+            "y": 180.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "Am2904",
-          "pinName": "QIO0"
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "GUIManualSwitch#10",
           "pinName": ""
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 360.0,
-            "y": 305.0
+            "x": 205.0,
+            "y": 220.0
+          },
+          {
+            "x": 205.0,
+            "y": 255.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#18",
+          "compName": "GUIManualSwitch#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "IN"
+          "compName": "Am2904",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#27",
-        "path": []
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 240.0
+          },
+          {
+            "x": 200.0,
+            "y": 215.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#6",
-          "pinName": "EN"
+          "compName": "Am2904",
+          "pinName": "I"
         },
-        "name": "unnamedWire#64",
-        "path": []
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 190.0
+          },
+          {
+            "x": 105.0,
+            "y": 265.0
+          },
+          {
+            "x": 210.0,
+            "y": 265.0
+          },
+          {
+            "x": 210.0,
+            "y": 235.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#3",
+          "compName": "GUIManualSwitch#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
+          "compName": "Am2904",
+          "pinName": "Cx"
         },
-        "name": "unnamedWire#42",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 295.0
+          },
+          {
+            "x": 200.0,
+            "y": 285.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "YOVR"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#1",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "EN"
+          "compName": "Am2904",
+          "pinName": "YN"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 200.0,
-            "y": 310.0
-          },
-          {
-            "x": 200.0,
-            "y": 335.0
+            "x": 375.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "OUT"
+          "compName": "GUIBitDisplay#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "YZ"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "OUT"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#17",
         "path": [
           {
             "x": 365.0,
-            "y": 100.0
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "Am2904",
-          "pinName": "_CEmu"
+          "pinName": "CT"
         },
         "pin2": {
-          "compName": "GUIManualSwitch#8",
+          "compName": "GUIBitDisplay#4",
           "pinName": ""
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 185.0,
-            "y": 205.0
+            "x": 345.0,
+            "y": 235.0
           },
           {
-            "x": 185.0,
-            "y": 195.0
+            "x": 345.0,
+            "y": 250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "C0"
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "YN"
+          "compName": "GUIBitDisplay#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 375.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#19",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "IOVR"
+          "compName": "GUIManualSwitch#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#6",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "IZ"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 195.0,
-            "y": 200.0
+            "x": 210.0,
+            "y": 120.0
           },
           {
-            "x": 195.0,
-            "y": 165.0
+            "x": 210.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "SIOn"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#6",
-          "pinName": "OUT"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 375.0,
-            "y": 130.0
+            "x": 210.0,
+            "y": 295.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#36",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#38",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
           "compName": "Am2904",
-          "pinName": "_OECT"
+          "pinName": "QIOn"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#22",
         "path": [
           {
-            "x": 410.0,
-            "y": 230.0
-          },
-          {
-            "x": 410.0,
-            "y": 215.0
-          },
-          {
-            "x": 345.0,
-            "y": 215.0
-          },
-          {
-            "x": 345.0,
-            "y": 225.0
+            "x": 215.0,
+            "y": 305.0
           }
         ]
       },
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#19",
+          "compName": "GUIManualSwitch#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
+        },
+        "name": "unnamedWire#24",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#16",
           "pinName": ""
         },
-        "name": "unnamedWire#28",
+        "pin2": {
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "IN"
+        },
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I8"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "GUIManualSwitch#28",
+          "compName": "GUIManualSwitch#17",
           "pinName": ""
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#26",
+          "compName": "GUIManualSwitch#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I7"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#15",
+          "compName": "GUIManualSwitch#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIBitDisplay#3",
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "EN"
+        },
+        "name": "unnamedWire#29",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "IC"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#4",
           "pinName": ""
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 380.0,
-            "y": 205.0
+            "x": 205.0,
+            "y": 190.0
+          },
+          {
+            "x": 205.0,
+            "y": 135.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#5",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "IN"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#30",
         "path": [
           {
             "x": 200.0,
-            "y": 150.0
+            "y": 365.0
           },
           {
             "x": 200.0,
-            "y": 195.0
+            "y": 390.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#35",
+          "compName": "GUIManualSwitch#20",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#6",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#31",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I12"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "_OEY"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 280.0,
-            "y": 160.0
+            "x": 200.0,
+            "y": 310.0
+          },
+          {
+            "x": 200.0,
+            "y": 335.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#7",
-          "pinName": "IN"
-        },
-        "pin2": {
-          "compName": "GUIManualSwitch#33",
-          "pinName": ""
-        },
-        "name": "unnamedWire#55",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIManualSwitch#14",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "Cx"
+          "compName": "GUIBitDisplay#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#34",
         "path": [
           {
-            "x": 200.0,
-            "y": 295.0
+            "x": 210.0,
+            "y": 375.0
           },
           {
-            "x": 200.0,
-            "y": 285.0
+            "x": 345.0,
+            "y": 375.0
+          },
+          {
+            "x": 345.0,
+            "y": 325.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "_SE"
+          "compName": "GUIBitDisplay#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#37",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#35",
         "path": [
           {
-            "x": 215.0,
-            "y": 260.0
+            "x": 350.0,
+            "y": 340.0
+          },
+          {
+            "x": 350.0,
+            "y": 380.0
           },
           {
             "x": 215.0,
-            "y": 280.0
+            "y": 380.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#7",
-          "pinName": "EN"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#36",
         "path": [
           {
-            "x": 360.0,
-            "y": 140.0
+            "x": 210.0,
+            "y": 380.0
+          },
+          {
+            "x": 210.0,
+            "y": 385.0
+          },
+          {
+            "x": 355.0,
+            "y": 385.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#17",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "OUT"
         },
-        "name": "unnamedWire#26",
-        "path": []
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 390.0
+          },
+          {
+            "x": 210.0,
+            "y": 395.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#23",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I5"
+          "compName": "GUIBitDisplay#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#50",
-        "path": []
+        "name": "unnamedWire#38",
+        "path": [
+          {
+            "x": 360.0,
+            "y": 395.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I6"
+          "compName": "GUIBitDisplay#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#25",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "_EOVR"
+          "compName": "GUIManualSwitch#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#10",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#4",
         "path": [
           {
-            "x": 205.0,
-            "y": 220.0
+            "x": 200.0,
+            "y": 150.0
           },
           {
-            "x": 205.0,
-            "y": 255.0
+            "x": 200.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "SIOn"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "SIO0"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 210.0,
+            "x": 355.0,
             "y": 295.0
           }
         ]
       {
         "pin1": {
           "compName": "Am2904",
-          "pinName": "YC"
+          "pinName": "QIO0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 370.0,
-            "y": 190.0
+            "x": 360.0,
+            "y": 305.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIBitDisplay#8",
+          "compName": "GUIManualSwitch#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#35",
-        "path": [
-          {
-            "x": 350.0,
-            "y": 340.0
-          },
-          {
-            "x": 350.0,
-            "y": 380.0
-          },
-          {
-            "x": 215.0,
-            "y": 380.0
-          }
-        ]
+        "name": "unnamedWire#42",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#1",
+          "compName": "GUIManualSwitch#31",
           "pinName": ""
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "C"
+          "compName": "GUIMerger#0",
+          "pinName": "I12"
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 215.0,
-            "y": 90.0
-          },
-          {
-            "x": 215.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#43",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I11"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
+          "compName": "GUIManualSwitch#27",
+          "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#22",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I10"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUIManualSwitch#29",
+          "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#45",
         "path": []
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "YOVR"
+          "compName": "GUIManualSwitch#30",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I9"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "C0"
+          "compName": "GUIMerger#0",
+          "pinName": "I8"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#5",
+          "compName": "GUIManualSwitch#28",
           "pinName": ""
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#30",
+          "compName": "GUIManualSwitch#26",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIMerger#0",
-          "pinName": "I9"
+          "pinName": "I7"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#7",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I6"
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "_CEM"
+          "compName": "GUIManualSwitch#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 190.0,
-            "y": 180.0
-          },
-          {
-            "x": 190.0,
-            "y": 205.0
-          }
-        ]
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
           "compName": "Am2904",
-          "pinName": "IC"
+          "pinName": "IOVR"
         },
         "pin2": {
-          "compName": "GUIManualSwitch#4",
+          "compName": "GUIManualSwitch#6",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 205.0,
-            "y": 190.0
+            "x": 195.0,
+            "y": 200.0
           },
           {
-            "x": 205.0,
-            "y": 135.0
+            "x": 195.0,
+            "y": 165.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "GUIManualSwitch#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "EN"
+          "compName": "GUIMerger#0",
+          "pinName": "I5"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "YZ"
+          "compName": "GUIMerger#0",
+          "pinName": "I4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "GUIManualSwitch#24",
           "pinName": ""
         },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 365.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#51",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "GUIManualSwitch#22",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "EN"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#30",
-        "path": [
-          {
-            "x": 200.0,
-            "y": 365.0
-          },
-          {
-            "x": 200.0,
-            "y": 390.0
-          }
-        ]
+        "name": "unnamedWire#52",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#2",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "IZ"
+          "compName": "GUIManualSwitch#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 120.0
-          },
-          {
-            "x": 210.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#53",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "GUIManualSwitch#13",
           "pinName": ""
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#54",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "OUT"
+          "compName": "GUITriStateBuffer#7",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "GUIManualSwitch#33",
           "pinName": ""
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 380.0
-          },
-          {
-            "x": 210.0,
-            "y": 385.0
-          },
-          {
-            "x": 355.0,
-            "y": 385.0
-          }
-        ]
+        "name": "unnamedWire#55",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#16",
+          "compName": "GUIManualSwitch#35",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
+          "compName": "GUITriStateBuffer#6",
           "pinName": "IN"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "OUT"
+          "compName": "GUIManualSwitch#32",
+          "pinName": ""
         },
-        "name": "unnamedWire#69",
-        "path": [
-          {
-            "x": 370.0,
-            "y": 115.0
-          }
-        ]
+        "name": "unnamedWire#57",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "GUIManualSwitch#34",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIBitDisplay#7",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#38",
-        "path": [
-          {
-            "x": 360.0,
-            "y": 395.0
-          }
-        ]
+        "name": "unnamedWire#58",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "SIO0"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#40",
-        "path": [
-          {
-            "x": 355.0,
-            "y": 295.0
-          }
-        ]
+        "name": "unnamedWire#59",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#9",
+          "compName": "GUIManualSwitch#7",
           "pinName": ""
         },
         "pin2": {
           "compName": "Am2904",
-          "pinName": "_EN"
+          "pinName": "_CEM"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 200.0,
-            "y": 240.0
+            "x": 190.0,
+            "y": 180.0
           },
           {
-            "x": 200.0,
-            "y": 215.0
+            "x": 190.0,
+            "y": 205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I10"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#29",
+          "compName": "GUIManualSwitch#36",
           "pinName": ""
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#61",
+        "path": [
+          {
+            "x": 360.0,
+            "y": 85.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#12",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#62",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I4"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#24",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "QIOn"
+          "compName": "GUITriStateBuffer#6",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#22",
-        "path": [
-          {
-            "x": 215.0,
-            "y": 305.0
-          }
-        ]
+        "name": "unnamedWire#64",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#7",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#9",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#65",
         "path": [
           {
-            "x": 210.0,
-            "y": 375.0
-          },
-          {
-            "x": 345.0,
-            "y": 375.0
-          },
-          {
-            "x": 345.0,
-            "y": 325.0
+            "x": 360.0,
+            "y": 140.0
           }
         ]
       },
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
-        },
-        "pin2": {
-          "compName": "GUIManualSwitch#13",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#54",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
-        },
         "pin2": {
-          "compName": "GUIManualSwitch#21",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "OUT"
         },
-        "name": "unnamedWire#53",
-        "path": []
+        "name": "unnamedWire#67",
+        "path": [
+          {
+            "x": 365.0,
+            "y": 100.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
+          "compName": "Am2904",
+          "pinName": "YC"
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "I"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#68",
         "path": [
           {
-            "x": 105.0,
+            "x": 370.0,
             "y": 190.0
-          },
-          {
-            "x": 105.0,
-            "y": 265.0
-          },
-          {
-            "x": 210.0,
-            "y": 265.0
-          },
-          {
-            "x": 210.0,
-            "y": 235.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#32",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "OUT"
         },
-        "name": "unnamedWire#57",
-        "path": []
+        "name": "unnamedWire#69",
+        "path": [
+          {
+            "x": 370.0,
+            "y": 115.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "_CEmu"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "EN"
+          "compName": "GUIManualSwitch#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#29",
-        "path": []
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 205.0
+          },
+          {
+            "x": 185.0,
+            "y": 195.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#7",
+          "compName": "GUITriStateBuffer#6",
           "pinName": "OUT"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#70",
         "path": [
           {
-            "x": 380.0,
-            "y": 145.0
+            "x": 375.0,
+            "y": 130.0
           }
         ]
       },
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "_EC"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#11",
+          "compName": "GUIBitDisplay#3",
           "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#72",
         "path": [
           {
-            "x": 195.0,
-            "y": 215.0
-          },
-          {
-            "x": 195.0,
-            "y": 225.0
+            "x": 380.0,
+            "y": 205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#2",
+          "compName": "GUITriStateBuffer#7",
           "pinName": "OUT"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#73",
         "path": [
           {
-            "x": 210.0,
-            "y": 390.0
-          },
-          {
-            "x": 210.0,
-            "y": 395.0
+            "x": 380.0,
+            "y": 145.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "Am2904",
-          "pinName": "CT"
+          "pinName": "_SE"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#4",
+          "compName": "GUIManualSwitch#37",
           "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#74",
         "path": [
           {
-            "x": 345.0,
-            "y": 235.0
+            "x": 215.0,
+            "y": 260.0
           },
           {
-            "x": 345.0,
-            "y": 250.0
+            "x": 215.0,
+            "y": 280.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "GUIManualSwitch#38",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "_OECT"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#75",
         "path": [
           {
-            "x": 360.0,
-            "y": 85.0
+            "x": 410.0,
+            "y": 230.0
+          },
+          {
+            "x": 410.0,
+            "y": 215.0
+          },
+          {
+            "x": 345.0,
+            "y": 215.0
+          },
+          {
+            "x": 345.0,
+            "y": 225.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIBitDisplay#6",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "_EZ"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "GUIManualSwitch#12",
           "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I11"
+          "compName": "Am2904",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "GUIManualSwitch#27",
-          "pinName": ""
-        },
-        "name": "unnamedWire#44",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIManualSwitch#34",
+          "compName": "GUIManualSwitch#11",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "IN"
-        },
-        "name": "unnamedWire#58",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 215.0
+          },
+          {
+            "x": 195.0,
+            "y": 225.0
+          }
+        ]
       }
     ],
     "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "default",
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default",
-  "version": "0.1.4"
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.DefaultSymbolRenderer",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 6f679a9..4dd03a9 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Q",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "_Q",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "_R",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,23 +35,15 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "_S",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 40.0,
-          "y": 12.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 10.0,
@@ -58,25 +52,46 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 64.0,
-          "y": 36.5
+          "x": 40.0,
+          "y": 12.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 34.0,
           "y": 16.5
         },
         "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 64.0,
+          "y": 36.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_Q"
+        },
+        "name": "_q",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#0",
@@ -108,14 +123,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_S"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Q"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "_q",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
@@ -141,37 +156,29 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_S"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 65.0,
-            "y": 42.5
-          },
-          {
-            "x": 5.0,
-            "y": 42.5
-          },
-          {
-            "x": 5.0,
             "y": 22.5
           }
         ]
@@ -190,36 +197,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 65.0,
+            "y": 42.5
+          },
+          {
+            "x": 5.0,
+            "y": 42.5
+          },
+          {
+            "x": 5.0,
             "y": 22.5
           }
         ]
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#2",
-        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "_rsLatch",
     "centerTextHeight": 5.0,
@@ -227,13 +231,13 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {
       "q": {
-        "id": "wireForcing",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.WireForcingAtomicHighLevelStateHandler",
         "params": {
           "wiresToForce": [
             "q"
@@ -244,5 +248,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index ef57797..beeec77 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,32 +26,33 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 50.0,
+          "x": 20.0,
           "y": 15.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 20.0,
+          "x": 50.0,
           "y": 15.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 44.0,
@@ -59,39 +61,40 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B"
+          "pinName": "A"
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#1"
+        "name": "unnamedWire#0"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A"
+          "pinName": "B"
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#0"
+        "name": "unnamedWire#1"
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#5"
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
@@ -100,13 +103,13 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 45.0,
-            "y": 30.0
+            "y": 20.0
           }
         ]
       },
@@ -117,31 +120,31 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 45.0,
-            "y": 20.0
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#2",
-        "path": []
+        "name": "unnamedWire#5"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIand",
     "centerTextHeight": 5.0,
@@ -149,5 +152,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 87b7394..acebe97 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 50.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "A2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,23 +26,26 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "A3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 35.0
       },
-      "name": "B",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 45.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "B",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +53,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -57,7 +62,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,7 +71,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -73,39 +80,13 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 24.0,
-          "y": 71.5
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 24.0,
-          "y": 46.5
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 24.0,
-          "y": 96.5
-        },
-        "params": 1
-      },
+    "components": [
       {
         "id": "GUIand",
         "name": "GUIand#0",
@@ -116,18 +97,18 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIand",
-        "name": "GUIand#2",
+        "name": "GUIand#1",
         "pos": {
           "x": 30.0,
-          "y": 57.5
+          "y": 32.5
         }
       },
       {
         "id": "GUIand",
-        "name": "GUIand#1",
+        "name": "GUIand#2",
         "pos": {
           "x": 30.0,
-          "y": 32.5
+          "y": 57.5
         }
       },
       {
@@ -137,31 +118,58 @@ mograsim version: 0.1.3
           "x": 30.0,
           "y": 82.5
         }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 46.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 24.0,
+          "y": 71.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 24.0,
+          "y": 96.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIand#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIand#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "GUIand#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
@@ -170,101 +178,89 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#1",
+          "compName": "GUIand#0",
           "pinName": "B"
         },
-        "name": "unnamedWire#9",
-        "path": []
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 22.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIand#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#2",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIand#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
+          "compName": "GUIand#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#1",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUIand#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A4"
         },
         "pin2": {
           "compName": "GUIand#3",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 22.5
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
@@ -284,55 +280,68 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIand#3",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIand#2",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIand41",
     "centerTextHeight": 5.0,
@@ -340,5 +349,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index bd61b9d..8e97325 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
@@ -6,74 +5,83 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 45.0
       },
-      "name": "B",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "C1",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 65.0
       },
-      "name": "C2",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 75.0
       },
-      "name": "C3",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 85.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "B",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "C4",
-      "logicWidth": 1
+      "name": "C1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "C2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 25.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "C3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 35.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "C4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -81,7 +89,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -89,7 +98,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -97,7 +107,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -105,20 +116,13 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "GUIor_4",
-        "name": "GUIor_4#0",
-        "pos": {
-          "x": 35.0,
-          "y": 37.5
-        }
-      },
+    "components": [
       {
         "id": "GUIand41",
         "name": "GUIand41#0",
@@ -126,206 +130,272 @@ mograsim version: 0.1.3
           "x": 15.0,
           "y": 137.5
         }
+      },
+      {
+        "id": "GUIor_4",
+        "name": "GUIor_4#0",
+        "pos": {
+          "x": 35.0,
+          "y": 37.5
+        }
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIor_4#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "GUIand41#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 80.0,
-            "y": 52.5
+            "x": 10.0,
+            "y": 112.5
           },
           {
-            "x": 80.0,
-            "y": 37.5
+            "x": 10.0,
+            "y": 142.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor_4#0",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUIand41#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 75.0,
-            "y": 42.5
+            "x": 5.0,
+            "y": 137.5
           },
           {
-            "x": 75.0,
-            "y": 12.5
+            "x": 5.0,
+            "y": 152.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor_4#0",
-          "pinName": "Y4"
+          "compName": "GUIand41#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIor_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 80.0,
-            "y": 72.5
+            "x": 65.0,
+            "y": 152.5
           },
           {
-            "x": 80.0,
-            "y": 87.5
+            "x": 65.0,
+            "y": 125.0
+          },
+          {
+            "x": 25.0,
+            "y": 125.0
+          },
+          {
+            "x": 25.0,
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor_4#0",
+          "compName": "GUIand41#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "GUIor_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#15",
-        "path": []
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 162.5
+          },
+          {
+            "x": 60.0,
+            "y": 130.0
+          },
+          {
+            "x": 20.0,
+            "y": 130.0
+          },
+          {
+            "x": 20.0,
+            "y": 102.5
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "GUIand41#0",
-          "pinName": "Y1"
+          "pinName": "Y4"
         },
         "pin2": {
           "compName": "GUIor_4#0",
-          "pinName": "B1"
+          "pinName": "B4"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 70.0,
-            "y": 142.5
+            "x": 55.0,
+            "y": 172.5
           },
           {
-            "x": 70.0,
-            "y": 120.0
+            "x": 55.0,
+            "y": 135.0
           },
           {
-            "x": 30.0,
-            "y": 120.0
+            "x": 15.0,
+            "y": 135.0
           },
           {
-            "x": 30.0,
-            "y": 82.5
+            "x": 15.0,
+            "y": 112.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C4"
+          "compName": "GUIor_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIor_4#0",
-          "pinName": "A4"
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 5.0,
-            "y": 87.5
+            "x": 75.0,
+            "y": 42.5
           },
           {
-            "x": 5.0,
-            "y": 72.5
+            "x": 75.0,
+            "y": 12.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C3"
+          "compName": "GUIor_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 80.0,
+            "y": 52.5
+          },
+          {
+            "x": 80.0,
+            "y": 37.5
+          }
+        ]
+      },
+      {
+        "pin1": {
           "compName": "GUIor_4#0",
-          "pinName": "A3"
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#7",
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C2"
+          "compName": "GUIor_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIor_4#0",
-          "pinName": "A2"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 5.0,
-            "y": 37.5
+            "x": 80.0,
+            "y": 72.5
           },
           {
-            "x": 5.0,
-            "y": 52.5
+            "x": 80.0,
+            "y": 87.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "A3"
         },
         "pin2": {
           "compName": "GUIand41#0",
-          "pinName": "A2"
+          "pinName": "A3"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#2",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 5.0,
-            "y": 137.5
+            "y": 187.5
           },
           {
             "x": 5.0,
-            "y": 152.5
+            "y": 172.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "B"
         },
         "pin2": {
           "compName": "GUIand41#0",
-          "pinName": "A1"
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 10.0,
-            "y": 112.5
+            "y": 212.5
           },
           {
             "x": 10.0,
-            "y": 142.5
+            "y": 182.5
           }
         ]
       },
@@ -352,148 +422,91 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "C2"
         },
         "pin2": {
           "compName": "GUIor_4#0",
-          "pinName": "B2"
+          "pinName": "A2"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 65.0,
-            "y": 152.5
-          },
-          {
-            "x": 65.0,
-            "y": 125.0
-          },
-          {
-            "x": 25.0,
-            "y": 125.0
+            "x": 5.0,
+            "y": 37.5
           },
           {
-            "x": 25.0,
-            "y": 92.5
+            "x": 5.0,
+            "y": 52.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B"
+          "pinName": "C3"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "B"
+          "compName": "GUIor_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#4",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 212.5
-          },
-          {
-            "x": 10.0,
-            "y": 182.5
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
+          "pinName": "C4"
         },
         "pin2": {
-          "compName": "GUIand41#0",
+          "compName": "GUIor_4#0",
           "pinName": "A4"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 5.0,
-            "y": 187.5
+            "y": 87.5
           },
           {
             "x": 5.0,
-            "y": 172.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compName": "GUIor_4#0",
-          "pinName": "B4"
-        },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 55.0,
-            "y": 172.5
-          },
-          {
-            "x": 55.0,
-            "y": 135.0
-          },
-          {
-            "x": 15.0,
-            "y": 135.0
-          },
-          {
-            "x": 15.0,
-            "y": 112.5
+            "y": 72.5
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#2",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUIand41#0",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
         "pin2": {
           "compName": "GUIor_4#0",
-          "pinName": "B3"
+          "pinName": "B1"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 60.0,
-            "y": 162.5
+            "x": 70.0,
+            "y": 142.5
           },
           {
-            "x": 60.0,
-            "y": 130.0
+            "x": 70.0,
+            "y": 120.0
           },
           {
-            "x": 20.0,
-            "y": 130.0
+            "x": 30.0,
+            "y": 120.0
           },
           {
-            "x": 20.0,
-            "y": 102.5
+            "x": 30.0,
+            "y": 82.5
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIandor414",
     "centerTextHeight": 5.0,
@@ -501,5 +514,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 3523e99..9b2ea44 100644 (file)
@@ -1,31 +1,33 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Y00",
-      "logicWidth": 1
+      "name": "S0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "Y11",
-      "logicWidth": 1
+      "name": "S1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 25.0
+        "y": 5.0
       },
-      "name": "Y10",
-      "logicWidth": 1
+      "name": "Y00",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -33,43 +35,46 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y01",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "S0",
-      "logicWidth": 1
+      "name": "Y10",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "S1",
-      "logicWidth": 1
+      "name": "Y11",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 10.0,
-          "y": 27.5
+          "y": 2.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 10.0,
-          "y": 2.5
+          "y": 27.5
         },
         "params": 1
       },
@@ -83,18 +88,18 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIand",
-        "name": "GUIand#2",
+        "name": "GUIand#1",
         "pos": {
           "x": 40.0,
-          "y": 52.5
+          "y": 27.5
         }
       },
       {
         "id": "GUIand",
-        "name": "GUIand#1",
+        "name": "GUIand#2",
         "pos": {
           "x": 40.0,
-          "y": 27.5
+          "y": 52.5
         }
       },
       {
@@ -106,7 +111,16 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 6.5,
+          "y": 11.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#1",
         "pos": {
           "x": 6.5,
@@ -115,16 +129,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 6.5,
-          "y": 11.5
+          "x": 36.5,
+          "y": 61.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#3",
         "pos": {
           "x": 4.0,
@@ -133,16 +147,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 36.5,
-          "y": 61.5
+          "x": 4.0,
+          "y": 41.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#5",
         "pos": {
           "x": 31.5,
@@ -151,48 +165,87 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 4.0,
-          "y": 41.5
+          "x": 31.5,
+          "y": 11.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#7",
         "pos": {
           "x": 34.0,
           "y": 36.5
         },
         "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
-        "pos": {
-          "x": 31.5,
-          "y": 11.5
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
         "pin2": {
-          "compName": "GUIand#1",
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 37.5,
-            "y": 32.5
+            "x": 32.5,
+            "y": 7.5
           }
         ]
       },
@@ -215,18 +268,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#2",
+          "compName": "GUIand#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 32.5,
-            "y": 57.5
+            "x": 37.5,
+            "y": 32.5
           }
         ]
       },
@@ -249,18 +302,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#3",
+          "compName": "GUIand#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 37.5,
-            "y": 82.5
+            "x": 32.5,
+            "y": 57.5
           }
         ]
       },
@@ -278,106 +331,98 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIand#3",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 32.5,
-            "y": 92.5
+            "x": 37.5,
+            "y": 82.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIand#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#19",
         "path": [
-          {
-            "x": 5.0,
-            "y": 67.5
-          },
           {
             "x": 32.5,
-            "y": 67.5
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#2",
         "path": [
           {
             "x": 7.5,
-            "y": 62.5
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y00"
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#20"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIand#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y01"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#21"
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "GUIand#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y10"
         },
-        "name": "unnamedWire#1",
-        "path": []
+        "name": "unnamedWire#22"
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S0"
+          "compName": "GUIand#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y11"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#23"
       },
       {
         "pin1": {
@@ -385,146 +430,107 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 32.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y01"
-        },
-        "name": "unnamedWire#21"
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y00"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#20"
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 32.5
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 32.5,
-            "y": 7.5
+            "x": 7.5,
+            "y": 62.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand#3",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y11"
-        },
-        "name": "unnamedWire#23"
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 7.5,
-            "y": 7.5
+            "x": 5.0,
+            "y": 67.5
+          },
+          {
+            "x": 32.5,
+            "y": 67.5
           }
         ]
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#11",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y10"
-        },
-        "name": "unnamedWire#22"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIdemux2",
     "centerTextHeight": 5.0,
@@ -532,5 +538,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 66af673..35eba16 100644 (file)
@@ -1,44 +1,56 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Q",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 15.0
       },
-      "name": "_Q",
-      "logicWidth": 1
+      "name": "D",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 15.0
       },
-      "name": "D",
-      "logicWidth": 1
+      "name": "_Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 120.0,
+          "y": 60.0
+        },
+        "params": 1
+      },
       {
         "id": "GUI_rsLatch",
         "name": "GUI_rsLatch#0",
@@ -47,6 +59,14 @@ mograsim version: 0.1.3
           "y": 10.0
         }
       },
+      {
+        "id": "GUI_rsLatch",
+        "name": "GUI_rsLatch#1",
+        "pos": {
+          "x": 120.0,
+          "y": 30.0
+        }
+      },
       {
         "id": "GUInand3",
         "name": "GUInand3#0",
@@ -56,24 +76,16 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 120.0,
-          "y": 60.0
+          "x": 9.0,
+          "y": 24.0
         },
         "params": 1
       },
       {
-        "id": "GUI_rsLatch",
-        "name": "GUI_rsLatch#1",
-        "pos": {
-          "x": 120.0,
-          "y": 30.0
-        }
-      },
-      {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#1",
         "pos": {
           "x": 19.0,
@@ -82,169 +94,139 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 9.0,
-          "y": 24.0
+          "x": 99.0,
+          "y": 34.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#3",
         "pos": {
           "x": 99.0,
           "y": 44.0
         },
         "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 99.0,
-          "y": 34.0
-        },
-        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUI_rsLatch#1",
-          "pinName": "_Q"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Q"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#14"
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUI_rsLatch#1",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_R"
         },
-        "name": "unnamedWire#13"
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUInand3#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUI_rsLatch#1",
-          "pinName": "_S"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUInand3#0",
-          "pinName": "A"
+          "compName": "GUI_rsLatch#1",
+          "pinName": "_R"
         },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 35.0
-          },
-          {
-            "x": 30.0,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_Q"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#12",
         "path": [
           {
             "x": 100.0,
-            "y": 25.0
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUI_rsLatch#1",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUInand3#0",
-          "pinName": "C"
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#13"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUI_rsLatch#1",
+          "pinName": "_Q"
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_R"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "pinName": "_Q"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_S"
+          "compName": "GUInand3#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 20.0,
-            "y": 15.0
+            "x": 10.0,
+            "y": 55.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUInand3#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "D"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -274,65 +256,87 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_S"
         },
-        "name": "unnamedWire#3",
-        "path": []
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 15.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUInand3#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 100.0,
-            "y": 65.0
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUInand3#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 10.0,
-            "y": 55.0
+            "x": 30.0,
+            "y": 35.0
+          },
+          {
+            "x": 30.0,
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUI_rsLatch#1",
-          "pinName": "_R"
+          "pinName": "_S"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIdff",
     "centerTextHeight": 5.0,
@@ -340,18 +344,19 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {
       "q": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUI_rsLatch#1",
           "subStateID": "q"
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index d03fafe..23edb9a 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
@@ -6,87 +5,113 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 5.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "WE",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 35.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 15.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 55.0,
+          "y": 70.0
+        }
+      },
+      {
+        "id": "GUIdff",
+        "name": "GUIdff#0",
+        "pos": {
+          "x": 115.0,
+          "y": 20.0
+        }
+      },
       {
         "id": "GUIdff",
         "name": "GUIdff#1",
@@ -97,23 +122,22 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIdff",
-        "name": "GUIdff#0",
+        "name": "GUIdff#2",
         "pos": {
           "x": 115.0,
-          "y": 20.0
+          "y": 120.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIdff",
+        "name": "GUIdff#3",
         "pos": {
-          "x": 104.0,
-          "y": 74.0
-        },
-        "params": 1
+          "x": 115.0,
+          "y": 170.0
+        }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 104.0,
@@ -122,16 +146,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 169.0,
-          "y": 24.0
+          "x": 104.0,
+          "y": 74.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 104.0,
@@ -140,16 +164,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 159.0,
-          "y": 124.0
+          "x": 169.0,
+          "y": 24.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 164.0,
@@ -158,51 +182,111 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 159.0,
+          "y": 124.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#6",
         "pos": {
           "x": 154.0,
           "y": 174.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 55.0,
-          "y": 70.0
-        }
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#3",
-        "pos": {
-          "x": 115.0,
-          "y": 170.0
-        }
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIdff#0",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 100.0,
+            "y": 75.0
+          },
+          {
+            "x": 100.0,
+            "y": 35.0
+          }
+        ]
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#2",
-        "pos": {
-          "x": 115.0,
-          "y": 120.0
-        }
-      }
-    ],
-    "innerWires": [
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 175.0
+          },
+          {
+            "x": 5.0,
+            "y": 135.0
+          }
+        ]
+      },
+      {
+        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q1"
+          "pinName": "D3"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_3"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 225.0
+          },
+          {
+            "x": 10.0,
+            "y": 145.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -218,14 +302,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
@@ -242,14 +326,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIdff#2",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIdff#1",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
@@ -273,6 +357,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "GUIdff#2",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#5",
@@ -287,14 +383,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "Q"
+          "compName": "GUIdff#1",
+          "pinName": "D"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -311,24 +407,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIdff#3",
-          "pinName": "D"
+          "pinName": "Q"
         },
-        "name": "unnamedWire#23",
-        "path": [
-          {
-            "x": 95.0,
-            "y": 105.0
-          },
-          {
-            "x": 95.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
@@ -353,26 +440,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
+          "compName": "GUIdff#3",
+          "pinName": "D"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 165.0,
-            "y": 200.0
-          },
-          {
-            "x": 45.0,
-            "y": 200.0
+            "x": 95.0,
+            "y": 105.0
           },
           {
-            "x": 45.0,
-            "y": 95.0
+            "x": 95.0,
+            "y": 185.0
           }
         ]
       },
@@ -403,15 +486,28 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#27",
-        "path": []
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 165.0,
+            "y": 200.0
+          },
+          {
+            "x": 45.0,
+            "y": 200.0
+          },
+          {
+            "x": 45.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -438,6 +534,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#6",
@@ -465,88 +573,26 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "WE"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#2",
+          "compName": "GUIdff#0",
           "pinName": "C"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compName": "GUIdff#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 100.0,
-            "y": 75.0
-          },
-          {
-            "x": 100.0,
-            "y": 35.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -563,97 +609,61 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#0",
+          "compName": "GUIdff#2",
           "pinName": "C"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_3"
+          "compName": "GUIdff#3",
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 10.0,
-            "y": 225.0
-          },
-          {
-            "x": 10.0,
-            "y": 145.0
+            "x": 105.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "WE"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
-        },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 175.0
-          },
-          {
-            "x": 5.0,
-            "y": 135.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "D"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "D flip flop\n4 bit",
     "centerTextHeight": 5.0,
@@ -661,27 +671,27 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {
       "q1": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#0",
           "subStateID": "q"
         }
       },
       "q2": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#1",
           "subStateID": "q"
         }
       },
       "q": {
-        "id": "bitVectorSplitting",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler",
         "params": {
           "vectorPartTargets": [
             "q1",
@@ -698,19 +708,20 @@ mograsim version: 0.1.3
         }
       },
       "q3": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#2",
           "subStateID": "q"
         }
       },
       "q4": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#3",
           "subStateID": "q"
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 3108cc5..89d09fb 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
@@ -6,87 +5,113 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 5.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "_WE",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 35.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 15.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "_WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 55.0,
+          "y": 70.0
+        }
+      },
+      {
+        "id": "GUIdff",
+        "name": "GUIdff#0",
+        "pos": {
+          "x": 115.0,
+          "y": 20.0
+        }
+      },
       {
         "id": "GUIdff",
         "name": "GUIdff#1",
@@ -97,23 +122,22 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIdff",
-        "name": "GUIdff#0",
+        "name": "GUIdff#2",
         "pos": {
           "x": 115.0,
-          "y": 20.0
+          "y": 120.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIdff",
+        "name": "GUIdff#3",
         "pos": {
-          "x": 104.0,
-          "y": 74.0
-        },
-        "params": 1
+          "x": 115.0,
+          "y": 170.0
+        }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 104.0,
@@ -122,16 +146,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 169.0,
-          "y": 24.0
+          "x": 104.0,
+          "y": 74.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 104.0,
@@ -140,16 +164,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 159.0,
-          "y": 124.0
+          "x": 169.0,
+          "y": 24.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 164.0,
@@ -158,51 +182,120 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 159.0,
+          "y": 124.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#6",
         "pos": {
           "x": 154.0,
           "y": 174.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 55.0,
-          "y": 70.0
-        }
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#3",
-        "pos": {
-          "x": 115.0,
-          "y": 170.0
-        }
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIdff#0",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 100.0,
+            "y": 75.0
+          },
+          {
+            "x": 100.0,
+            "y": 35.0
+          }
+        ]
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#2",
-        "pos": {
-          "x": 115.0,
-          "y": 120.0
-        }
-      }
-    ],
-    "innerWires": [
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 125.0
+          },
+          {
+            "x": 10.0,
+            "y": 85.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 175.0
+          },
+          {
+            "x": 15.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q1"
+          "pinName": "D3"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_3"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 225.0
+          },
+          {
+            "x": 20.0,
+            "y": 105.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -218,14 +311,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
@@ -242,14 +335,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIdff#2",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIdff#1",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
@@ -273,6 +366,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "GUIdff#2",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#5",
@@ -287,14 +392,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "Q"
+          "compName": "GUIdff#1",
+          "pinName": "D"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -311,24 +416,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIdff#3",
-          "pinName": "D"
+          "pinName": "Q"
         },
-        "name": "unnamedWire#23",
-        "path": [
-          {
-            "x": 95.0,
-            "y": 105.0
-          },
-          {
-            "x": 95.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
@@ -353,26 +449,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
+          "compName": "GUIdff#3",
+          "pinName": "D"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 165.0,
-            "y": 210.0
-          },
-          {
-            "x": 45.0,
-            "y": 210.0
+            "x": 95.0,
+            "y": 105.0
           },
           {
-            "x": 45.0,
-            "y": 135.0
+            "x": 95.0,
+            "y": 185.0
           }
         ]
       },
@@ -403,15 +495,28 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#27",
-        "path": []
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 165.0,
+            "y": 210.0
+          },
+          {
+            "x": 45.0,
+            "y": 210.0
+          },
+          {
+            "x": 45.0,
+            "y": 135.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -438,6 +543,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#6",
@@ -465,88 +582,26 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_WE"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#2",
+          "compName": "GUIdff#0",
           "pinName": "C"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compName": "GUIdff#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 100.0,
-            "y": 75.0
-          },
-          {
-            "x": 100.0,
-            "y": 35.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -563,106 +618,61 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 125.0
-          },
-          {
-            "x": 10.0,
-            "y": 85.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#0",
+          "compName": "GUIdff#2",
           "pinName": "C"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_3"
+          "compName": "GUIdff#3",
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 20.0,
-            "y": 225.0
-          },
-          {
-            "x": 20.0,
-            "y": 105.0
+            "x": 105.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "_WE"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
-        },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 175.0
-          },
-          {
-            "x": 15.0,
-            "y": 95.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "D"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "D flip flop\n4 bit",
     "centerTextHeight": 5.0,
@@ -670,27 +680,27 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {
       "q1": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#0",
           "subStateID": "q"
         }
       },
       "q2": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#1",
           "subStateID": "q"
         }
       },
       "q": {
-        "id": "bitVectorSplitting",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler",
         "params": {
           "vectorPartTargets": [
             "q1",
@@ -707,19 +717,20 @@ mograsim version: 0.1.3
         }
       },
       "q3": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#2",
           "subStateID": "q"
         }
       },
       "q4": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#3",
           "subStateID": "q"
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 034ab79..9e01a2c 100644 (file)
@@ -1,46 +1,58 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Q",
-      "logicWidth": 1
+      "name": "D",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 15.0
       },
-      "name": "_Q",
-      "logicWidth": 1
+      "name": "E",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "D",
-      "logicWidth": 1
+      "name": "Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 15.0
       },
-      "name": "E",
-      "logicWidth": 1
+      "name": "_Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#1",
         "pos": {
           "x": 15.0,
@@ -57,113 +69,94 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 10.0,
-          "y": 2.5
+          "x": 4.0,
+          "y": 36.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#1",
         "pos": {
           "x": 34.0,
           "y": 11.5
         },
         "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 4.0,
-          "y": 36.5
-        },
-        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_Q"
+          "compName": "_submodelinterface",
+          "pinName": "D"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Q"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#0"
       },
       {
         "pin1": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "E"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_R"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 40.0,
-            "y": 37.5
-          },
-          {
-            "x": 40.0,
-            "y": 22.5
+            "x": 5.0,
+            "y": 17.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_S"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 42.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "E"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#4",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#0"
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#1",
@@ -191,53 +184,64 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "pin2": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_S"
+        },
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_R"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 5.0,
-            "y": 42.5
+            "x": 40.0,
+            "y": 37.5
+          },
+          {
+            "x": 40.0,
+            "y": 22.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUI_rsLatch#0",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 17.5
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_Q"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_Q"
+        },
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIdlatch",
     "centerTextHeight": 5.0,
@@ -245,18 +249,19 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {
       "q": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUI_rsLatch#0",
           "subStateID": "q"
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index d798d7f..7b72993 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 50.0,
@@ -6,105 +5,95 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 45.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 15.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 25.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 35.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 14.0,
-          "y": 71.5
-        },
-        "params": 1
-      },
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 14.0,
-          "y": 46.5
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUIdlatch",
+        "name": "GUIdlatch#0",
         "pos": {
-          "x": 14.0,
-          "y": 96.5
-        },
-        "params": 1
+          "x": 30.0,
+          "y": 7.5
+        }
       },
       {
         "id": "GUIdlatch",
@@ -116,10 +105,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIdlatch",
-        "name": "GUIdlatch#0",
+        "name": "GUIdlatch#2",
         "pos": {
           "x": 30.0,
-          "y": 7.5
+          "y": 57.5
         }
       },
       {
@@ -131,208 +120,228 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIdlatch",
-        "name": "GUIdlatch#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 30.0,
-          "y": 57.5
-        }
+          "x": 14.0,
+          "y": 46.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 14.0,
+          "y": 71.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 14.0,
+          "y": 96.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIdlatch#3",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q4"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 112.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch#2",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q3"
+          "compName": "GUIdlatch#3",
+          "pinName": "E"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D3"
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "GUIdlatch#2",
+          "compName": "GUIdlatch#3",
           "pinName": "D"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D2"
+          "compName": "GUIdlatch#0",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#1",
-          "pinName": "D"
+          "compName": "_submodelinterface",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
+          "compName": "GUIdlatch#1",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#0",
-          "pinName": "D"
+          "compName": "_submodelinterface",
+          "pinName": "Q2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdlatch#2",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#0",
-          "pinName": "E"
+          "compName": "_submodelinterface",
+          "pinName": "Q3"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 22.5
-          }
-        ]
+        "name": "unnamedWire#13",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIdlatch#3",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#3",
-          "pinName": "E"
+          "compName": "_submodelinterface",
+          "pinName": "Q4"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 112.5
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch#1",
+          "compName": "GUIdlatch#2",
           "pinName": "E"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch#3",
-          "pinName": "D"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdlatch#1",
+          "pinName": "E"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch#2",
+          "compName": "GUIdlatch#0",
           "pinName": "E"
         },
-        "name": "unnamedWire#3",
-        "path": []
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 22.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch#1",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q2"
+          "compName": "GUIdlatch#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIdlatch#1",
+          "pinName": "D"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch#0",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q1"
+          "compName": "GUIdlatch#2",
+          "pinName": "D"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIdlatch4",
     "centerTextHeight": 5.0,
@@ -340,27 +349,27 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {
       "q1": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch#0",
           "subStateID": "q"
         }
       },
       "q2": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch#1",
           "subStateID": "q"
         }
       },
       "q": {
-        "id": "bitVectorSplitting",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler",
         "params": {
           "vectorPartTargets": [
             "q1",
@@ -377,19 +386,20 @@ mograsim version: 0.1.3
         }
       },
       "q3": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch#2",
           "subStateID": "q"
         }
       },
       "q4": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch#3",
           "subStateID": "q"
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index d464701..c91f9be 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 30.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "C",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +35,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -41,14 +44,15 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Z",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 57.5,
@@ -73,46 +77,18 @@ mograsim version: 0.1.3
         }
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Z"
-        },
-        "name": "unnamedWire#7"
-      },
-      {
-        "pin1": {
-          "compName": "GUIhalfadder#1",
-          "pinName": "_Z"
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUIhalfadder#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 82.5,
-            "y": 22.5
-          },
-          {
-            "x": 82.5,
-            "y": 35.0
-          },
-          {
-            "x": 52.5,
-            "y": 35.0
-          },
-          {
-            "x": 52.5,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
@@ -128,26 +104,24 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A"
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "GUIhalfadder#1",
-          "pinName": "A"
+          "compName": "GUIhalfadder#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#2"
       },
       {
         "pin1": {
-          "compName": "GUIhalfadder#1",
+          "compName": "GUIhalfadder#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "GUIhalfadder#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#3"
       },
       {
         "pin1": {
@@ -163,29 +137,60 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIhalfadder#0",
+          "compName": "GUIhalfadder#1",
           "pinName": "Y"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUIhalfadder#1",
-          "pinName": "B"
+          "pinName": "_Z"
         },
-        "name": "unnamedWire#3"
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 82.5,
+            "y": 22.5
+          },
+          {
+            "x": 82.5,
+            "y": 35.0
+          },
+          {
+            "x": 52.5,
+            "y": 35.0
+          },
+          {
+            "x": 52.5,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIhalfadder#0",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Z"
         },
-        "name": "unnamedWire#2"
+        "name": "unnamedWire#7"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIfulladder",
     "centerTextHeight": 5.0,
@@ -193,5 +198,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index d0a0fa2..5475ded 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -33,14 +35,24 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "_Z",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#1",
         "pos": {
           "x": 40.0,
@@ -49,16 +61,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 10.0,
-          "y": 15.0
+          "x": 40.0,
+          "y": 27.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#3",
         "pos": {
           "x": 65.0,
@@ -67,34 +79,25 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 36.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
-        "pos": {
-          "x": 40.0,
-          "y": 27.5
+          "y": 11.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 36.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 34.0,
@@ -103,72 +106,88 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "_submodelinterface",
+          "pinName": "A"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 35.0,
-            "y": 32.5
+            "x": 5.0,
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 35.0,
-            "y": 17.5
+            "x": 62.5,
+            "y": 12.5
+          },
+          {
+            "x": 62.5,
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Z"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 80.0,
-            "y": 25.0
+            "x": 62.5,
+            "y": 37.5
           },
           {
-            "x": 80.0,
-            "y": 37.5
+            "x": 62.5,
+            "y": 17.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
@@ -177,27 +196,27 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#2",
         "path": [
           {
             "x": 5.0,
-            "y": 7.5
+            "y": 20.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A"
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -206,35 +225,14 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 5.0,
-            "y": 30.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 62.5,
-            "y": 12.5
-          },
-          {
-            "x": 62.5,
-            "y": 7.5
+            "y": 42.5
           }
         ]
       },
@@ -244,82 +242,88 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 5.0,
-            "y": 42.5
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y"
+          "pinName": "_Z"
         },
-        "name": "unnamedWire#12",
-        "path": []
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 80.0,
+            "y": 25.0
+          },
+          {
+            "x": 80.0,
+            "y": 37.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 5.0,
-            "y": 20.0
+            "x": 35.0,
+            "y": 17.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 62.5,
-            "y": 37.5
-          },
-          {
-            "x": 62.5,
-            "y": 17.5
+            "x": 35.0,
+            "y": 32.5
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIhalfadder",
     "centerTextHeight": 5.0,
@@ -327,5 +331,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index c0d53e5..978801d 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 30.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,30 +17,42 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "I1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Y",
-      "logicWidth": 1
+      "name": "S0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "S0",
-      "logicWidth": 1
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 7.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#1",
         "pos": {
           "x": 35.0,
@@ -49,16 +61,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 10.0,
-          "y": 7.5
+          "x": 35.0,
+          "y": 47.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#3",
         "pos": {
           "x": 60.0,
@@ -67,108 +79,94 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 21.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
-        "pos": {
-          "x": 35.0,
-          "y": 47.5
+          "y": 11.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 21.5
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#8"
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#10"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 52.5
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S0"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#4"
       },
       {
         "pin1": {
@@ -184,53 +182,59 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#10"
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 52.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#4"
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#3",
-        "path": []
+        "name": "unnamedWire#8"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
-        "path": []
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUImux1",
     "centerTextHeight": 5.0,
@@ -238,5 +242,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index c90cd3e..11216b0 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
@@ -9,23 +8,17 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I0_1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
-      },
-      "name": "Y1",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "Y2",
-      "logicWidth": 1
+      "name": "I0_2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,47 +26,44 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "I0_3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
-      },
-      "name": "I1_2",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 25.0
+        "y": 45.0
       },
-      "name": "Y3",
-      "logicWidth": 1
+      "name": "I0_4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 55.0
       },
-      "name": "I0_2",
-      "logicWidth": 1
+      "name": "I1_1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 65.0
       },
-      "name": "I1_1",
-      "logicWidth": 1
+      "name": "I1_2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "Y4",
-      "logicWidth": 1
+      "name": "I1_3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -81,7 +71,8 @@ mograsim version: 0.1.3
         "y": 85.0
       },
       "name": "I1_4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,99 +80,178 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 45.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "I0_4",
-      "logicWidth": 1
+      "name": "Y1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 75.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "I1_3",
-      "logicWidth": 1
+      "name": "Y2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "Y3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "Y4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
         "id": "GUImux1",
-        "name": "GUImux1#3",
+        "name": "GUImux1#0",
         "pos": {
           "x": 30.0,
-          "y": 112.5
+          "y": 7.5
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUImux1",
+        "name": "GUImux1#1",
         "pos": {
-          "x": 24.0,
-          "y": 46.5
-        },
-        "params": 1
+          "x": 30.0,
+          "y": 42.5
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUImux1",
+        "name": "GUImux1#2",
         "pos": {
-          "x": 24.0,
-          "y": 11.5
-        },
-        "params": 1
+          "x": 30.0,
+          "y": 77.5
+        }
       },
       {
         "id": "GUImux1",
-        "name": "GUImux1#0",
+        "name": "GUImux1#3",
         "pos": {
           "x": 30.0,
-          "y": 7.5
+          "y": 112.5
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 24.0,
-          "y": 81.5
+          "y": 11.5
         },
         "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "GUImux1#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 30.0,
-          "y": 77.5
-        }
+          "x": 24.0,
+          "y": 46.5
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "GUImux1#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 30.0,
-          "y": 42.5
-        }
+          "x": 24.0,
+          "y": 81.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUImux1#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUImux1#0",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUImux1#2",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#14"
+        "pin2": {
+          "compName": "GUImux1#2",
+          "pinName": "I0"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 87.5
+          },
+          {
+            "x": 5.0,
+            "y": 92.5
+          }
+        ]
       },
       {
         "pin1": {
@@ -206,24 +276,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0_4"
+          "compName": "GUImux1#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUImux1#3",
-          "pinName": "I0"
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 112.5
-          },
-          {
-            "x": 5.0,
-            "y": 127.5
-          }
-        ]
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
@@ -244,14 +304,24 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUImux1#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUImux1#3",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#18"
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 112.5
+          },
+          {
+            "x": 5.0,
+            "y": 127.5
+          }
+        ]
       },
       {
         "pin1": {
@@ -276,91 +346,67 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUImux1#1",
+          "compName": "GUImux1#3",
           "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#18"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I1_2"
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "GUImux1#1",
-          "pinName": "I1"
+          "compName": "GUImux1#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 15.0,
-            "y": 162.5
+            "x": 5.0,
+            "y": 37.5
           },
           {
-            "x": 15.0,
-            "y": 67.5
+            "x": 5.0,
+            "y": 22.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I0_2"
+          "pinName": "I1_1"
         },
         "pin2": {
-          "compName": "GUImux1#1",
-          "pinName": "I0"
+          "compName": "GUImux1#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 5.0,
-            "y": 62.5
+            "x": 10.0,
+            "y": 137.5
           },
           {
-            "x": 5.0,
-            "y": 57.5
+            "x": 10.0,
+            "y": 32.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUImux1#1",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "GUImux1#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S0"
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -381,102 +427,69 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUImux1#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUImux1#1",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I1_1"
-        },
-        "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I1"
-        },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 137.5
-          },
-          {
-            "x": 10.0,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0_3"
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUImux1#2",
+          "compName": "GUImux1#1",
           "pinName": "I0"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 5.0,
-            "y": 87.5
+            "y": 62.5
           },
           {
             "x": 5.0,
-            "y": 92.5
+            "y": 57.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I0_1"
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I0"
+          "compName": "GUImux1#1",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 5.0,
-            "y": 37.5
+            "x": 15.0,
+            "y": 162.5
           },
           {
-            "x": 5.0,
-            "y": 22.5
+            "x": 15.0,
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUImux1#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUImux1#2",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUImux1_4",
     "centerTextHeight": 5.0,
@@ -484,5 +497,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 2542ce0..a0b8dd3 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 70.0,
   "height": 70.0,
@@ -9,15 +8,17 @@ mograsim version: 0.1.3
         "y": 30.0
       },
       "name": "I00",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 60.0
+        "y": 40.0
       },
-      "name": "I11",
-      "logicWidth": 1
+      "name": "I01",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,23 +26,17 @@ mograsim version: 0.1.3
         "y": 50.0
       },
       "name": "I10",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 70.0,
-        "y": 10.0
-      },
-      "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 40.0
+        "y": 60.0
       },
-      "name": "I01",
-      "logicWidth": 1
+      "name": "I11",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +44,8 @@ mograsim version: 0.1.3
         "y": 10.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,14 +53,48 @@ mograsim version: 0.1.3
         "y": 20.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 70.0,
+        "y": 10.0
+      },
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUIsel1",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 60.0,
+          "y": 35.0
+        }
+      },
+      {
+        "id": "GUIsel1",
+        "name": "DeserializedSubmodelComponent#1",
+        "pos": {
+          "x": 60.0,
+          "y": 100.0
+        }
+      },
+      {
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 115.0,
+          "y": 20.0
+        }
+      },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 30.0,
@@ -73,7 +103,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 24.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#1",
         "pos": {
           "x": 24.0,
@@ -82,68 +121,88 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
           "x": 24.0,
-          "y": 24.0
+          "y": 49.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#3",
         "pos": {
           "x": 54.0,
           "y": 39.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 24.0,
-          "y": 49.0
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 20.0
+          }
+        ]
       },
       {
-        "id": "GUIsel1",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 60.0,
-          "y": 100.0
-        }
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUIsel1",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 60.0,
-          "y": 35.0
-        }
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": []
       },
-      {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#2",
-        "pos": {
-          "x": 115.0,
-          "y": 20.0
-        }
-      }
-    ],
-    "innerWires": [
       {
         "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S1"
+          "pinName": "S2"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
@@ -160,20 +219,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "S2"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 115.0
-          }
-        ]
+        "name": "unnamedWire#14",
+        "path": []
       },
       {
         "pin1": {
@@ -194,133 +248,92 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "S1"
+          "pinName": "S2"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 55.0,
-            "y": 105.0
+            "x": 25.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 15.0,
-            "y": 50.0
-          },
-          {
-            "x": 15.0,
-            "y": 10.0
-          },
-          {
-            "x": 85.0,
-            "y": 10.0
-          },
-          {
-            "x": 85.0,
-            "y": 25.0
+            "x": 55.0,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I00"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
+          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "I1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 105.0,
-            "y": 105.0
+            "x": 35.0,
+            "y": 75.0
           },
           {
-            "x": 105.0,
-            "y": 45.0
+            "x": 35.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I01"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 105.0,
-            "y": 40.0
+            "x": 40.0,
+            "y": 100.0
           },
           {
-            "x": 105.0,
-            "y": 35.0
+            "x": 40.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "pinName": "I10"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#4",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 20.0
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
@@ -344,97 +357,91 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I10"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I01"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 40.0,
-            "y": 100.0
+            "x": 105.0,
+            "y": 40.0
           },
           {
-            "x": 40.0,
-            "y": 70.0
+            "x": 105.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I00"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#2",
           "pinName": "I1"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 35.0,
-            "y": 75.0
+            "x": 105.0,
+            "y": 105.0
           },
           {
-            "x": 35.0,
-            "y": 60.0
+            "x": 105.0,
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 50.0
+          },
+          {
+            "x": 15.0,
+            "y": 10.0
+          },
+          {
+            "x": 85.0,
+            "y": 10.0
+          },
+          {
+            "x": 85.0,
+            "y": 25.0
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUImux2",
     "centerTextHeight": 5.0,
@@ -442,6 +449,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 042d9e1..e5d6932 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 62.0,
   "height": 90.0,
@@ -9,15 +8,17 @@ mograsim version: 0.1.3
         "y": 30.0
       },
       "name": "I00",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 60.0
+        "y": 40.0
       },
-      "name": "I11",
-      "logicWidth": 4
+      "name": "I01",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,23 +26,17 @@ mograsim version: 0.1.3
         "y": 50.0
       },
       "name": "I10",
-      "logicWidth": 4
-    },
-    {
-      "location": {
-        "x": 62.0,
-        "y": 16.0
-      },
-      "name": "Y",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 40.0
+        "y": 60.0
       },
-      "name": "I01",
-      "logicWidth": 4
+      "name": "I11",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +44,8 @@ mograsim version: 0.1.3
         "y": 10.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,32 +53,48 @@ mograsim version: 0.1.3
         "y": 20.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 62.0,
+        "y": 16.0
+      },
+      "name": "Y",
+      "logicWidth": 4,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
         "pos": {
-          "x": 19.0,
-          "y": 34.0
-        },
-        "params": 1
+          "x": 40.0,
+          "y": 30.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#1",
         "pos": {
-          "x": 25.0,
-          "y": 45.0
-        },
-        "params": 4
+          "x": 40.0,
+          "y": 125.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 100.0,
+          "y": 20.0
+        }
       },
       {
-        "id": "GUIMerger",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
         "name": "GUIMerger#0",
         "pos": {
           "x": 140.0,
@@ -91,98 +103,111 @@ mograsim version: 0.1.3
         "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#0",
         "pos": {
           "x": 25.0,
-          "y": 180.0
+          "y": 45.0
         },
         "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#1",
         "pos": {
           "x": 25.0,
-          "y": 140.0
+          "y": 85.0
         },
         "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#2",
         "pos": {
           "x": 25.0,
-          "y": 85.0
+          "y": 140.0
         },
         "params": 4
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 40.0,
-          "y": 125.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#3",
         "pos": {
-          "x": 40.0,
-          "y": 30.0
-        }
+          "x": 25.0,
+          "y": 180.0
+        },
+        "params": 4
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 100.0,
-          "y": 20.0
-        }
+          "x": 19.0,
+          "y": 34.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_1"
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#1",
           "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
+          "compName": "GUISplitter#2",
           "pinName": "O1"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 50.0
-          },
-          {
-            "x": 15.0,
-            "y": 20.0
-          },
-          {
-            "x": 60.0,
-            "y": 20.0
-          },
-          {
-            "x": 60.0,
-            "y": 25.0
-          }
-        ]
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_4"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_4"
+        },
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
+        },
+        "name": "unnamedWire#12",
+        "path": []
       },
       {
         "pin1": {
@@ -198,14 +223,26 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
+        },
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
+        },
+        "name": "unnamedWire#15",
         "path": []
       },
       {
@@ -227,14 +264,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
@@ -254,18 +291,6 @@ mograsim version: 0.1.3
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#17",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUISplitter#0",
@@ -290,23 +315,14 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUISplitter#2",
-          "pinName": "I"
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "I10"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#21",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 155.0
-          },
-          {
-            "x": 15.0,
-            "y": 125.0
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
@@ -322,15 +338,24 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_1"
+          "compName": "_submodelinterface",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 155.0
+          },
+          {
+            "x": 15.0,
+            "y": 125.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -356,13 +381,13 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_3"
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
@@ -379,24 +404,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#27",
-        "path": [
-          {
-            "x": 80.0,
-            "y": 75.0
-          },
-          {
-            "x": 80.0,
-            "y": 130.0
-          }
-        ]
+        "name": "unnamedWire#25",
+        "path": []
       },
       {
         "pin1": {
@@ -413,21 +429,21 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_3"
+          "pinName": "I1_1"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 90.0,
-            "y": 95.0
+            "x": 80.0,
+            "y": 75.0
           },
           {
-            "x": 90.0,
-            "y": 150.0
+            "x": 80.0,
+            "y": 130.0
           }
         ]
       },
@@ -454,74 +470,35 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#2",
           "pinName": "I1_3"
         },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O3"
-        },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_4"
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#29",
+        "path": [
+          {
+            "x": 90.0,
+            "y": 95.0
+          },
+          {
+            "x": 90.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_3"
-        },
-        "pin2": {
           "compName": "GUISplitter#3",
-          "pinName": "O2"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_2"
-        },
-        "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#2",
           "pinName": "O0"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_1"
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -547,26 +524,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_2"
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
@@ -583,103 +548,145 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "O3"
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIMerger#0",
-          "pinName": "O"
+          "pinName": "I2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_1"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "_submodelinterface",
+          "pinName": "S1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#36",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 50.0
+          },
+          {
+            "x": 15.0,
+            "y": 20.0
+          },
+          {
+            "x": 60.0,
+            "y": 20.0
+          },
+          {
+            "x": 60.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#1",
           "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
+          "compName": "GUISplitter#2",
           "pinName": "O3"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "GUISplitter#3",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y3"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_3"
+        },
+        "pin2": {
+          "compName": "GUISplitter#3",
           "pinName": "O2"
         },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
+        },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_3"
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "pinName": "O2"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_4"
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y2"
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUImux1_4",
     "centerTextHeight": 5.0,
@@ -687,6 +694,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 3f6a8bc..3058d7a 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 80.0,
   "height": 120.0,
@@ -9,23 +8,17 @@ mograsim version: 0.1.3
         "y": 40.0
       },
       "name": "I000",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 70.0
-      },
-      "name": "I011",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 100.0
+        "y": 50.0
       },
-      "name": "I110",
-      "logicWidth": 1
+      "name": "I001",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,15 +26,17 @@ mograsim version: 0.1.3
         "y": 60.0
       },
       "name": "I010",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 90.0
+        "y": 70.0
       },
-      "name": "I101",
-      "logicWidth": 1
+      "name": "I011",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,31 +44,35 @@ mograsim version: 0.1.3
         "y": 80.0
       },
       "name": "I100",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 110.0
+        "y": 90.0
       },
-      "name": "I111",
-      "logicWidth": 1
+      "name": "I101",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 80.0,
-        "y": 10.0
+        "x": 0.0,
+        "y": 100.0
       },
-      "name": "Y",
-      "logicWidth": 1
+      "name": "I110",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 50.0
+        "y": 110.0
       },
-      "name": "I001",
-      "logicWidth": 1
+      "name": "I111",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -81,7 +80,8 @@ mograsim version: 0.1.3
         "y": 10.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,7 +89,8 @@ mograsim version: 0.1.3
         "y": 20.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -97,30 +98,22 @@ mograsim version: 0.1.3
         "y": 30.0
       },
       "name": "S2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 80.0,
+        "y": 10.0
+      },
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 24.0,
-          "y": 94.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 19.0,
-          "y": 104.0
-        },
-        "params": 1
-      },
+    "components": [
       {
         "id": "GUImux2",
         "name": "DeserializedSubmodelComponent#0",
@@ -129,6 +122,14 @@ mograsim version: 0.1.3
           "y": 185.0
         }
       },
+      {
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 125.0,
+          "y": 20.0
+        }
+      },
       {
         "id": "GUImux2",
         "name": "DeserializedSubmodelComponent#3",
@@ -138,36 +139,113 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 125.0,
-          "y": 20.0
-        }
+          "x": 19.0,
+          "y": 104.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 24.0,
+          "y": 94.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I111"
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 50.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#3",
           "pinName": "I11"
         },
-        "name": "unnamedWire#14",
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "I011"
+        },
+        "name": "unnamedWire#10",
         "path": [
           {
             "x": 15.0,
-            "y": 275.0
+            "y": 145.0
           },
           {
             "x": 15.0,
-            "y": 245.0
+            "y": 175.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I00"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "I100"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 215.0
+          },
+          {
+            "x": 10.0,
+            "y": 200.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I101"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I01"
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#0",
@@ -191,22 +269,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I111"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 110.0,
-            "y": 95.0
+            "x": 15.0,
+            "y": 275.0
           },
           {
-            "x": 110.0,
-            "y": 35.0
+            "x": 15.0,
+            "y": 245.0
           }
         ]
       },
@@ -233,89 +311,56 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "S2"
-        },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 70.0,
-            "y": 25.0
-          },
-          {
-            "x": 70.0,
-            "y": 75.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I010"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I10"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 10.0,
-            "y": 150.0
+            "x": 110.0,
+            "y": 95.0
           },
           {
-            "x": 10.0,
-            "y": 135.0
+            "x": 110.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I01"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "I001"
-        },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I000"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I00"
+          "pinName": "S2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 10.0,
-            "y": 100.0
+            "x": 70.0,
+            "y": 25.0
           },
           {
-            "x": 10.0,
-            "y": 115.0
+            "x": 70.0,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -324,31 +369,26 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
+          "compName": "DeserializedSubmodelComponent#3",
           "pinName": "S1"
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 50.0
-          }
-        ]
+        "name": "unnamedWire#3",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
+          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "S0"
         },
         "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 25.0,
-            "y": 25.0
+            "y": 195.0
           }
         ]
       },
@@ -371,102 +411,74 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I11"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "I011"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 145.0
-          },
-          {
-            "x": 15.0,
-            "y": 175.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "I000"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 25.0,
-            "y": 195.0
+            "x": 10.0,
+            "y": 100.0
+          },
+          {
+            "x": 10.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "S1"
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I101"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "I01"
         },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "I001"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I00"
+          "compName": "_submodelinterface",
+          "pinName": "I010"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "I100"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
             "x": 10.0,
-            "y": 215.0
+            "y": 150.0
           },
           {
             "x": 10.0,
-            "y": 200.0
+            "y": 135.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUImux3",
     "centerTextHeight": 5.0,
@@ -474,6 +486,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index e57eefe..d88e3e8 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 30.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "C",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,32 +35,33 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 35.0,
+          "x": 10.0,
           "y": 15.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 10.0,
+          "x": 35.0,
           "y": 15.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#2",
         "pos": {
           "x": 62.5,
@@ -67,7 +70,7 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 31.5,
@@ -76,39 +79,17 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 60.0,
-            "y": 62.5
-          },
-          {
-            "x": 60.0,
-            "y": 17.5
-          }
-        ]
+        "name": "unnamedWire#0"
       },
       {
         "pin1": {
@@ -123,33 +104,30 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#0"
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 57.5,
-            "y": 25.0
-          },
-          {
-            "x": 57.5,
-            "y": 7.5
+            "x": 32.5,
+            "y": 20.0
           }
         ]
       },
@@ -172,36 +150,62 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 32.5,
-            "y": 20.0
+            "x": 57.5,
+            "y": 25.0
+          },
+          {
+            "x": 57.5,
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 62.5
+          },
+          {
+            "x": 60.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUInand3",
     "centerTextHeight": 5.0,
@@ -209,5 +213,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index a7e95a3..536a38d 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "A2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "A3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +35,8 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "A4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,7 +44,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -49,7 +53,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -57,7 +62,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,23 +71,15 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 30.0,
-          "y": 27.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 30.0,
@@ -90,34 +88,34 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 30.0,
-          "y": 77.5
+          "y": 27.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 14.0,
-          "y": 36.5
+          "x": 30.0,
+          "y": 52.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
           "x": 30.0,
-          "y": 52.5
+          "y": 77.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 14.0,
@@ -126,260 +124,270 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 14.0,
-          "y": 86.5
+          "y": 36.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 14.0,
           "y": 61.5
         },
         "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 14.0,
+          "y": 86.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y3"
-        },
-        "name": "unnamedWire#14",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#10",
         "path": [
           {
             "x": 15.0,
-            "y": 42.5
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#11",
         "path": [
           {
             "x": 15.0,
-            "y": 17.5
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#7",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 82.5
-          }
-        ]
+        "name": "unnamedWire#12",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUINandGate#2",
-          "pinName": "A"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 57.5
-          }
-        ]
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#15",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 15.0,
-            "y": 32.5
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 15.0,
-            "y": 67.5
+            "y": 32.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": [
           {
             "x": 15.0,
-            "y": 7.5
+            "y": 57.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#12",
-        "path": []
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 82.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
-        "path": []
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 17.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
             "x": 15.0,
-            "y": 92.5
+            "y": 42.5
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUInot4",
     "centerTextHeight": 5.0,
@@ -387,5 +395,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 5b09418..59ce75b 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "A2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "A3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +35,8 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "A4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,14 +44,24 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 20.0,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#1",
         "pos": {
           "x": 20.0,
@@ -57,16 +70,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
           "x": 20.0,
-          "y": 15.0
+          "y": 115.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#3",
         "pos": {
           "x": 20.0,
@@ -75,25 +88,52 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 20.0,
-          "y": 115.0
+          "x": 50.0,
+          "y": 40.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 14.0,
-          "y": 74.0
+          "x": 50.0,
+          "y": 140.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#6",
+        "pos": {
+          "x": 110.0,
+          "y": 40.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#7",
+        "pos": {
+          "x": 110.0,
+          "y": 140.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#8",
+        "pos": {
+          "x": 140.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 14.0,
@@ -102,16 +142,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 14.0,
-          "y": 174.0
+          "y": 74.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 14.0,
@@ -120,16 +160,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 104.0,
-          "y": 149.0
+          "x": 14.0,
+          "y": 174.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 104.0,
@@ -138,62 +178,84 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 140.0,
-          "y": 90.0
+          "x": 104.0,
+          "y": 149.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
-        "pos": {
-          "x": 50.0,
-          "y": 140.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 50.0,
-          "y": 40.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
-        "pos": {
-          "x": 110.0,
-          "y": 140.0
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "params": 1
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 130.0
+          }
+        ]
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
-        "pos": {
-          "x": 110.0,
-          "y": 40.0
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 180.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#14"
+        "name": "unnamedWire#12"
       },
       {
         "pin1": {
@@ -208,15 +270,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "A"
         },
-        "name": "unnamedWire#16",
-        "path": []
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
@@ -231,20 +292,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#16",
+        "path": []
       },
       {
         "pin1": {
@@ -265,33 +321,45 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#6",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 105.0,
-            "y": 55.0
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#19",
         "path": [
           {
             "x": 105.0,
-            "y": 155.0
+            "y": 55.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#5",
@@ -311,14 +379,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#23"
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 155.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -331,6 +405,17 @@ mograsim version: 0.1.3
         },
         "name": "unnamedWire#22"
       },
+      {
+        "pin1": {
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#23"
+      },
       {
         "pin1": {
           "compName": "GUINandGate#8",
@@ -344,20 +429,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 80.0
-          }
-        ]
+        "name": "unnamedWire#3",
+        "path": []
       },
       {
         "pin1": {
@@ -366,30 +446,30 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 15.0,
-            "y": 30.0
+            "y": 20.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 15.0,
-            "y": 170.0
+            "y": 70.0
           }
         ]
       },
@@ -412,59 +492,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#5",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 70.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 15.0,
-            "y": 130.0
+            "y": 170.0
           }
         ]
       },
@@ -475,71 +514,37 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 15.0,
-            "y": 20.0
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#12"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#2",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
             "x": 15.0,
-            "y": 180.0
+            "y": 80.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIor4",
     "centerTextHeight": 5.0,
@@ -547,5 +552,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index ed484c9..6701045 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 80.0,
@@ -9,55 +8,71 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 25.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 35.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 45.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 55.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 65.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -65,7 +80,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -73,7 +89,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -81,7 +98,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -89,31 +107,15 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 45.0
-      },
-      "name": "B1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 15.0,
-          "y": 27.5
-        },
-        "params": 1
-      },
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 15.0,
@@ -122,25 +124,25 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 15.0,
-          "y": 77.5
+          "y": 27.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 15.0,
+          "x": 65.0,
           "y": 52.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#11",
         "pos": {
           "x": 65.0,
@@ -149,70 +151,70 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 65.0,
+          "x": 15.0,
           "y": 52.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 6.5,
-          "y": 36.5
+          "x": 15.0,
+          "y": 77.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 6.5,
-          "y": 11.5
+          "x": 15.0,
+          "y": 102.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 6.5,
-          "y": 86.5
+          "x": 15.0,
+          "y": 127.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 6.5,
-          "y": 61.5
+          "x": 15.0,
+          "y": 152.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 6.5,
-          "y": 136.5
+          "x": 15.0,
+          "y": 177.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 6.5,
-          "y": 111.5
+          "x": 65.0,
+          "y": 2.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#9",
         "pos": {
           "x": 65.0,
@@ -221,84 +223,134 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 6.5,
-          "y": 186.5
+          "y": 11.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 65.0,
-          "y": 2.5
+          "x": 6.5,
+          "y": 36.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
           "x": 6.5,
-          "y": 161.5
+          "y": 61.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 15.0,
-          "y": 127.5
+          "x": 6.5,
+          "y": 86.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 15.0,
-          "y": 102.5
+          "x": 6.5,
+          "y": 111.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 15.0,
-          "y": 177.5
+          "x": 6.5,
+          "y": 136.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 15.0,
-          "y": 152.5
+          "x": 6.5,
+          "y": 161.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 6.5,
+          "y": 186.5
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#10",
         "path": [
           {
             "x": 7.5,
-            "y": 82.5
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 42.5
           }
         ]
       },
@@ -309,42 +361,47 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#2",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#12",
         "path": [
           {
             "x": 7.5,
-            "y": 67.5
+            "y": 57.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#35",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 67.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
             "x": 7.5,
-            "y": 107.5
+            "y": 82.5
           }
         ]
       },
@@ -367,18 +424,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": [
           {
             "x": 7.5,
-            "y": 132.5
+            "y": 107.5
           }
         ]
       },
@@ -406,33 +463,45 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#5",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 7.5,
-            "y": 142.5
+            "y": 132.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#19",
         "path": [
           {
             "x": 7.5,
-            "y": 167.5
+            "y": 142.5
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#6",
@@ -452,18 +521,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": [
           {
             "x": 7.5,
-            "y": 192.5
+            "y": 167.5
           }
         ]
       },
@@ -486,22 +555,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 45.0,
-            "y": 112.5
-          },
-          {
-            "x": 45.0,
-            "y": 17.5
+            "x": 7.5,
+            "y": 192.5
           }
         ]
       },
@@ -528,22 +593,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 50.0,
-            "y": 137.5
+            "x": 45.0,
+            "y": 112.5
           },
           {
-            "x": 50.0,
-            "y": 42.5
+            "x": 45.0,
+            "y": 17.5
           }
         ]
       },
@@ -570,22 +635,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 55.0,
-            "y": 162.5
+            "x": 50.0,
+            "y": 137.5
           },
           {
-            "x": 55.0,
-            "y": 67.5
+            "x": 50.0,
+            "y": 42.5
           }
         ]
       },
@@ -612,84 +677,35 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#10",
           "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 7.5,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#8",
-        "path": [
+            "x": 55.0,
+            "y": 162.5
+          },
           {
-            "x": 7.5,
-            "y": 7.5
+            "x": 55.0,
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -715,30 +731,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "GUINandGate#11",
+          "pinName": "B"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 7.5,
-            "y": 32.5
+            "x": 60.0,
+            "y": 187.5
+          },
+          {
+            "x": 60.0,
+            "y": 92.5
           }
         ]
       },
@@ -756,122 +764,126 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#10",
           "pinName": "Y"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUINandGate#11",
-          "pinName": "B"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#31",
-        "path": [
-          {
-            "x": 60.0,
-            "y": 187.5
-          },
-          {
-            "x": 60.0,
-            "y": 92.5
-          }
-        ]
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#35",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 7.5,
-            "y": 57.5
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A3"
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 7.5,
-            "y": 42.5
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#33",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 17.5
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIor_4",
     "centerTextHeight": 5.0,
@@ -879,5 +891,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index ea3eff9..a5637f1 100644 (file)
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "QA1",
-      "logicWidth": 1
+      "name": "A0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "QB2",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "QB1",
-      "logicWidth": 1
+      "name": "B0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "QA3",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 75.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "QB4",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 65.0
       },
-      "name": "QA2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 65.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "QB3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 85.0
       },
-      "name": "QA4",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 55.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "QA1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "B0",
-      "logicWidth": 1
+      "name": "QA2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 45.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "WE",
-      "logicWidth": 1
+      "name": "QA3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 65.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "QA4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "A0",
-      "logicWidth": 1
+      "name": "QB1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 35.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "QB2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 75.0
+        "x": 35.0,
+        "y": 65.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "QB3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 75.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "QB4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 45.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUIand41",
+        "name": "GUIand41#0",
         "pos": {
-          "x": 44.0,
-          "y": 649.0
-        },
-        "params": 1
+          "x": 130.0,
+          "y": 150.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUIand41",
+        "name": "GUIand41#1",
         "pos": {
-          "x": 39.0,
-          "y": 639.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 375.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "GUIand41",
+        "name": "GUIand41#2",
         "pos": {
-          "x": 129.0,
-          "y": 329.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 325.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUIandor414",
+        "name": "GUIandor414#0",
         "pos": {
-          "x": 49.0,
-          "y": 659.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 485.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUIandor414",
+        "name": "GUIandor414#1",
         "pos": {
-          "x": 119.0,
-          "y": 349.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 635.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "GUIandor414",
+        "name": "GUIandor414#2",
         "pos": {
-          "x": 124.0,
-          "y": 339.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 785.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "id": "GUIandor414",
+        "name": "GUIandor414#3",
         "pos": {
-          "x": 114.0,
-          "y": 359.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 435.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIandor414",
+        "name": "GUIandor414#4",
         "pos": {
-          "x": 104.0,
-          "y": 164.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 585.0
+        }
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#5",
+        "pos": {
+          "x": 135.0,
+          "y": 735.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#0",
+        "pos": {
+          "x": 55.0,
+          "y": 45.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#1",
+        "pos": {
+          "x": 55.0,
+          "y": 150.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#0",
+        "pos": {
+          "x": 55.0,
+          "y": 325.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#1",
+        "pos": {
+          "x": 55.0,
+          "y": 475.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#2",
+        "pos": {
+          "x": 55.0,
+          "y": 625.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#3",
+        "pos": {
+          "x": 55.0,
+          "y": 775.0
+        }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 109.0,
@@ -225,228 +289,160 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 94.0,
-          "y": 184.0
+          "x": 104.0,
+          "y": 164.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 99.0,
-          "y": 174.0
+          "x": 44.0,
+          "y": 499.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 39.0,
-          "y": 649.0
+          "x": 49.0,
+          "y": 509.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
           "x": 34.0,
-          "y": 549.0
+          "y": 629.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 49.0,
-          "y": 809.0
+          "x": 39.0,
+          "y": 639.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
           "x": 44.0,
-          "y": 749.0
+          "y": 649.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 39.0,
-          "y": 489.0
+          "x": 49.0,
+          "y": 659.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 34.0,
-          "y": 479.0
+          "x": 129.0,
+          "y": 329.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 44.0,
-          "y": 499.0
+          "x": 124.0,
+          "y": 339.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 34.0,
-          "y": 629.0
+          "x": 119.0,
+          "y": 349.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 49.0,
-          "y": 509.0
+          "x": 114.0,
+          "y": 359.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#5",
-        "pos": {
-          "x": 135.0,
-          "y": 735.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#3",
-        "pos": {
-          "x": 135.0,
-          "y": 435.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#4",
-        "pos": {
-          "x": 135.0,
-          "y": 585.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#1",
-        "pos": {
-          "x": 235.0,
-          "y": 635.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#2",
-        "pos": {
-          "x": 235.0,
-          "y": 785.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#0",
-        "pos": {
-          "x": 235.0,
-          "y": 485.0
-        }
-      },
-      {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#1",
-        "pos": {
-          "x": 55.0,
-          "y": 475.0
-        }
-      },
-      {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#0",
-        "pos": {
-          "x": 55.0,
-          "y": 325.0
-        }
-      },
-      {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 55.0,
-          "y": 775.0
-        }
+          "x": 99.0,
+          "y": 174.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 55.0,
-          "y": 625.0
-        }
+          "x": 129.0,
+          "y": 479.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 135.0,
-          "y": 325.0
-        }
+          "x": 124.0,
+          "y": 489.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#30",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "pos": {
           "x": 119.0,
-          "y": 799.0
+          "y": 499.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#31",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#23",
         "pos": {
           "x": 114.0,
-          "y": 809.0
+          "y": 509.0
         },
         "params": 1
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#0",
-        "pos": {
-          "x": 130.0,
-          "y": 150.0
-        }
-      },
-      {
-        "id": "GUIand41",
-        "name": "GUIand41#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 235.0,
-          "y": 375.0
-        }
+          "x": 129.0,
+          "y": 629.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#25",
         "pos": {
           "x": 124.0,
@@ -455,16 +451,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 129.0,
-          "y": 629.0
+          "x": 119.0,
+          "y": 649.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#27",
         "pos": {
           "x": 114.0,
@@ -473,16 +469,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#28",
         "pos": {
-          "x": 119.0,
-          "y": 649.0
+          "x": 129.0,
+          "y": 779.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#29",
         "pos": {
           "x": 124.0,
@@ -491,877 +487,1110 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#28",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 129.0,
-          "y": 779.0
+          "x": 94.0,
+          "y": 184.0
         },
         "params": 1
       },
       {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#30",
         "pos": {
-          "x": 55.0,
-          "y": 150.0
-        }
+          "x": 119.0,
+          "y": 799.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#31",
         "pos": {
-          "x": 55.0,
-          "y": 45.0
-        }
+          "x": 114.0,
+          "y": 809.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 124.0,
-          "y": 489.0
+          "x": 34.0,
+          "y": 549.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 129.0,
-          "y": 479.0
+          "x": 39.0,
+          "y": 649.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 114.0,
-          "y": 509.0
+          "x": 44.0,
+          "y": 749.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 119.0,
-          "y": 499.0
+          "x": 49.0,
+          "y": 809.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
+        "pos": {
+          "x": 34.0,
+          "y": 479.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
+        "pos": {
+          "x": 39.0,
+          "y": 489.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A0"
         },
         "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D3"
+          "compName": "GUIdemux2#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D2"
+          "compName": "GUIdemux2#0",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#35",
-        "path": []
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 150.0
+          },
+          {
+            "x": 10.0,
+            "y": 60.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIand41#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D4"
+          "compName": "GUIandor414#5",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#100",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIand41#1",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#39",
-        "path": []
+        "name": "unnamedWire#101",
+        "path": [
+          {
+            "x": 290.0,
+            "y": 380.0
+          },
+          {
+            "x": 290.0,
+            "y": 445.0
+          },
+          {
+            "x": 230.0,
+            "y": 445.0
+          },
+          {
+            "x": 230.0,
+            "y": 490.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIand41#1",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
+          "compName": "GUIandor414#0",
           "pinName": "C2"
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#102",
         "path": [
           {
             "x": 285.0,
-            "y": 650.0
+            "y": 390.0
           },
           {
             "x": 285.0,
-            "y": 740.0
+            "y": 440.0
           },
           {
             "x": 225.0,
-            "y": 740.0
+            "y": 440.0
           },
           {
             "x": 225.0,
-            "y": 800.0
+            "y": 500.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIand41#1",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
+          "compName": "GUIandor414#0",
           "pinName": "C3"
         },
-        "name": "unnamedWire#111",
+        "name": "unnamedWire#103",
         "path": [
           {
             "x": 280.0,
-            "y": 660.0
+            "y": 400.0
           },
           {
             "x": 280.0,
-            "y": 735.0
+            "y": 435.0
           },
           {
             "x": 220.0,
-            "y": 735.0
+            "y": 435.0
           },
           {
             "x": 220.0,
-            "y": 810.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA2"
-        },
-        "name": "unnamedWire#114",
-        "path": [
-          {
-            "x": 305.0,
-            "y": 800.0
-          },
-          {
-            "x": 305.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA3"
-        },
-        "name": "unnamedWire#115",
-        "path": [
-          {
-            "x": 310.0,
-            "y": 810.0
-          },
-          {
-            "x": 310.0,
-            "y": 250.0
+            "y": 510.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIand41#1",
           "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
+          "compName": "GUIandor414#0",
           "pinName": "C4"
         },
-        "name": "unnamedWire#112",
+        "name": "unnamedWire#104",
         "path": [
           {
             "x": 275.0,
-            "y": 670.0
+            "y": 410.0
           },
           {
             "x": 275.0,
-            "y": 730.0
+            "y": 430.0
           },
           {
             "x": 215.0,
-            "y": 730.0
+            "y": 430.0
           },
           {
             "x": 215.0,
-            "y": 820.0
+            "y": 520.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
+          "compName": "GUIandor414#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA1"
+          "compName": "GUIandor414#1",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#113",
+        "name": "unnamedWire#105",
         "path": [
           {
-            "x": 300.0,
-            "y": 790.0
+            "x": 290.0,
+            "y": 490.0
           },
           {
-            "x": 300.0,
-            "y": 50.0
+            "x": 290.0,
+            "y": 595.0
+          },
+          {
+            "x": 230.0,
+            "y": 595.0
+          },
+          {
+            "x": 230.0,
+            "y": 640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
+          "compName": "GUIandor414#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
+          "compName": "GUIandor414#1",
           "pinName": "C2"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#106",
         "path": [
           {
-            "x": 185.0,
-            "y": 340.0
+            "x": 285.0,
+            "y": 500.0
           },
           {
-            "x": 185.0,
-            "y": 425.0
+            "x": 285.0,
+            "y": 590.0
           },
           {
-            "x": 125.0,
-            "y": 425.0
+            "x": 225.0,
+            "y": 590.0
           },
           {
-            "x": 125.0,
-            "y": 450.0
+            "x": 225.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
+          "compName": "GUIandor414#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
+          "compName": "GUIandor414#1",
           "pinName": "C3"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#107",
         "path": [
           {
-            "x": 180.0,
-            "y": 350.0
+            "x": 280.0,
+            "y": 510.0
           },
           {
-            "x": 180.0,
-            "y": 420.0
+            "x": 280.0,
+            "y": 585.0
           },
           {
-            "x": 120.0,
-            "y": 420.0
+            "x": 220.0,
+            "y": 585.0
           },
           {
-            "x": 120.0,
-            "y": 460.0
+            "x": 220.0,
+            "y": 660.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D1"
+          "compName": "GUIandor414#1",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#108",
         "path": [
           {
-            "x": 35.0,
-            "y": 780.0
+            "x": 275.0,
+            "y": 520.0
+          },
+          {
+            "x": 275.0,
+            "y": 580.0
+          },
+          {
+            "x": 215.0,
+            "y": 580.0
+          },
+          {
+            "x": 215.0,
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y4"
+          "compName": "GUIandor414#1",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA4"
+          "compName": "GUIandor414#2",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#116",
+        "name": "unnamedWire#109",
         "path": [
           {
-            "x": 315.0,
-            "y": 820.0
+            "x": 290.0,
+            "y": 640.0
           },
           {
-            "x": 315.0,
-            "y": 350.0
-          }
-        ]
-      },
-      {
+            "x": 290.0,
+            "y": 745.0
+          },
+          {
+            "x": 230.0,
+            "y": 745.0
+          },
+          {
+            "x": 230.0,
+            "y": 790.0
+          }
+        ]
+      },
+      {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIand41#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y1"
+          "compName": "GUIandor414#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C1"
+          "compName": "GUIandor414#2",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#110",
         "path": [
           {
-            "x": 190.0,
-            "y": 330.0
+            "x": 285.0,
+            "y": 650.0
           },
           {
-            "x": 190.0,
-            "y": 430.0
+            "x": 285.0,
+            "y": 740.0
           },
           {
-            "x": 130.0,
-            "y": 430.0
+            "x": 225.0,
+            "y": 740.0
           },
           {
-            "x": 130.0,
-            "y": 440.0
+            "x": 225.0,
+            "y": 800.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D3"
+          "compName": "GUIandor414#2",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#111",
         "path": [
           {
-            "x": 45.0,
-            "y": 800.0
+            "x": 280.0,
+            "y": 660.0
+          },
+          {
+            "x": 280.0,
+            "y": 735.0
+          },
+          {
+            "x": 220.0,
+            "y": 735.0
+          },
+          {
+            "x": 220.0,
+            "y": 810.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D2"
+          "compName": "GUIandor414#2",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#112",
         "path": [
           {
-            "x": 40.0,
+            "x": 275.0,
+            "y": 670.0
+          },
+          {
+            "x": 275.0,
+            "y": 730.0
+          },
+          {
+            "x": 215.0,
+            "y": 730.0
+          },
+          {
+            "x": 215.0,
+            "y": 820.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#2",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA1"
+        },
+        "name": "unnamedWire#113",
+        "path": [
+          {
+            "x": 300.0,
             "y": 790.0
+          },
+          {
+            "x": 300.0,
+            "y": 50.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q1"
+          "compName": "GUIandor414#2",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "QA2"
         },
-        "name": "unnamedWire#45",
-        "path": []
+        "name": "unnamedWire#114",
+        "path": [
+          {
+            "x": 305.0,
+            "y": 800.0
+          },
+          {
+            "x": 305.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIandor414#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D4"
+          "compName": "_submodelinterface",
+          "pinName": "QA3"
         },
-        "name": "unnamedWire#44",
-        "path": []
+        "name": "unnamedWire#115",
+        "path": [
+          {
+            "x": 310.0,
+            "y": 810.0
+          },
+          {
+            "x": 310.0,
+            "y": 250.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q3"
+          "compName": "GUIandor414#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "QA4"
         },
-        "name": "unnamedWire#47",
-        "path": []
+        "name": "unnamedWire#116",
+        "path": [
+          {
+            "x": 315.0,
+            "y": 820.0
+          },
+          {
+            "x": 315.0,
+            "y": 350.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#117",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 330.0
+          },
+          {
+            "x": 190.0,
+            "y": 430.0
+          },
+          {
+            "x": 130.0,
+            "y": 430.0
+          },
+          {
+            "x": 130.0,
+            "y": 440.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#118",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 340.0
+          },
+          {
+            "x": 185.0,
+            "y": 425.0
+          },
+          {
+            "x": 125.0,
+            "y": 425.0
+          },
+          {
+            "x": 125.0,
+            "y": 450.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#119",
+        "path": [
+          {
+            "x": 180.0,
+            "y": 350.0
+          },
+          {
+            "x": 180.0,
+            "y": 420.0
+          },
+          {
+            "x": 120.0,
+            "y": 420.0
+          },
+          {
+            "x": 120.0,
+            "y": 460.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q2"
+          "compName": "_submodelinterface",
+          "pinName": "WE"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUIand41#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#46",
-        "path": []
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 450.0
+          },
+          {
+            "x": 5.0,
+            "y": 300.0
+          },
+          {
+            "x": 125.0,
+            "y": 300.0
+          },
+          {
+            "x": 125.0,
+            "y": 195.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q1"
+          "compName": "GUIand41#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#49",
-        "path": []
+        "name": "unnamedWire#120",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 360.0
+          },
+          {
+            "x": 175.0,
+            "y": 415.0
+          },
+          {
+            "x": 115.0,
+            "y": 415.0
+          },
+          {
+            "x": 115.0,
+            "y": 470.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q4"
+          "compName": "GUIandor414#3",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#48",
-        "path": []
+        "name": "unnamedWire#121",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 440.0
+          },
+          {
+            "x": 190.0,
+            "y": 580.0
+          },
+          {
+            "x": 130.0,
+            "y": 580.0
+          },
+          {
+            "x": 130.0,
+            "y": 590.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A4"
+          "compName": "GUIandor414#4",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#100",
-        "path": []
+        "name": "unnamedWire#122",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 450.0
+          },
+          {
+            "x": 185.0,
+            "y": 575.0
+          },
+          {
+            "x": 125.0,
+            "y": 575.0
+          },
+          {
+            "x": 125.0,
+            "y": 600.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#3",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#4",
           "pinName": "C3"
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#123",
         "path": [
           {
-            "x": 280.0,
-            "y": 400.0
+            "x": 180.0,
+            "y": 460.0
           },
           {
-            "x": 280.0,
-            "y": 435.0
+            "x": 180.0,
+            "y": 570.0
           },
           {
-            "x": 220.0,
-            "y": 435.0
+            "x": 120.0,
+            "y": 570.0
           },
           {
-            "x": 220.0,
-            "y": 510.0
+            "x": 120.0,
+            "y": 610.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#3",
           "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#4",
           "pinName": "C4"
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#124",
         "path": [
           {
-            "x": 275.0,
-            "y": 410.0
+            "x": 175.0,
+            "y": 470.0
           },
           {
-            "x": 275.0,
-            "y": 430.0
+            "x": 175.0,
+            "y": 565.0
           },
           {
-            "x": 215.0,
-            "y": 430.0
+            "x": 115.0,
+            "y": 565.0
           },
           {
-            "x": 215.0,
-            "y": 520.0
+            "x": 115.0,
+            "y": 620.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#4",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#5",
           "pinName": "C1"
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#125",
         "path": [
           {
-            "x": 290.0,
-            "y": 380.0
+            "x": 190.0,
+            "y": 590.0
           },
           {
-            "x": 290.0,
-            "y": 445.0
+            "x": 190.0,
+            "y": 730.0
           },
           {
-            "x": 230.0,
-            "y": 445.0
+            "x": 130.0,
+            "y": 730.0
           },
           {
-            "x": 230.0,
-            "y": 490.0
+            "x": 130.0,
+            "y": 740.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#4",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#5",
           "pinName": "C2"
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#126",
         "path": [
           {
-            "x": 285.0,
-            "y": 390.0
+            "x": 185.0,
+            "y": 600.0
           },
           {
-            "x": 285.0,
-            "y": 440.0
+            "x": 185.0,
+            "y": 725.0
           },
           {
-            "x": 225.0,
-            "y": 440.0
+            "x": 125.0,
+            "y": 725.0
           },
           {
-            "x": 225.0,
-            "y": 500.0
+            "x": 125.0,
+            "y": 750.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q2"
+          "compName": "GUIandor414#4",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#50",
-        "path": []
+        "name": "unnamedWire#127",
+        "path": [
+          {
+            "x": 180.0,
+            "y": 610.0
+          },
+          {
+            "x": 180.0,
+            "y": 720.0
+          },
+          {
+            "x": 120.0,
+            "y": 720.0
+          },
+          {
+            "x": 120.0,
+            "y": 760.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
-          "pinName": "Y3"
+          "compName": "GUIandor414#4",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C3"
+          "compName": "GUIandor414#5",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#128",
         "path": [
           {
-            "x": 280.0,
-            "y": 510.0
+            "x": 175.0,
+            "y": 620.0
           },
           {
-            "x": 280.0,
-            "y": 585.0
+            "x": 175.0,
+            "y": 715.0
           },
           {
-            "x": 220.0,
-            "y": 585.0
+            "x": 115.0,
+            "y": 715.0
           },
           {
-            "x": 220.0,
-            "y": 660.0
+            "x": 115.0,
+            "y": 770.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
-          "pinName": "Y4"
+          "compName": "GUIandor414#5",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C4"
+          "compName": "_submodelinterface",
+          "pinName": "QB1"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#129",
         "path": [
           {
-            "x": 275.0,
-            "y": 520.0
+            "x": 190.0,
+            "y": 740.0
           },
           {
-            "x": 275.0,
-            "y": 580.0
+            "x": 190.0,
+            "y": 880.0
           },
           {
-            "x": 215.0,
-            "y": 580.0
+            "x": 325.0,
+            "y": 880.0
           },
           {
-            "x": 215.0,
-            "y": 670.0
+            "x": 325.0,
+            "y": 450.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
-        },
-        "name": "unnamedWire#52",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIand41#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C1"
+          "compName": "GUIdlatch4#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 290.0,
-            "y": 490.0
+            "x": 185.0,
+            "y": 155.0
           },
           {
-            "x": 290.0,
-            "y": 595.0
+            "x": 185.0,
+            "y": 250.0
           },
           {
-            "x": 230.0,
-            "y": 595.0
+            "x": 30.0,
+            "y": 250.0
           },
           {
-            "x": 230.0,
-            "y": 640.0
+            "x": 30.0,
+            "y": 370.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
-        },
-        "name": "unnamedWire#51",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#5",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C2"
+          "compName": "_submodelinterface",
+          "pinName": "QB2"
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#130",
         "path": [
           {
-            "x": 285.0,
-            "y": 500.0
+            "x": 185.0,
+            "y": 750.0
           },
           {
-            "x": 285.0,
-            "y": 590.0
+            "x": 185.0,
+            "y": 885.0
           },
           {
-            "x": 225.0,
-            "y": 590.0
+            "x": 330.0,
+            "y": 885.0
           },
           {
-            "x": 225.0,
-            "y": 650.0
+            "x": 330.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
-        },
-        "name": "unnamedWire#54",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
-        },
-        "name": "unnamedWire#53",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
-        },
-        "name": "unnamedWire#56",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y1"
+          "compName": "GUIandor414#5",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C1"
+          "compName": "_submodelinterface",
+          "pinName": "QB3"
         },
-        "name": "unnamedWire#109",
+        "name": "unnamedWire#131",
         "path": [
           {
-            "x": 290.0,
-            "y": 640.0
+            "x": 180.0,
+            "y": 760.0
           },
           {
-            "x": 290.0,
-            "y": 745.0
+            "x": 180.0,
+            "y": 890.0
           },
           {
-            "x": 230.0,
-            "y": 745.0
+            "x": 335.0,
+            "y": 890.0
           },
           {
-            "x": 230.0,
-            "y": 790.0
+            "x": 335.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q3"
+          "compName": "GUIandor414#5",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "QB4"
         },
-        "name": "unnamedWire#55",
-        "path": []
+        "name": "unnamedWire#132",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 770.0
+          },
+          {
+            "x": 175.0,
+            "y": 895.0
+          },
+          {
+            "x": 340.0,
+            "y": 895.0
+          },
+          {
+            "x": 340.0,
+            "y": 750.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1395,29 +1624,29 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUIand41#0",
-          "pinName": "Y1"
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
+          "compName": "GUIdlatch4#2",
           "pinName": "C"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 185.0,
-            "y": 155.0
+            "x": 175.0,
+            "y": 175.0
           },
           {
-            "x": 185.0,
-            "y": 250.0
+            "x": 175.0,
+            "y": 240.0
           },
           {
-            "x": 30.0,
-            "y": 250.0
+            "x": 20.0,
+            "y": 240.0
           },
           {
-            "x": 30.0,
-            "y": 370.0
+            "x": 20.0,
+            "y": 670.0
           }
         ]
       },
@@ -1450,57 +1679,28 @@ mograsim version: 0.1.3
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 175.0,
-            "y": 175.0
-          },
-          {
-            "x": 175.0,
-            "y": 240.0
-          },
-          {
-            "x": 20.0,
-            "y": 240.0
-          },
-          {
-            "x": 20.0,
-            "y": 670.0
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D1"
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
@@ -1517,18 +1717,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B0"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D1"
+          "compName": "GUIdemux2#1",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 35.0,
-            "y": 330.0
+            "x": 5.0,
+            "y": 250.0
+          },
+          {
+            "x": 5.0,
+            "y": 155.0
           }
         ]
       },
@@ -1551,18 +1755,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIdlatch4#0",
-          "pinName": "D3"
+          "pinName": "D1"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": [
           {
-            "x": 45.0,
-            "y": 350.0
+            "x": 35.0,
+            "y": 330.0
           }
         ]
       },
@@ -1585,15 +1789,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D1"
+          "compName": "GUIdlatch4#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#25",
-        "path": []
+        "name": "unnamedWire#23",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 350.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1614,14 +1823,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIdlatch4#1",
-          "pinName": "D3"
+          "pinName": "D1"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
@@ -1638,14 +1847,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
@@ -1662,544 +1871,410 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "name": "unnamedWire#30",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "name": "unnamedWire#32",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "name": "unnamedWire#31",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D1"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A3"
+          "compName": "GUIdemux2#1",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#79",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 120.0,
-            "y": 700.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A1"
-        },
-        "name": "unnamedWire#81",
-        "path": [
+            "x": 10.0,
+            "y": 350.0
+          },
           {
-            "x": 130.0,
-            "y": 830.0
+            "x": 10.0,
+            "y": 165.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A4"
-        },
-        "name": "unnamedWire#80",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 710.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#83",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 850.0
-          }
-        ]
+        "name": "unnamedWire#30",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A2"
-        },
-        "name": "unnamedWire#82",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 840.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A1"
-        },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#84",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 860.0
-          }
-        ]
+        "name": "unnamedWire#32",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#87",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A2"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A1"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A4"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A2"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y11"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIdemux2#1",
-          "pinName": "Y10"
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A4"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#92",
-        "path": []
+        "name": "unnamedWire#41",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 780.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A3"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#91",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 790.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S1"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 10.0,
-            "y": 150.0
-          },
-          {
-            "x": 10.0,
-            "y": 60.0
+            "x": 45.0,
+            "y": 800.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A2"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#94",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A0"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#45",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
-        "name": "unnamedWire#96",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#95",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y01"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIdemux2#1",
+          "pinName": "Y01"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#98",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y00"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#97",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 350.0
-          },
-          {
-            "x": 10.0,
-            "y": 165.0
-          }
-        ]
+        "name": "unnamedWire#53",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "WE"
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 450.0
-          },
-          {
-            "x": 5.0,
-            "y": 300.0
-          },
-          {
-            "x": 125.0,
-            "y": 300.0
-          },
-          {
-            "x": 125.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#54",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B0"
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 250.0
-          },
-          {
-            "x": 5.0,
-            "y": 155.0
-          }
-        ]
+        "name": "unnamedWire#55",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "GUIdlatch4#3",
+          "pinName": "Q1"
         },
-        "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A3"
+        "pin2": {
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
-        "name": "unnamedWire#99",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
@@ -2217,514 +2292,522 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUIdlatch4#3",
-          "pinName": "Q1"
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#59",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#1",
+          "pinName": "Y10"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIdlatch4#3",
-          "pinName": "Q3"
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y4"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB4"
+          "compName": "GUIand41#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#132",
+        "name": "unnamedWire#61",
         "path": [
           {
-            "x": 175.0,
-            "y": 770.0
+            "x": 210.0,
+            "y": 50.0
           },
           {
-            "x": 175.0,
-            "y": 895.0
-          },
+            "x": 210.0,
+            "y": 420.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y01"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#62",
+        "path": [
           {
-            "x": 340.0,
-            "y": 895.0
+            "x": 205.0,
+            "y": 60.0
           },
           {
-            "x": 340.0,
-            "y": 750.0
+            "x": 205.0,
+            "y": 570.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y2"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y10"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB2"
+          "compName": "GUIandor414#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#130",
+        "name": "unnamedWire#63",
         "path": [
           {
-            "x": 185.0,
-            "y": 750.0
+            "x": 200.0,
+            "y": 70.0
           },
           {
-            "x": 185.0,
-            "y": 885.0
-          },
+            "x": 200.0,
+            "y": 720.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y11"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#64",
+        "path": [
           {
-            "x": 330.0,
-            "y": 885.0
+            "x": 195.0,
+            "y": 80.0
           },
           {
-            "x": 330.0,
-            "y": 550.0
+            "x": 195.0,
+            "y": 870.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB3"
+          "compName": "GUIand41#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#65",
         "path": [
           {
-            "x": 180.0,
-            "y": 760.0
-          },
-          {
-            "x": 180.0,
-            "y": 890.0
-          },
+            "x": 110.0,
+            "y": 370.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#66",
+        "path": [
           {
-            "x": 335.0,
-            "y": 890.0
-          },
+            "x": 105.0,
+            "y": 520.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#67",
+        "path": [
           {
-            "x": 335.0,
-            "y": 650.0
+            "x": 100.0,
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y00"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#68",
         "path": [
           {
-            "x": 210.0,
-            "y": 50.0
-          },
+            "x": 95.0,
+            "y": 820.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#69",
+        "path": [
           {
-            "x": 210.0,
-            "y": 420.0
+            "x": 130.0,
+            "y": 380.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "Q4"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y11"
         },
         "pin2": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y10"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "B"
+          "compName": "GUIand41#1",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#70",
         "path": [
           {
-            "x": 200.0,
-            "y": 70.0
-          },
-          {
-            "x": 200.0,
-            "y": 720.0
+            "x": 125.0,
+            "y": 390.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y01"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "B"
+          "compName": "GUIand41#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 205.0,
-            "y": 60.0
-          },
-          {
-            "x": 205.0,
-            "y": 570.0
+            "x": 120.0,
+            "y": 400.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#72",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 410.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#73",
         "path": [
           {
-            "x": 110.0,
-            "y": 370.0
+            "x": 130.0,
+            "y": 530.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y11"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#64",
+        "name": "unnamedWire#74",
         "path": [
           {
-            "x": 195.0,
-            "y": 80.0
-          },
-          {
-            "x": 195.0,
-            "y": 870.0
+            "x": 125.0,
+            "y": 540.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#75",
         "path": [
           {
-            "x": 100.0,
-            "y": 670.0
+            "x": 120.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#66",
+        "name": "unnamedWire#76",
         "path": [
           {
-            "x": 105.0,
-            "y": 520.0
+            "x": 115.0,
+            "y": 560.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#1",
           "pinName": "A1"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#77",
         "path": [
           {
             "x": 130.0,
-            "y": 380.0
+            "y": 680.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "B"
+          "compName": "GUIandor414#1",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#78",
         "path": [
           {
-            "x": 95.0,
-            "y": 820.0
+            "x": 125.0,
+            "y": 690.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C1"
+          "compName": "GUIandor414#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#121",
+        "name": "unnamedWire#79",
         "path": [
           {
-            "x": 190.0,
-            "y": 440.0
-          },
-          {
-            "x": 190.0,
-            "y": 580.0
-          },
-          {
-            "x": 130.0,
-            "y": 580.0
-          },
-          {
-            "x": 130.0,
-            "y": 590.0
+            "x": 120.0,
+            "y": 700.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C2"
+          "compName": "GUIand41#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#122",
-        "path": [
-          {
-            "x": 185.0,
-            "y": 450.0
-          },
-          {
-            "x": 185.0,
-            "y": 575.0
-          },
-          {
-            "x": 125.0,
-            "y": 575.0
-          },
-          {
-            "x": 125.0,
-            "y": 600.0
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C4"
+          "compName": "GUIandor414#1",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#120",
+        "name": "unnamedWire#80",
         "path": [
-          {
-            "x": 175.0,
-            "y": 360.0
-          },
-          {
-            "x": 175.0,
-            "y": 415.0
-          },
-          {
-            "x": 115.0,
-            "y": 415.0
-          },
           {
             "x": 115.0,
-            "y": 470.0
+            "y": 710.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C1"
+          "compName": "GUIandor414#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#81",
         "path": [
-          {
-            "x": 190.0,
-            "y": 590.0
-          },
-          {
-            "x": 190.0,
-            "y": 730.0
-          },
-          {
-            "x": 130.0,
-            "y": 730.0
-          },
           {
             "x": 130.0,
-            "y": 740.0
+            "y": 830.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C2"
+          "compName": "GUIandor414#2",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#82",
         "path": [
-          {
-            "x": 185.0,
-            "y": 600.0
-          },
-          {
-            "x": 185.0,
-            "y": 725.0
-          },
-          {
-            "x": 125.0,
-            "y": 725.0
-          },
           {
             "x": 125.0,
-            "y": 750.0
+            "y": 840.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A2"
+          "compName": "GUIandor414#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#83",
         "path": [
           {
-            "x": 125.0,
-            "y": 390.0
+            "x": 120.0,
+            "y": 850.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C3"
+          "compName": "GUIandor414#2",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#123",
+        "name": "unnamedWire#84",
         "path": [
           {
-            "x": 180.0,
-            "y": 460.0
-          },
-          {
-            "x": 180.0,
-            "y": 570.0
-          },
-          {
-            "x": 120.0,
-            "y": 570.0
-          },
-          {
-            "x": 120.0,
-            "y": 610.0
+            "x": 115.0,
+            "y": 860.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#85",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#86",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C4"
+          "compName": "GUIand41#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#124",
-        "path": [
-          {
-            "x": 175.0,
-            "y": 470.0
-          },
-          {
-            "x": 175.0,
-            "y": 565.0
-          },
-          {
-            "x": 115.0,
-            "y": 565.0
-          },
-          {
-            "x": 115.0,
-            "y": 620.0
-          }
-        ]
+        "name": "unnamedWire#87",
+        "path": []
       },
       {
         "pin1": {
@@ -2732,62 +2815,35 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
+          "compName": "GUIand41#2",
           "pinName": "A4"
         },
-        "name": "unnamedWire#72",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 410.0
-          }
-        ]
+        "name": "unnamedWire#88",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB1"
+          "compName": "GUIandor414#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#129",
-        "path": [
-          {
-            "x": 190.0,
-            "y": 740.0
-          },
-          {
-            "x": 190.0,
-            "y": 880.0
-          },
-          {
-            "x": 325.0,
-            "y": 880.0
-          },
-          {
-            "x": 325.0,
-            "y": 450.0
-          }
-        ]
+        "name": "unnamedWire#89",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A3"
+          "compName": "GUIand41#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#71",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 400.0
-          }
-        ]
+        "name": "unnamedWire#9",
+        "path": []
       },
       {
         "pin1": {
@@ -2795,163 +2851,124 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#3",
           "pinName": "A2"
         },
-        "name": "unnamedWire#74",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 540.0
-          }
-        ]
+        "name": "unnamedWire#90",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C3"
+          "compName": "GUIandor414#3",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#127",
-        "path": [
-          {
-            "x": 180.0,
-            "y": 610.0
-          },
-          {
-            "x": 180.0,
-            "y": 720.0
-          },
-          {
-            "x": 120.0,
-            "y": 720.0
-          },
-          {
-            "x": 120.0,
-            "y": 760.0
-          }
-        ]
+        "name": "unnamedWire#91",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#3",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#92",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
           "pinName": "A1"
         },
-        "name": "unnamedWire#73",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 530.0
-          }
-        ]
+        "name": "unnamedWire#93",
+        "path": []
       },
       {
         "pin1": {
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "GUIandor414#4",
-          "pinName": "Y4"
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#94",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C4"
+          "compName": "GUIandor414#4",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#128",
-        "path": [
-          {
-            "x": 175.0,
-            "y": 620.0
-          },
-          {
-            "x": 175.0,
-            "y": 715.0
-          },
-          {
-            "x": 115.0,
-            "y": 715.0
-          },
-          {
-            "x": 115.0,
-            "y": 770.0
-          }
-        ]
+        "name": "unnamedWire#95",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#4",
           "pinName": "A4"
         },
-        "name": "unnamedWire#76",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 560.0
-          }
-        ]
+        "name": "unnamedWire#96",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A3"
+          "compName": "GUIandor414#5",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#75",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 550.0
-          }
-        ]
+        "name": "unnamedWire#97",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#29",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIandor414#5",
           "pinName": "A2"
         },
-        "name": "unnamedWire#78",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 690.0
-          }
-        ]
+        "name": "unnamedWire#98",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A1"
+          "compName": "GUIandor414#5",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#77",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 680.0
-          }
-        ]
+        "name": "unnamedWire#99",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIram2",
     "centerTextHeight": 5.0,
@@ -2959,30 +2976,30 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {
       "c00": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch4#0"
         }
       },
       "c11": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch4#3"
         }
       },
       "c10": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch4#2"
         }
       },
       "c01": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch4#1"
         }
@@ -2990,7 +3007,7 @@ mograsim version: 0.1.3
     },
     "atomicHighLevelStates": {
       "q": {
-        "id": "bitVectorSplitting",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler",
         "params": {
           "vectorPartTargets": [
             "c11.q",
@@ -3007,5 +3024,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index e5e71cc..527fc35 100644 (file)
@@ -1,71 +1,78 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 130.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "QA1",
-      "logicWidth": 1
+      "name": "A0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "QB2",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "QB1",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "QA3",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 75.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "QB4",
-      "logicWidth": 1
+      "name": "B0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "QA2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 65.0
       },
-      "name": "QB3",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "QA4",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -73,271 +80,261 @@ mograsim version: 0.1.3
         "y": 95.0
       },
       "name": "D1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 105.0
       },
-      "name": "B0",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 115.0
       },
-      "name": "WE",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 105.0
+        "y": 125.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "A0",
-      "logicWidth": 1
+      "name": "QA1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 55.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "QA2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 115.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "QA3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "QA4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 65.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "QB1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 125.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "QB2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 65.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "QB3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 75.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "QB4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 85.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUIand41",
+        "name": "GUIand41#0",
         "pos": {
-          "x": 69.0,
-          "y": 854.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 150.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUIand41",
+        "name": "GUIand41#1",
         "pos": {
-          "x": 64.0,
-          "y": 844.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 375.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "GUIand41",
+        "name": "GUIand41#2",
         "pos": {
-          "x": 39.0,
-          "y": 484.0
-        },
-        "params": 1
+          "x": 155.0,
+          "y": 325.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUIandor414",
+        "name": "GUIandor414#0",
         "pos": {
-          "x": 74.0,
-          "y": 864.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 485.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUIandor414",
+        "name": "GUIandor414#1",
         "pos": {
-          "x": 49.0,
-          "y": 504.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 635.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "GUIandor414",
+        "name": "GUIandor414#2",
         "pos": {
-          "x": 44.0,
-          "y": 494.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 785.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "id": "GUIandor414",
+        "name": "GUIandor414#3",
         "pos": {
-          "x": 54.0,
-          "y": 514.0
-        },
-        "params": 1
+          "x": 155.0,
+          "y": 435.0
+        }
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#2",
+        "id": "GUIandor414",
+        "name": "GUIandor414#4",
         "pos": {
           "x": 155.0,
-          "y": 325.0
+          "y": 585.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIandor414",
+        "name": "GUIandor414#5",
         "pos": {
-          "x": 224.0,
-          "y": 164.0
-        },
-        "params": 1
+          "x": 155.0,
+          "y": 735.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#0",
         "pos": {
-          "x": 229.0,
-          "y": 154.0
-        },
-        "params": 1
+          "x": 55.0,
+          "y": 45.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#1",
         "pos": {
-          "x": 214.0,
-          "y": 184.0
-        },
-        "params": 1
+          "x": 55.0,
+          "y": 150.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUIram2",
+        "name": "GUIram2#0",
         "pos": {
-          "x": 219.0,
-          "y": 174.0
-        },
-        "params": 1
+          "x": 80.0,
+          "y": 330.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "GUIram2",
+        "name": "GUIram2#1",
         "pos": {
-          "x": 64.0,
-          "y": 544.0
-        },
-        "params": 1
+          "x": 80.0,
+          "y": 480.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "GUIram2",
+        "name": "GUIram2#2",
         "pos": {
-          "x": 59.0,
-          "y": 534.0
-        },
-        "params": 1
+          "x": 80.0,
+          "y": 630.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "GUIram2",
+        "name": "GUIram2#3",
         "pos": {
-          "x": 74.0,
-          "y": 564.0
-        },
-        "params": 1
+          "x": 80.0,
+          "y": 780.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 69.0,
-          "y": 554.0
+          "x": 229.0,
+          "y": 154.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
-        "pos": {
-          "x": 64.0,
-          "y": 694.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 59.0,
-          "y": 684.0
+          "x": 224.0,
+          "y": 164.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#10",
         "pos": {
           "x": 69.0,
@@ -346,15 +343,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 235.0,
-          "y": 150.0
-        }
+          "x": 74.0,
+          "y": 714.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#12",
         "pos": {
           "x": 59.0,
@@ -363,364 +361,520 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 250.0,
-          "y": 375.0
-        }
+          "x": 64.0,
+          "y": 844.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
+        "pos": {
+          "x": 69.0,
+          "y": 854.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
           "x": 74.0,
-          "y": 714.0
+          "y": 864.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 155.0,
-          "y": 735.0
-        }
+          "x": 39.0,
+          "y": 484.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#25",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#17",
         "pos": {
           "x": 44.0,
-          "y": 349.0
+          "y": 494.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 39.0,
-          "y": 334.0
+          "x": 49.0,
+          "y": 504.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 155.0,
-          "y": 435.0
-        }
+          "x": 54.0,
+          "y": 514.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#27",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 54.0,
-          "y": 749.0
+          "x": 219.0,
+          "y": 174.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 155.0,
-          "y": 585.0
-        }
+          "x": 39.0,
+          "y": 634.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 49.0,
-          "y": 649.0
+          "x": 44.0,
+          "y": 644.0
         },
         "params": 1
       },
       {
-        "id": "GUIram2",
-        "name": "GUIram2#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "pos": {
-          "x": 80.0,
-          "y": 780.0
-        }
+          "x": 49.0,
+          "y": 654.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIram2",
-        "name": "GUIram2#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#23",
         "pos": {
-          "x": 80.0,
-          "y": 630.0
-        }
+          "x": 54.0,
+          "y": 664.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 55.0,
-          "y": 150.0
-        }
+          "x": 39.0,
+          "y": 334.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIram2",
-        "name": "GUIram2#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "pos": {
-          "x": 80.0,
-          "y": 480.0
-        }
+          "x": 44.0,
+          "y": 349.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIram2",
-        "name": "GUIram2#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 80.0,
-          "y": 330.0
-        }
+          "x": 49.0,
+          "y": 649.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#27",
         "pos": {
-          "x": 250.0,
-          "y": 635.0
-        }
+          "x": 54.0,
+          "y": 749.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 55.0,
-          "y": 45.0
-        }
+          "x": 214.0,
+          "y": 184.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 250.0,
-          "y": 785.0
-        }
+          "x": 59.0,
+          "y": 534.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 250.0,
-          "y": 485.0
-        }
+          "x": 64.0,
+          "y": 544.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 44.0,
-          "y": 644.0
+          "x": 69.0,
+          "y": 554.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 39.0,
-          "y": 634.0
+          "x": 74.0,
+          "y": 564.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 54.0,
-          "y": 664.0
+          "x": 59.0,
+          "y": 684.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 49.0,
-          "y": 654.0
+          "x": 64.0,
+          "y": 694.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "B1"
-        },
-        "name": "unnamedWire#36",
-        "path": []
-      },
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A0"
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "B0"
+          "compName": "GUIdemux2#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "A1"
+          "compName": "GUIdemux2#0",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 45.0,
-            "y": 795.0
+            "x": 10.0,
+            "y": 150.0
+          },
+          {
+            "x": 10.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "A0"
+          "compName": "GUIand41#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#0",
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#100",
         "path": [
           {
-            "x": 40.0,
-            "y": 785.0
+            "x": 140.0,
+            "y": 365.0
+          },
+          {
+            "x": 140.0,
+            "y": 360.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUIram2#1",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "B0"
+          "compName": "GUIandor414#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#101",
         "path": [
           {
-            "x": 50.0,
-            "y": 805.0
+            "x": 140.0,
+            "y": 485.0
+          },
+          {
+            "x": 140.0,
+            "y": 480.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
+          "compName": "GUIram2#1",
           "pinName": "QA2"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
+          "compName": "GUIandor414#3",
           "pinName": "A2"
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#102",
         "path": [
           {
             "x": 140.0,
-            "y": 795.0
+            "y": 495.0
           },
           {
             "x": 140.0,
-            "y": 790.0
+            "y": 490.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
+          "compName": "GUIram2#1",
           "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
+          "compName": "GUIandor414#3",
           "pinName": "A3"
         },
-        "name": "unnamedWire#111",
+        "name": "unnamedWire#103",
         "path": [
           {
             "x": 140.0,
-            "y": 805.0
+            "y": 505.0
           },
           {
             "x": 140.0,
-            "y": 800.0
+            "y": 500.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
-          "pinName": "Y2"
+          "compName": "GUIram2#1",
+          "pinName": "QA4"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C2"
+          "compName": "GUIandor414#3",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#114",
+        "name": "unnamedWire#104",
         "path": [
           {
-            "x": 300.0,
-            "y": 390.0
+            "x": 140.0,
+            "y": 515.0
           },
           {
-            "x": 300.0,
-            "y": 440.0
+            "x": 140.0,
+            "y": 510.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QA1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#105",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 635.0
           },
           {
-            "x": 240.0,
-            "y": 440.0
+            "x": 140.0,
+            "y": 630.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QA2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#106",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 645.0
           },
           {
-            "x": 240.0,
-            "y": 500.0
+            "x": 140.0,
+            "y": 640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
-          "pinName": "Y3"
+          "compName": "GUIram2#2",
+          "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C3"
+          "compName": "GUIandor414#4",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#115",
+        "name": "unnamedWire#107",
         "path": [
           {
-            "x": 295.0,
-            "y": 400.0
+            "x": 140.0,
+            "y": 655.0
           },
           {
-            "x": 295.0,
-            "y": 435.0
+            "x": 140.0,
+            "y": 650.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#108",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 665.0
           },
           {
-            "x": 235.0,
-            "y": 435.0
+            "x": 140.0,
+            "y": 660.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#3",
+          "pinName": "QA1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#109",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 785.0
           },
           {
-            "x": 235.0,
-            "y": 510.0
+            "x": 140.0,
+            "y": 780.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#3",
+          "pinName": "QA2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#110",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 795.0
+          },
+          {
+            "x": 140.0,
+            "y": 790.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#3",
+          "pinName": "QA3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#111",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 805.0
+          },
+          {
+            "x": 140.0,
+            "y": 800.0
           }
         ]
       },
@@ -776,76 +930,59 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIand41#1",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIandor414#0",
           "pinName": "C2"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#114",
         "path": [
           {
             "x": 300.0,
-            "y": 500.0
+            "y": 390.0
           },
           {
             "x": 300.0,
-            "y": 590.0
+            "y": 440.0
           },
           {
             "x": 240.0,
-            "y": 590.0
+            "y": 440.0
           },
           {
             "x": 240.0,
-            "y": 650.0
+            "y": 500.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIand41#1",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIandor414#0",
           "pinName": "C3"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#115",
         "path": [
           {
             "x": 295.0,
-            "y": 510.0
+            "y": 400.0
           },
           {
             "x": 295.0,
-            "y": 585.0
+            "y": 435.0
           },
           {
             "x": 235.0,
-            "y": 585.0
+            "y": 435.0
           },
           {
             "x": 235.0,
-            "y": 660.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "B1"
-        },
-        "name": "unnamedWire#41",
-        "path": [
-          {
-            "x": 55.0,
-            "y": 815.0
+            "y": 510.0
           }
         ]
       },
@@ -878,18 +1015,6 @@ mograsim version: 0.1.3
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
-        },
-        "name": "unnamedWire#40",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUIandor414#0",
@@ -921,445 +1046,338 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
-        },
-        "name": "unnamedWire#43",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
+          "compName": "GUIandor414#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#118",
         "path": [
           {
-            "x": 40.0,
-            "y": 250.0
+            "x": 300.0,
+            "y": 500.0
+          },
+          {
+            "x": 300.0,
+            "y": 590.0
+          },
+          {
+            "x": 240.0,
+            "y": 590.0
+          },
+          {
+            "x": 240.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D1"
+          "compName": "GUIandor414#1",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#119",
         "path": [
           {
-            "x": 60.0,
-            "y": 385.0
+            "x": 295.0,
+            "y": 510.0
+          },
+          {
+            "x": 295.0,
+            "y": 585.0
+          },
+          {
+            "x": 235.0,
+            "y": 585.0
+          },
+          {
+            "x": 235.0,
+            "y": 660.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
-        },
-        "name": "unnamedWire#44",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "pinName": "WE"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D3"
+          "compName": "GUIand41#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 70.0,
-            "y": 405.0
+            "x": 15.0,
+            "y": 850.0
+          },
+          {
+            "x": 15.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D2"
+          "compName": "GUIandor414#1",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#120",
         "path": [
           {
-            "x": 65.0,
-            "y": 395.0
+            "x": 290.0,
+            "y": 520.0
+          },
+          {
+            "x": 290.0,
+            "y": 580.0
+          },
+          {
+            "x": 230.0,
+            "y": 580.0
+          },
+          {
+            "x": 230.0,
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D1"
-        },
-        "name": "unnamedWire#49",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D4"
+          "compName": "GUIandor414#2",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#121",
         "path": [
           {
-            "x": 75.0,
-            "y": 415.0
+            "x": 305.0,
+            "y": 640.0
+          },
+          {
+            "x": 305.0,
+            "y": 745.0
+          },
+          {
+            "x": 245.0,
+            "y": 745.0
+          },
+          {
+            "x": 245.0,
+            "y": 790.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA4"
+          "compName": "GUIandor414#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A4"
+          "compName": "GUIandor414#2",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#100",
+        "name": "unnamedWire#122",
         "path": [
           {
-            "x": 140.0,
-            "y": 365.0
+            "x": 300.0,
+            "y": 650.0
           },
           {
-            "x": 140.0,
-            "y": 360.0
+            "x": 300.0,
+            "y": 740.0
+          },
+          {
+            "x": 240.0,
+            "y": 740.0
+          },
+          {
+            "x": 240.0,
+            "y": 800.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA3"
+          "compName": "GUIandor414#1",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A3"
+          "compName": "GUIandor414#2",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#123",
         "path": [
           {
-            "x": 140.0,
-            "y": 505.0
+            "x": 295.0,
+            "y": 660.0
           },
           {
-            "x": 140.0,
-            "y": 500.0
+            "x": 295.0,
+            "y": 735.0
+          },
+          {
+            "x": 235.0,
+            "y": 735.0
+          },
+          {
+            "x": 235.0,
+            "y": 810.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA4"
+          "compName": "GUIandor414#1",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A4"
+          "compName": "GUIandor414#2",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#124",
         "path": [
           {
-            "x": 140.0,
-            "y": 515.0
-          },
-          {
-            "x": 140.0,
-            "y": 510.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA1"
-        },
-        "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A1"
-        },
-        "name": "unnamedWire#101",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 485.0
+            "x": 290.0,
+            "y": 670.0
           },
           {
-            "x": 140.0,
-            "y": 480.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA2"
-        },
-        "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A2"
-        },
-        "name": "unnamedWire#102",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 495.0
+            "x": 290.0,
+            "y": 730.0
           },
           {
-            "x": 140.0,
-            "y": 490.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D2"
-        },
-        "name": "unnamedWire#50",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA3"
-        },
-        "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#107",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 655.0
+            "x": 230.0,
+            "y": 730.0
           },
           {
-            "x": 140.0,
-            "y": 650.0
+            "x": 230.0,
+            "y": 820.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA4"
+          "compName": "GUIandor414#2",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A4"
+          "compName": "_submodelinterface",
+          "pinName": "QB1"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#125",
         "path": [
           {
-            "x": 140.0,
-            "y": 665.0
+            "x": 330.0,
+            "y": 790.0
           },
           {
-            "x": 140.0,
-            "y": 660.0
+            "x": 330.0,
+            "y": 450.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D4"
-        },
-        "name": "unnamedWire#52",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA1"
+          "compName": "GUIandor414#2",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "QB2"
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#126",
         "path": [
           {
-            "x": 140.0,
-            "y": 635.0
+            "x": 335.0,
+            "y": 800.0
           },
           {
-            "x": 140.0,
-            "y": 630.0
+            "x": 335.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D3"
-        },
-        "name": "unnamedWire#51",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA2"
+          "compName": "GUIandor414#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A2"
+          "compName": "_submodelinterface",
+          "pinName": "QB3"
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#127",
         "path": [
           {
-            "x": 140.0,
-            "y": 645.0
+            "x": 340.0,
+            "y": 810.0
           },
           {
-            "x": 140.0,
-            "y": 640.0
+            "x": 340.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "name": "unnamedWire#54",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "name": "unnamedWire#53",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
-        },
-        "name": "unnamedWire#56",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QA1"
+          "compName": "GUIandor414#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "QB4"
         },
-        "name": "unnamedWire#109",
+        "name": "unnamedWire#128",
         "path": [
           {
-            "x": 140.0,
-            "y": 785.0
+            "x": 345.0,
+            "y": 820.0
           },
           {
-            "x": 140.0,
-            "y": 780.0
+            "x": 345.0,
+            "y": 750.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "name": "unnamedWire#55",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y2"
+          "compName": "GUIand41#2",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "WE"
+          "compName": "GUIandor414#3",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#129",
         "path": [
           {
-            "x": 285.0,
-            "y": 165.0
+            "x": 210.0,
+            "y": 330.0
           },
           {
-            "x": 285.0,
-            "y": 225.0
+            "x": 210.0,
+            "y": 430.0
           },
           {
-            "x": 30.0,
-            "y": 225.0
+            "x": 150.0,
+            "y": 430.0
           },
           {
-            "x": 30.0,
-            "y": 525.0
+            "x": 150.0,
+            "y": 440.0
           }
         ]
       },
@@ -1394,219 +1412,548 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y4"
+          "compName": "GUIand41#2",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "WE"
+          "compName": "GUIandor414#3",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#130",
         "path": [
           {
-            "x": 275.0,
-            "y": 185.0
+            "x": 205.0,
+            "y": 340.0
           },
           {
-            "x": 275.0,
-            "y": 215.0
+            "x": 205.0,
+            "y": 425.0
           },
           {
-            "x": 20.0,
-            "y": 215.0
+            "x": 145.0,
+            "y": 425.0
           },
           {
-            "x": 20.0,
-            "y": 825.0
+            "x": 145.0,
+            "y": 450.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#0",
+          "compName": "GUIand41#2",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "WE"
+          "compName": "GUIandor414#3",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#131",
         "path": [
           {
-            "x": 280.0,
-            "y": 175.0
+            "x": 200.0,
+            "y": 350.0
           },
           {
-            "x": 280.0,
-            "y": 220.0
+            "x": 200.0,
+            "y": 420.0
           },
           {
-            "x": 25.0,
-            "y": 220.0
+            "x": 140.0,
+            "y": 420.0
           },
           {
-            "x": 25.0,
-            "y": 675.0
+            "x": 140.0,
+            "y": 460.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIand41#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "A0"
+          "compName": "GUIandor414#3",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#18",
-        "path": []
+        "name": "unnamedWire#132",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 360.0
+          },
+          {
+            "x": 195.0,
+            "y": 415.0
+          },
+          {
+            "x": 135.0,
+            "y": 415.0
+          },
+          {
+            "x": 135.0,
+            "y": 470.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#17",
-        "path": []
+        "name": "unnamedWire#133",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 440.0
+          },
+          {
+            "x": 210.0,
+            "y": 580.0
+          },
+          {
+            "x": 150.0,
+            "y": 580.0
+          },
+          {
+            "x": 150.0,
+            "y": 590.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#19",
-        "path": []
+        "name": "unnamedWire#134",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 450.0
+          },
+          {
+            "x": 205.0,
+            "y": 575.0
+          },
+          {
+            "x": 145.0,
+            "y": 575.0
+          },
+          {
+            "x": 145.0,
+            "y": 600.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "B0"
+          "compName": "GUIandor414#4",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#135",
         "path": [
           {
-            "x": 50.0,
-            "y": 355.0
+            "x": 200.0,
+            "y": 460.0
+          },
+          {
+            "x": 200.0,
+            "y": 570.0
+          },
+          {
+            "x": 140.0,
+            "y": 570.0
+          },
+          {
+            "x": 140.0,
+            "y": 610.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "A1"
+          "compName": "GUIandor414#4",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#136",
         "path": [
           {
-            "x": 45.0,
-            "y": 345.0
+            "x": 195.0,
+            "y": 470.0
+          },
+          {
+            "x": 195.0,
+            "y": 565.0
+          },
+          {
+            "x": 135.0,
+            "y": 565.0
+          },
+          {
+            "x": 135.0,
+            "y": 620.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "A0"
+          "compName": "GUIandor414#5",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#137",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 590.0
+          },
+          {
+            "x": 210.0,
+            "y": 730.0
+          },
+          {
+            "x": 150.0,
+            "y": 730.0
+          },
+          {
+            "x": 150.0,
+            "y": 740.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "B1"
+          "compName": "GUIandor414#5",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#138",
         "path": [
           {
-            "x": 55.0,
-            "y": 365.0
+            "x": 205.0,
+            "y": 600.0
+          },
+          {
+            "x": 205.0,
+            "y": 725.0
+          },
+          {
+            "x": 145.0,
+            "y": 725.0
+          },
+          {
+            "x": 145.0,
+            "y": 750.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "B0"
-        },
-        "name": "unnamedWire#25",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#139",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 610.0
+          },
+          {
+            "x": 200.0,
+            "y": 720.0
+          },
+          {
+            "x": 140.0,
+            "y": 720.0
+          },
+          {
+            "x": 140.0,
+            "y": 760.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y2"
         },
         "pin2": {
           "compName": "GUIram2#1",
-          "pinName": "A1"
+          "pinName": "WE"
         },
-        "name": "unnamedWire#24",
-        "path": []
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 285.0,
+            "y": 165.0
+          },
+          {
+            "x": 285.0,
+            "y": 225.0
+          },
+          {
+            "x": 30.0,
+            "y": 225.0
+          },
+          {
+            "x": 30.0,
+            "y": 525.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#27",
-        "path": []
+        "name": "unnamedWire#140",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 620.0
+          },
+          {
+            "x": 195.0,
+            "y": 715.0
+          },
+          {
+            "x": 135.0,
+            "y": 715.0
+          },
+          {
+            "x": 135.0,
+            "y": 770.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "GUIandor414#5",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA1"
+        },
+        "name": "unnamedWire#141",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 740.0
+          },
+          {
+            "x": 210.0,
+            "y": 880.0
+          },
+          {
+            "x": 310.0,
+            "y": 880.0
+          },
+          {
+            "x": 310.0,
+            "y": 50.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#5",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA2"
+        },
+        "name": "unnamedWire#142",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 750.0
+          },
+          {
+            "x": 205.0,
+            "y": 885.0
+          },
+          {
+            "x": 315.0,
+            "y": 885.0
+          },
+          {
+            "x": 315.0,
+            "y": 150.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#5",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA3"
+        },
+        "name": "unnamedWire#143",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 760.0
+          },
+          {
+            "x": 200.0,
+            "y": 890.0
+          },
+          {
+            "x": 320.0,
+            "y": 890.0
+          },
+          {
+            "x": 320.0,
+            "y": 250.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#5",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA4"
+        },
+        "name": "unnamedWire#144",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 770.0
+          },
+          {
+            "x": 195.0,
+            "y": 895.0
+          },
+          {
+            "x": 325.0,
+            "y": 895.0
+          },
+          {
+            "x": 325.0,
+            "y": 350.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIram2#2",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 280.0,
+            "y": 175.0
+          },
+          {
+            "x": 280.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 675.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIram2#3",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 275.0,
+            "y": 185.0
+          },
+          {
+            "x": 275.0,
+            "y": 215.0
+          },
+          {
+            "x": 20.0,
+            "y": 215.0
+          },
+          {
+            "x": 20.0,
+            "y": 825.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUIram2#0",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
@@ -1615,23 +1962,66 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B2"
+          "pinName": "B0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
+          "compName": "GUIdemux2#1",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 450.0
+          },
+          {
+            "x": 5.0,
+            "y": 155.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
-        "name": "unnamedWire#30",
-        "path": []
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 345.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "B0"
+        },
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 355.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1639,1699 +2029,1330 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
+          "compName": "GUIram2#0",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#22",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 365.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "A0"
+        },
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#22",
+          "compName": "GUIram2#1",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#24",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
-        "name": "unnamedWire#31",
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "B0"
+        },
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "A1"
+          "compName": "GUIram2#1",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "WireCrossPoint#20",
           "pinName": ""
         },
+        "name": "unnamedWire#27",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "A0"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "B"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#79",
-        "path": [
-          {
-            "x": 220.0,
-            "y": 720.0
-          }
-        ]
+        "name": "unnamedWire#29",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB1"
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A1"
+          "compName": "GUIdemux2#1",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 140.0,
-            "y": 375.0
+            "x": 10.0,
+            "y": 550.0
           },
           {
-            "x": 140.0,
-            "y": 380.0
+            "x": 10.0,
+            "y": 165.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#80",
-        "path": [
-          {
-            "x": 215.0,
-            "y": 870.0
-          }
-        ]
+        "name": "unnamedWire#30",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
-        "name": "unnamedWire#83",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 395.0
-          },
-          {
-            "x": 140.0,
-            "y": 400.0
-          }
-        ]
+        "name": "unnamedWire#31",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#82",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 385.0
-          },
-          {
-            "x": 140.0,
-            "y": 390.0
-          }
-        ]
+        "name": "unnamedWire#32",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB1"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A1"
+          "compName": "GUIram2#2",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#85",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 525.0
-          },
-          {
-            "x": 140.0,
-            "y": 530.0
-          }
-        ]
+        "name": "unnamedWire#33",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A4"
+          "compName": "GUIram2#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#84",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 405.0
-          },
-          {
-            "x": 140.0,
-            "y": 410.0
-          }
-        ]
+        "name": "unnamedWire#34",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A3"
+          "compName": "GUIram2#2",
+          "pinName": "B0"
         },
-        "name": "unnamedWire#87",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 545.0
-          },
-          {
-            "x": 140.0,
-            "y": 550.0
-          }
-        ]
+        "name": "unnamedWire#35",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A2"
+          "compName": "GUIram2#2",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#86",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 535.0
-          },
-          {
-            "x": 140.0,
-            "y": 540.0
-          }
-        ]
+        "name": "unnamedWire#36",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB1"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A1"
+          "compName": "GUIram2#3",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 140.0,
-            "y": 675.0
-          },
-          {
-            "x": 140.0,
-            "y": 680.0
+            "x": 40.0,
+            "y": 785.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A4"
+          "compName": "GUIram2#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#38",
         "path": [
           {
-            "x": 140.0,
-            "y": 555.0
-          },
-          {
-            "x": 140.0,
-            "y": 560.0
+            "x": 45.0,
+            "y": 795.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C4"
+          "compName": "GUIram2#3",
+          "pinName": "B0"
         },
-        "name": "unnamedWire#140",
+        "name": "unnamedWire#39",
         "path": [
           {
-            "x": 195.0,
-            "y": 620.0
-          },
-          {
-            "x": 195.0,
-            "y": 715.0
-          },
-          {
-            "x": 135.0,
-            "y": 715.0
-          },
-          {
-            "x": 135.0,
-            "y": 770.0
+            "x": 50.0,
+            "y": 805.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIdemux2#1",
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA3"
-        },
-        "name": "unnamedWire#143",
-        "path": [
-          {
-            "x": 200.0,
-            "y": 760.0
-          },
-          {
-            "x": 200.0,
-            "y": 890.0
-          },
-          {
-            "x": 320.0,
-            "y": 890.0
-          },
-          {
-            "x": 320.0,
-            "y": 250.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA4"
+          "compName": "GUIram2#3",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#144",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 195.0,
-            "y": 770.0
-          },
-          {
-            "x": 195.0,
-            "y": 895.0
-          },
-          {
-            "x": 325.0,
-            "y": 895.0
-          },
-          {
-            "x": 325.0,
-            "y": 350.0
+            "x": 55.0,
+            "y": 815.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y11"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 250.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA1"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#141",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 740.0
-          },
-          {
-            "x": 210.0,
-            "y": 880.0
-          },
-          {
-            "x": 310.0,
-            "y": 880.0
-          },
-          {
-            "x": 310.0,
-            "y": 50.0
-          }
-        ]
+        "name": "unnamedWire#43",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y10"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA2"
+          "compName": "GUIram2#0",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#142",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 205.0,
-            "y": 750.0
-          },
-          {
-            "x": 205.0,
-            "y": 885.0
-          },
-          {
-            "x": 315.0,
-            "y": 885.0
-          },
-          {
-            "x": 315.0,
-            "y": 150.0
+            "x": 60.0,
+            "y": 385.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A2"
+          "compName": "GUIram2#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#46",
         "path": [
           {
-            "x": 140.0,
-            "y": 685.0
-          },
-          {
-            "x": 140.0,
-            "y": 690.0
+            "x": 65.0,
+            "y": 395.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A4"
+          "compName": "GUIram2#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#92",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 140.0,
-            "y": 705.0
-          },
-          {
-            "x": 140.0,
-            "y": 710.0
+            "x": 70.0,
+            "y": 405.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A3"
+          "compName": "GUIram2#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#48",
         "path": [
           {
-            "x": 140.0,
-            "y": 695.0
-          },
-          {
-            "x": 140.0,
-            "y": 700.0
+            "x": 75.0,
+            "y": 415.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S1"
+          "compName": "GUIram2#1",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 150.0
-          },
-          {
-            "x": 10.0,
-            "y": 60.0
-          }
-        ]
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB2"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y01"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#94",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 835.0
-          },
-          {
-            "x": 140.0,
-            "y": 840.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A0"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S0"
+          "compName": "GUIram2#1",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB1"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A1"
+          "compName": "GUIram2#1",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#93",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 825.0
-          },
-          {
-            "x": 140.0,
-            "y": 830.0
-          }
-        ]
+        "name": "unnamedWire#51",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#52",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#53",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#96",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 855.0
-          },
-          {
-            "x": 140.0,
-            "y": 860.0
-          }
-        ]
+        "name": "unnamedWire#54",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#95",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 845.0
-          },
-          {
-            "x": 140.0,
-            "y": 850.0
-          }
-        ]
+        "name": "unnamedWire#55",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y01"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A3"
+          "compName": "GUIram2#2",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA2"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A2"
+          "compName": "GUIram2#2",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#98",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 345.0
-          },
-          {
-            "x": 140.0,
-            "y": 340.0
-          }
-        ]
+        "name": "unnamedWire#58",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y00"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIram2#2",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#59",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA1"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y10"
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#97",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 335.0
-          },
-          {
-            "x": 140.0,
-            "y": 330.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S1"
+          "compName": "GUIram2#2",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 550.0
-          },
-          {
-            "x": 10.0,
-            "y": 165.0
-          }
-        ]
+        "name": "unnamedWire#60",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "WE"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 850.0
-          },
-          {
-            "x": 15.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#61",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B0"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 450.0
-          },
-          {
-            "x": 5.0,
-            "y": 155.0
-          }
-        ]
+        "name": "unnamedWire#62",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA3"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#99",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 355.0
-          },
-          {
-            "x": 140.0,
-            "y": 350.0
-          }
-        ]
+        "name": "unnamedWire#64",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "D2"
+          "compName": "GUIram2#3",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "D1"
+          "compName": "GUIram2#3",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
+          "compName": "GUIram2#3",
           "pinName": "D3"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#67",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C4"
+          "compName": "GUIram2#3",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#132",
-        "path": [
-          {
-            "x": 195.0,
-            "y": 360.0
-          },
-          {
-            "x": 195.0,
-            "y": 415.0
-          },
-          {
-            "x": 135.0,
-            "y": 415.0
-          },
-          {
-            "x": 135.0,
-            "y": 470.0
-          }
-        ]
+        "name": "unnamedWire#68",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#133",
+        "name": "unnamedWire#69",
         "path": [
           {
-            "x": 210.0,
-            "y": 440.0
-          },
-          {
-            "x": 210.0,
-            "y": 580.0
-          },
-          {
-            "x": 150.0,
-            "y": 580.0
-          },
-          {
-            "x": 150.0,
-            "y": 590.0
+            "x": 60.0,
+            "y": 950.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y2"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y11"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C2"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#130",
-        "path": [
-          {
-            "x": 205.0,
-            "y": 340.0
-          },
-          {
-            "x": 205.0,
-            "y": 425.0
-          },
-          {
-            "x": 145.0,
-            "y": 425.0
-          },
-          {
-            "x": 145.0,
-            "y": 450.0
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C3"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#70",
         "path": [
           {
-            "x": 200.0,
-            "y": 350.0
-          },
-          {
-            "x": 200.0,
-            "y": 420.0
-          },
-          {
-            "x": 140.0,
-            "y": 420.0
-          },
-          {
-            "x": 140.0,
-            "y": 460.0
+            "x": 65.0,
+            "y": 1050.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y4"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C4"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#136",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 195.0,
-            "y": 470.0
-          },
-          {
-            "x": 195.0,
-            "y": 565.0
-          },
-          {
-            "x": 135.0,
-            "y": 565.0
-          },
-          {
-            "x": 135.0,
-            "y": 620.0
+            "x": 70.0,
+            "y": 1150.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#137",
+        "name": "unnamedWire#72",
         "path": [
           {
-            "x": 210.0,
-            "y": 590.0
-          },
-          {
-            "x": 210.0,
-            "y": 730.0
-          },
-          {
-            "x": 150.0,
-            "y": 730.0
-          },
-          {
-            "x": 150.0,
-            "y": 740.0
+            "x": 75.0,
+            "y": 1250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y2"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C2"
+          "compName": "GUIand41#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#134",
+        "name": "unnamedWire#73",
         "path": [
           {
-            "x": 205.0,
-            "y": 450.0
-          },
-          {
-            "x": 205.0,
-            "y": 575.0
-          },
-          {
-            "x": 145.0,
-            "y": 575.0
+            "x": 135.0,
+            "y": 50.0
           },
           {
-            "x": 145.0,
-            "y": 600.0
+            "x": 135.0,
+            "y": 370.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y3"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y01"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C3"
+          "compName": "GUIandor414#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#135",
+        "name": "unnamedWire#74",
         "path": [
           {
-            "x": 200.0,
-            "y": 460.0
-          },
-          {
-            "x": 200.0,
-            "y": 570.0
-          },
-          {
-            "x": 140.0,
-            "y": 570.0
+            "x": 130.0,
+            "y": 60.0
           },
           {
-            "x": 140.0,
-            "y": 610.0
+            "x": 130.0,
+            "y": 520.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "name": "unnamedWire#61",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "D4"
-        },
-        "name": "unnamedWire#60",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUIdemux2#0",
+          "pinName": "Y10"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "name": "unnamedWire#63",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "GUIandor414#4",
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C2"
+          "pinName": "B"
         },
-        "name": "unnamedWire#138",
+        "name": "unnamedWire#75",
         "path": [
           {
-            "x": 205.0,
-            "y": 600.0
-          },
-          {
-            "x": 205.0,
-            "y": 725.0
-          },
-          {
-            "x": 145.0,
-            "y": 725.0
+            "x": 125.0,
+            "y": 70.0
           },
           {
-            "x": 145.0,
-            "y": 750.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "name": "unnamedWire#62",
-        "path": []
+            "x": 125.0,
+            "y": 670.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y3"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y11"
         },
         "pin2": {
           "compName": "GUIandor414#5",
-          "pinName": "C3"
+          "pinName": "B"
         },
-        "name": "unnamedWire#139",
+        "name": "unnamedWire#76",
         "path": [
           {
-            "x": 200.0,
-            "y": 610.0
-          },
-          {
-            "x": 200.0,
-            "y": 720.0
-          },
-          {
-            "x": 140.0,
-            "y": 720.0
+            "x": 120.0,
+            "y": 80.0
           },
           {
-            "x": 140.0,
-            "y": 760.0
+            "x": 120.0,
+            "y": 820.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D1"
+          "compName": "GUIand41#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#65",
-        "path": []
+        "name": "unnamedWire#77",
+        "path": [
+          {
+            "x": 230.0,
+            "y": 420.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#64",
-        "path": []
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 225.0,
+            "y": 570.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D3"
+          "compName": "GUIandor414#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#67",
-        "path": []
+        "name": "unnamedWire#79",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 720.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D2"
+          "compName": "GUIand41#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#66",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIandor414#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#80",
         "path": [
           {
-            "x": 60.0,
-            "y": 950.0
+            "x": 215.0,
+            "y": 870.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D4"
-        },
-        "name": "unnamedWire#68",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y1"
+          "compName": "GUIram2#0",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C1"
+          "compName": "GUIand41#1",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#121",
+        "name": "unnamedWire#81",
         "path": [
           {
-            "x": 305.0,
-            "y": 640.0
-          },
-          {
-            "x": 305.0,
-            "y": 745.0
-          },
-          {
-            "x": 245.0,
-            "y": 745.0
+            "x": 140.0,
+            "y": 375.0
           },
           {
-            "x": 245.0,
-            "y": 790.0
+            "x": 140.0,
+            "y": 380.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y2"
+          "compName": "GUIram2#0",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C2"
+          "compName": "GUIand41#1",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#122",
+        "name": "unnamedWire#82",
         "path": [
           {
-            "x": 300.0,
-            "y": 650.0
-          },
-          {
-            "x": 300.0,
-            "y": 740.0
-          },
-          {
-            "x": 240.0,
-            "y": 740.0
+            "x": 140.0,
+            "y": 385.0
           },
           {
-            "x": 240.0,
-            "y": 800.0
+            "x": 140.0,
+            "y": 390.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
-          "pinName": "Y4"
+          "compName": "GUIram2#0",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C4"
+          "compName": "GUIand41#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#120",
+        "name": "unnamedWire#83",
         "path": [
           {
-            "x": 290.0,
-            "y": 520.0
-          },
-          {
-            "x": 290.0,
-            "y": 580.0
-          },
-          {
-            "x": 230.0,
-            "y": 580.0
+            "x": 140.0,
+            "y": 395.0
           },
           {
-            "x": 230.0,
-            "y": 670.0
+            "x": 140.0,
+            "y": 400.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y1"
+          "compName": "GUIram2#0",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB1"
+          "compName": "GUIand41#1",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#84",
         "path": [
           {
-            "x": 330.0,
-            "y": 790.0
+            "x": 140.0,
+            "y": 405.0
           },
           {
-            "x": 330.0,
-            "y": 450.0
+            "x": 140.0,
+            "y": 410.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y2"
+          "compName": "GUIram2#1",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB2"
+          "compName": "GUIandor414#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#85",
         "path": [
           {
-            "x": 335.0,
-            "y": 800.0
+            "x": 140.0,
+            "y": 525.0
           },
           {
-            "x": 335.0,
-            "y": 550.0
+            "x": 140.0,
+            "y": 530.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D2"
+          "compName": "GUIram2#1",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#86",
         "path": [
           {
-            "x": 65.0,
-            "y": 1050.0
+            "x": 140.0,
+            "y": 535.0
+          },
+          {
+            "x": 140.0,
+            "y": 540.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y3"
+          "compName": "GUIram2#1",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C3"
+          "compName": "GUIandor414#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#123",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 660.0
-          },
-          {
-            "x": 295.0,
-            "y": 735.0
-          },
+        "name": "unnamedWire#87",
+        "path": [
           {
-            "x": 235.0,
-            "y": 735.0
+            "x": 140.0,
+            "y": 545.0
           },
           {
-            "x": 235.0,
-            "y": 810.0
+            "x": 140.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y4"
+          "compName": "GUIram2#1",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C4"
+          "compName": "GUIandor414#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#124",
+        "name": "unnamedWire#88",
         "path": [
           {
-            "x": 290.0,
-            "y": 670.0
-          },
-          {
-            "x": 290.0,
-            "y": 730.0
-          },
-          {
-            "x": 230.0,
-            "y": 730.0
+            "x": 140.0,
+            "y": 555.0
           },
           {
-            "x": 230.0,
-            "y": 820.0
+            "x": 140.0,
+            "y": 560.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D4"
+          "compName": "GUIram2#2",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#89",
         "path": [
           {
-            "x": 75.0,
-            "y": 1250.0
+            "x": 140.0,
+            "y": 675.0
+          },
+          {
+            "x": 140.0,
+            "y": 680.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C1"
+          "compName": "GUIand41#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#129",
+        "name": "unnamedWire#9",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QB2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#90",
         "path": [
           {
-            "x": 210.0,
-            "y": 330.0
-          },
-          {
-            "x": 210.0,
-            "y": 430.0
-          },
-          {
-            "x": 150.0,
-            "y": 430.0
+            "x": 140.0,
+            "y": 685.0
           },
           {
-            "x": 150.0,
-            "y": 440.0
+            "x": 140.0,
+            "y": 690.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D3"
+          "compName": "GUIram2#2",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#91",
         "path": [
           {
-            "x": 70.0,
-            "y": 1150.0
+            "x": 140.0,
+            "y": 695.0
+          },
+          {
+            "x": 140.0,
+            "y": 700.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y01"
+          "compName": "GUIram2#2",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "B"
+          "compName": "GUIandor414#1",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#92",
         "path": [
           {
-            "x": 130.0,
-            "y": 60.0
+            "x": 140.0,
+            "y": 705.0
           },
           {
-            "x": 130.0,
-            "y": 520.0
+            "x": 140.0,
+            "y": 710.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y3"
+          "compName": "GUIram2#3",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB3"
+          "compName": "GUIandor414#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#127",
+        "name": "unnamedWire#93",
         "path": [
           {
-            "x": 340.0,
-            "y": 810.0
+            "x": 140.0,
+            "y": 825.0
           },
           {
-            "x": 340.0,
-            "y": 650.0
+            "x": 140.0,
+            "y": 830.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y00"
+          "compName": "GUIram2#3",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "B"
+          "compName": "GUIandor414#2",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#94",
         "path": [
           {
-            "x": 135.0,
-            "y": 50.0
+            "x": 140.0,
+            "y": 835.0
           },
           {
-            "x": 135.0,
-            "y": 370.0
+            "x": 140.0,
+            "y": 840.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y4"
+          "compName": "GUIram2#3",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB4"
+          "compName": "GUIandor414#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#128",
+        "name": "unnamedWire#95",
         "path": [
           {
-            "x": 345.0,
-            "y": 820.0
+            "x": 140.0,
+            "y": 845.0
           },
           {
-            "x": 345.0,
-            "y": 750.0
+            "x": 140.0,
+            "y": 850.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y11"
+          "compName": "GUIram2#3",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "B"
+          "compName": "GUIandor414#2",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#96",
         "path": [
           {
-            "x": 120.0,
-            "y": 80.0
+            "x": 140.0,
+            "y": 855.0
           },
           {
-            "x": 120.0,
-            "y": 820.0
+            "x": 140.0,
+            "y": 860.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y10"
+          "compName": "GUIram2#0",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "B"
+          "compName": "GUIand41#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#97",
         "path": [
           {
-            "x": 125.0,
-            "y": 70.0
+            "x": 140.0,
+            "y": 335.0
           },
           {
-            "x": 125.0,
-            "y": 670.0
+            "x": 140.0,
+            "y": 330.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIram2#0",
+          "pinName": "QA2"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "B"
+          "compName": "GUIand41#2",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#98",
         "path": [
           {
-            "x": 225.0,
-            "y": 570.0
+            "x": 140.0,
+            "y": 345.0
+          },
+          {
+            "x": 140.0,
+            "y": 340.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIram2#0",
+          "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "B"
+          "compName": "GUIand41#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#99",
         "path": [
           {
-            "x": 230.0,
-            "y": 420.0
+            "x": 140.0,
+            "y": 355.0
+          },
+          {
+            "x": 140.0,
+            "y": 350.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIram4",
     "centerTextHeight": 5.0,
@@ -3339,141 +3360,141 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {
       "c00": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#0"
         }
       },
       "c11": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#3"
         }
       },
       "c10": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#2"
         }
       },
       "c01": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#1"
         }
       },
       "c1000": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#0",
           "prefix": "c10"
         }
       },
       "c1011": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#3",
           "prefix": "c10"
         }
       },
       "c1110": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#2",
           "prefix": "c11"
         }
       },
       "c1001": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#1",
           "prefix": "c10"
         }
       },
       "c1100": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#0",
           "prefix": "c11"
         }
       },
       "c1111": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#3",
           "prefix": "c11"
         }
       },
       "c0000": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#0",
           "prefix": "c00"
         }
       },
       "c0011": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#3",
           "prefix": "c00"
         }
       },
       "c0110": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#2",
           "prefix": "c01"
         }
       },
       "c0010": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#2",
           "prefix": "c00"
         }
       },
       "c1010": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#2",
           "prefix": "c10"
         }
       },
       "c0101": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#1",
           "prefix": "c01"
         }
       },
       "c0001": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#1",
           "prefix": "c00"
         }
       },
       "c0100": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#0",
           "prefix": "c01"
         }
       },
       "c0111": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#3",
           "prefix": "c01"
         }
       },
       "c1101": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#1",
           "prefix": "c11"
@@ -3482,7 +3503,7 @@ mograsim version: 0.1.3
     },
     "atomicHighLevelStates": {
       "q": {
-        "id": "bitVectorSplitting",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler",
         "params": {
           "vectorPartTargets": [
             "c11.q",
@@ -3499,5 +3520,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 26a25cf..50c7005 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "I1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,15 +17,8 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "I2",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 5.0
-      },
-      "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +26,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,14 +35,24 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "S2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#1",
         "pos": {
           "x": 35.0,
@@ -57,65 +61,43 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 60.0,
-          "y": 40.0
+          "x": 35.0,
+          "y": 55.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 35.0,
-          "y": 55.0
+          "x": 60.0,
+          "y": 40.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#9"
-      },
-      {
-        "pin1": {
           "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#8"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I2"
-        },
-        "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 15.0,
-            "y": 87.5
+            "x": 25.0,
+            "y": 12.5
           },
           {
-            "x": 15.0,
-            "y": 70.0
+            "x": 25.0,
+            "y": 35.0
           }
         ]
       },
@@ -142,60 +124,83 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "S1"
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#10"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 25.0,
-            "y": 12.5
+            "y": 62.5
           },
           {
             "x": 25.0,
-            "y": 35.0
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I1"
+          "pinName": "I2"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 25.0,
-            "y": 62.5
+            "x": 15.0,
+            "y": 87.5
           },
           {
-            "x": 25.0,
-            "y": 45.0
+            "x": 15.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#8"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
-        "name": "unnamedWire#10"
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIsel1",
     "centerTextHeight": 5.0,
@@ -203,6 +208,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index ef71748..f84c205 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 100.0,
@@ -6,50 +5,56 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 25.0
       },
-      "name": "SA",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 35.0
       },
-      "name": "SB",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 45.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 55.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 65.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 75.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,31 +62,35 @@ mograsim version: 0.1.3
         "y": 85.0
       },
       "name": "B3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 95.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 5.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "SA",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "SB",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,7 +98,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -97,7 +107,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -105,7 +116,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -113,23 +125,15 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 20.0,
-          "y": 52.5
-        },
-        "params": 1
-      },
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 20.0,
@@ -138,25 +142,25 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 20.0,
-          "y": 152.5
+          "y": 52.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 20.0,
-          "y": 102.5
+          "x": 65.0,
+          "y": 52.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#11",
         "pos": {
           "x": 65.0,
@@ -165,70 +169,70 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 65.0,
-          "y": 52.5
+          "x": 20.0,
+          "y": 102.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 6.5,
-          "y": 66.5
+          "x": 20.0,
+          "y": 152.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 6.5,
-          "y": 16.5
+          "x": 20.0,
+          "y": 27.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 4.0,
-          "y": 41.5
+          "x": 20.0,
+          "y": 77.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 6.5,
-          "y": 116.5
+          "x": 20.0,
+          "y": 127.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 4.0,
-          "y": 141.5
+          "x": 20.0,
+          "y": 177.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 4.0,
-          "y": 91.5
+          "x": 65.0,
+          "y": 2.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#9",
         "pos": {
           "x": 65.0,
@@ -237,62 +241,135 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 65.0,
-          "y": 2.5
+          "x": 6.5,
+          "y": 16.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 20.0,
-          "y": 77.5
+          "x": 6.5,
+          "y": 66.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 20.0,
-          "y": 27.5
+          "x": 6.5,
+          "y": 116.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 20.0,
-          "y": 177.5
+          "x": 4.0,
+          "y": 41.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 20.0,
-          "y": 127.5
+          "x": 4.0,
+          "y": 91.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 4.0,
+          "y": 141.5
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 62.5
+          },
+          {
+            "x": 15.0,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 17.5,
+            "y": 87.5
+          },
+          {
+            "x": 17.5,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
-        "name": "unnamedWire#14"
+        "name": "unnamedWire#11"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#12"
       },
       {
         "pin1": {
@@ -307,14 +384,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16"
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
@@ -335,14 +412,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#18"
+        "name": "unnamedWire#16"
       },
       {
         "pin1": {
@@ -355,6 +432,17 @@ mograsim version: 0.1.3
         },
         "name": "unnamedWire#17"
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18"
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#4",
@@ -368,18 +456,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 5.0,
-            "y": 192.5
+            "x": 17.5,
+            "y": 112.5
+          },
+          {
+            "x": 17.5,
+            "y": 107.5
           }
         ]
       },
@@ -396,22 +488,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": [
           {
-            "x": 45.0,
-            "y": 37.5
-          },
-          {
-            "x": 45.0,
-            "y": 17.5
+            "x": 5.0,
+            "y": 192.5
           }
         ]
       },
@@ -438,22 +526,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 50.0,
-            "y": 87.5
+            "x": 45.0,
+            "y": 37.5
           },
           {
-            "x": 50.0,
-            "y": 42.5
+            "x": 45.0,
+            "y": 17.5
           }
         ]
       },
@@ -480,22 +568,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 55.0,
-            "y": 137.5
+            "x": 50.0,
+            "y": 87.5
           },
           {
-            "x": 55.0,
-            "y": 67.5
+            "x": 50.0,
+            "y": 42.5
           }
         ]
       },
@@ -522,22 +610,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#6",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#10",
           "pinName": "B"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 60.0,
-            "y": 187.5
+            "x": 55.0,
+            "y": 137.5
           },
           {
-            "x": 60.0,
-            "y": 92.5
+            "x": 55.0,
+            "y": 67.5
           }
         ]
       },
@@ -564,107 +652,43 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SB"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#9"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SA"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#8"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B4"
-        },
-        "pin2": {
           "compName": "GUINandGate#7",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#7",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 237.5
-          },
-          {
-            "x": 10.0,
-            "y": 182.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B3"
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "GUINandGate#11",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 15.0,
-            "y": 212.5
+            "x": 60.0,
+            "y": 187.5
           },
           {
-            "x": 15.0,
-            "y": 132.5
+            "x": 60.0,
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 17.5,
-            "y": 87.5
+            "y": 137.5
           },
           {
             "x": 17.5,
-            "y": 57.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 62.5
-          },
-          {
-            "x": 15.0,
-            "y": 7.5
+            "y": 157.5
           }
         ]
       },
@@ -682,46 +706,38 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#5",
-        "path": [
-          {
-            "x": 12.5,
-            "y": 187.5
-          },
-          {
-            "x": 12.5,
-            "y": 82.5
-          }
-        ]
+        "name": "unnamedWire#31",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#10"
+        "name": "unnamedWire#32",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
+          "compName": "GUINandGate#11",
           "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
@@ -745,97 +761,95 @@ mograsim version: 0.1.3
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
-        },
-        "name": "unnamedWire#31",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#5",
           "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 17.5,
-            "y": 137.5
+            "x": 12.5,
+            "y": 187.5
           },
           {
-            "x": 17.5,
-            "y": 157.5
+            "x": 12.5,
+            "y": 82.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#12"
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 212.5
+          },
+          {
+            "x": 15.0,
+            "y": 132.5
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A3"
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#7",
           "pinName": "A"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 17.5,
-            "y": 112.5
+            "x": 10.0,
+            "y": 237.5
           },
           {
-            "x": 17.5,
-            "y": 107.5
+            "x": 10.0,
+            "y": 182.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SA"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#11"
+        "name": "unnamedWire#8"
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "SB"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
-        "path": []
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIsel2_4",
     "centerTextHeight": 5.0,
@@ -843,5 +857,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 494332c..951c0e8 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 150.0,
@@ -6,90 +5,101 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 35.0
       },
-      "name": "SA",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 115.0
+        "y": 45.0
       },
-      "name": "C1",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 55.0
       },
-      "name": "SB",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 65.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 125.0
+        "y": 75.0
       },
-      "name": "C2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 85.0
       },
-      "name": "SC",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 95.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 105.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 135.0
+        "y": 115.0
       },
-      "name": "C3",
-      "logicWidth": 1
+      "name": "C1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 125.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "C2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 135.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "C3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -97,31 +107,35 @@ mograsim version: 0.1.3
         "y": 145.0
       },
       "name": "C4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 5.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "SA",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 105.0
+        "y": 15.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "SB",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 25.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "SC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -129,7 +143,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -137,7 +152,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -145,7 +161,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -153,23 +170,15 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 50.0,
-          "y": 620.0
-        },
-        "params": 1
-      },
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 50.0,
@@ -178,16 +187,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 50.0,
-          "y": 720.0
+          "y": 620.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#2",
         "pos": {
           "x": 50.0,
@@ -196,49 +205,58 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUInot4",
-        "name": "GUInot4#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 75.0,
-          "y": 250.0
-        }
+          "x": 50.0,
+          "y": 720.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 29.0,
-          "y": 634.0
+          "x": 152.5,
+          "y": 15.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 29.0,
-          "y": 584.0
+          "x": 152.5,
+          "y": 65.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 29.0,
-          "y": 684.0
+          "x": 152.5,
+          "y": 115.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
           "x": 152.5,
-          "y": 65.0
+          "y": 165.0
         },
         "params": 1
       },
+      {
+        "id": "GUInot4",
+        "name": "GUInot4#0",
+        "pos": {
+          "x": 75.0,
+          "y": 250.0
+        }
+      },
       {
         "id": "GUIsel2_4",
         "name": "GUIsel2_4#0",
@@ -248,97 +266,134 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 152.5,
-          "y": 15.0
+          "x": 29.0,
+          "y": 584.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 152.5,
-          "y": 165.0
+          "x": 29.0,
+          "y": 634.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 152.5,
-          "y": 115.0
+          "x": 29.0,
+          "y": 684.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "SC"
+          "pinName": "SA"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 30.0,
-            "y": 125.0
+            "x": 25.0,
+            "y": 25.0
+          },
+          {
+            "x": 25.0,
+            "y": 255.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "SB"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIsel2_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#36",
-        "path": []
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 75.0
+          },
+          {
+            "x": 20.0,
+            "y": 265.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "GUIsel2_4#0",
-          "pinName": "Y4"
+          "pinName": "Y1"
         },
         "pin2": {
           "compName": "GUInot4#0",
-          "pinName": "A4"
+          "pinName": "A1"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
+          "compName": "GUInot4#0",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel2_4#0",
           "pinName": "Y3"
         },
-        "name": "unnamedWire#35",
+        "pin2": {
+          "compName": "GUInot4#0",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "GUInot4#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "SC"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
             "x": 30.0,
@@ -360,14 +415,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": [
           {
             "x": 30.0,
@@ -387,6 +442,23 @@ mograsim version: 0.1.3
         "name": "unnamedWire#17",
         "path": []
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 125.0
+          }
+        ]
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#2",
@@ -402,14 +474,23 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C1"
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#21",
-        "path": []
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 175.0
+          },
+          {
+            "x": 15.0,
+            "y": 275.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -431,13 +512,13 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C3"
+          "pinName": "C1"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
@@ -454,24 +535,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUInot4#0",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "C3"
         },
         "pin2": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 255.0
-          },
-          {
-            "x": 115.0,
-            "y": 20.0
-          }
-        ]
+        "name": "unnamedWire#23",
+        "path": []
       },
       {
         "pin1": {
@@ -488,21 +560,21 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUInot4#0",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 125.0,
-            "y": 275.0
+            "x": 115.0,
+            "y": 255.0
           },
           {
-            "x": 125.0,
-            "y": 120.0
+            "x": 115.0,
+            "y": 20.0
           }
         ]
       },
@@ -529,22 +601,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUInot4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "B"
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 135.0,
-            "y": 580.0
+            "x": 125.0,
+            "y": 275.0
           },
           {
-            "x": 135.0,
-            "y": 30.0
+            "x": 125.0,
+            "y": 120.0
           }
         ]
       },
@@ -571,204 +643,156 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B4"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B4"
+          "compName": "GUINandGate#4",
+          "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 25.0,
-            "y": 525.0
+            "x": 135.0,
+            "y": 580.0
           },
           {
-            "x": 25.0,
-            "y": 345.0
+            "x": 135.0,
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B3"
+          "pinName": "A2"
         },
         "pin2": {
           "compName": "GUIsel2_4#0",
-          "pinName": "B3"
+          "pinName": "A2"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 20.0,
-            "y": 475.0
+            "x": 10.0,
+            "y": 225.0
           },
           {
-            "x": 20.0,
-            "y": 335.0
+            "x": 10.0,
+            "y": 285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B2"
+          "compName": "GUINandGate#5",
+          "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 15.0,
-            "y": 425.0
+            "x": 140.0,
+            "y": 630.0
           },
           {
-            "x": 15.0,
-            "y": 325.0
+            "x": 140.0,
+            "y": 80.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B1"
+          "compName": "GUINandGate#6",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 10.0,
-            "y": 375.0
+            "x": 145.0,
+            "y": 680.0
           },
           {
-            "x": 10.0,
-            "y": 315.0
+            "x": 145.0,
+            "y": 130.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SB"
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SB"
+          "compName": "GUINandGate#7",
+          "pinName": "B"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 20.0,
-            "y": 75.0
+            "x": 150.0,
+            "y": 730.0
           },
           {
-            "x": 20.0,
-            "y": 265.0
+            "x": 150.0,
+            "y": 180.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SA"
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SA"
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 25.0
-          },
-          {
-            "x": 25.0,
-            "y": 255.0
-          }
-        ]
+        "name": "unnamedWire#33",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#30",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 630.0
-          },
-          {
-            "x": 140.0,
-            "y": 80.0
-          }
-        ]
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A4"
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#5",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 325.0
-          },
-          {
-            "x": 5.0,
-            "y": 305.0
-          }
-        ]
+        "name": "unnamedWire#34",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y1"
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUInot4#0",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#7",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#32",
-        "path": [
-          {
-            "x": 150.0,
-            "y": 730.0
-          },
-          {
-            "x": 150.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#36",
+        "path": []
       },
       {
         "pin1": {
@@ -793,118 +817,113 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "B"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 145.0,
-            "y": 680.0
+            "x": 5.0,
+            "y": 325.0
           },
           {
-            "x": 145.0,
-            "y": 130.0
+            "x": 5.0,
+            "y": 305.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "B1"
         },
         "pin2": {
           "compName": "GUIsel2_4#0",
-          "pinName": "A2"
+          "pinName": "B1"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#6",
         "path": [
           {
             "x": 10.0,
-            "y": 225.0
+            "y": 375.0
           },
           {
             "x": 10.0,
-            "y": 285.0
+            "y": 315.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "GUInot4#0",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y2"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "B2"
         },
         "pin2": {
           "compName": "GUIsel2_4#0",
-          "pinName": "A1"
+          "pinName": "B2"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 15.0,
-            "y": 175.0
+            "y": 425.0
           },
           {
             "x": 15.0,
-            "y": 275.0
+            "y": 325.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "GUInot4#0",
-          "pinName": "A2"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 475.0
+          },
+          {
+            "x": 20.0,
+            "y": 335.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#33",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 525.0
+          },
+          {
+            "x": 25.0,
+            "y": 345.0
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIsel3_4",
     "centerTextHeight": 5.0,
@@ -912,5 +931,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 82b991e..d6c8de1 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,14 +26,24 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 7.5,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#1",
         "pos": {
           "x": 35.0,
@@ -41,16 +52,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 7.5,
-          "y": 15.0
+          "x": 35.0,
+          "y": 27.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#3",
         "pos": {
           "x": 62.5,
@@ -59,34 +70,25 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 36.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
-        "pos": {
-          "x": 35.0,
-          "y": 27.5
+          "y": 11.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 36.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 29.0,
@@ -95,34 +97,52 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B"
+        },
+        "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "pin2": {
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 42.5
-          }
-        ]
+        "name": "unnamedWire#10"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#11"
       },
       {
         "pin1": {
@@ -130,57 +150,44 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#2",
         "path": [
           {
             "x": 5.0,
-            "y": 7.5
+            "y": 20.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 30.0,
-            "y": 32.5
+            "x": 5.0,
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#4"
       },
       {
         "pin1": {
@@ -201,74 +208,70 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#10"
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4"
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 32.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 5.0,
-            "y": 30.0
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 5.0,
-            "y": 20.0
+            "y": 42.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11"
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIxor",
     "centerTextHeight": 5.0,
@@ -276,5 +279,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 81536b1..ed2ced9 100644 (file)
@@ -1,87 +1,87 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 270.0,
   "interfacePins": [
-    {
-      "location": {
-        "x": 35.0,
-        "y": 85.0
-      },
-      "name": "ORAMn",
-      "logicWidth": 1
-    },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 155.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "A0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 265.0
+        "y": 165.0
       },
-      "name": "IQn+3",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 175.0
       },
-      "name": "I0",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 255.0
+        "y": 185.0
       },
-      "name": "IQn",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 195.0
       },
-      "name": "I1",
-      "logicWidth": 1
+      "name": "B0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 205.0
       },
-      "name": "I2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 215.0
       },
-      "name": "I3",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 65.0
+        "x": 0.0,
+        "y": 225.0
       },
-      "name": "OVR",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 95.0
       },
-      "name": "I4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,199 +89,233 @@ mograsim version: 0.1.3
         "y": 105.0
       },
       "name": "Cn",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 115.0
+        "y": 55.0
       },
-      "name": "OQn+3",
-      "logicWidth": 1
+      "name": "Cn+4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 115.0
       },
-      "name": "I5",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 125.0
       },
-      "name": "I6",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 105.0
+        "x": 0.0,
+        "y": 135.0
       },
-      "name": "OQn",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 145.0
       },
-      "name": "I7",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 75.0
       },
-      "name": "I8",
-      "logicWidth": 1
+      "name": "F3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 155.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "A0",
-      "logicWidth": 1
+      "name": "F\u003d0",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 165.0
+        "y": 85.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "I0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 175.0
+        "y": 75.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "I1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 185.0
+        "y": 65.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "I2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 235.0
+        "y": 55.0
       },
-      "name": "IRAMn",
-      "logicWidth": 1
+      "name": "I3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "Cn+4",
-      "logicWidth": 1
+      "name": "I4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 95.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "ORAMn+3",
-      "logicWidth": 1
+      "name": "I5",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "F\u003d0",
-      "logicWidth": 1
+      "name": "I6",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 115.0
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "I7",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 245.0
+        "y": 5.0
       },
-      "name": "IRAMn+3",
-      "logicWidth": 1
+      "name": "I8",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 75.0
+        "x": 0.0,
+        "y": 255.0
       },
-      "name": "F3",
-      "logicWidth": 1
+      "name": "IQn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 125.0
+        "y": 265.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "IQn+3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 195.0
+        "y": 235.0
       },
-      "name": "B0",
-      "logicWidth": 1
+      "name": "IRAMn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 135.0
+        "y": 245.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "IRAMn+3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 205.0
+        "x": 35.0,
+        "y": 105.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "OQn",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 145.0
+        "x": 35.0,
+        "y": 115.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "OQn+3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 215.0
+        "x": 35.0,
+        "y": 85.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "ORAMn",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 225.0
+        "x": 35.0,
+        "y": 95.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "ORAMn+3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 65.0
+      },
+      "name": "OVR",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -289,7 +323,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -297,7 +332,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -305,7 +341,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -313,330 +350,337 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "GUIsel3_4",
-        "name": "GUIsel3_4#0",
+        "id": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
+        "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
         "pos": {
-          "x": 45.0,
-          "y": 2310.0
+          "x": 240.0,
+          "y": 2110.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
-        "pos": {
-          "x": 144.0,
-          "y": 2524.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIsel3_4",
-        "name": "GUIsel3_4#1",
+        "id": "GUIAm2901DestDecode",
+        "name": "GUIAm2901DestDecode#0",
         "pos": {
-          "x": 45.0,
-          "y": 2510.0
+          "x": 15.0,
+          "y": 45.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 139.0,
-          "y": 2514.0
+          "x": 160.0,
+          "y": 75.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 234.0,
-          "y": 2524.0
+          "x": 320.0,
+          "y": 440.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUIand",
+        "name": "GUIand#0",
         "pos": {
-          "x": 219.0,
-          "y": 2494.0
-        },
-        "params": 1
+          "x": 190.0,
+          "y": 65.0
+        }
       },
       {
-        "id": "GUIAm2901DestDecode",
-        "name": "GUIAm2901DestDecode#0",
+        "id": "GUIdff4",
+        "name": "GUIdff4#0",
         "pos": {
-          "x": 15.0,
-          "y": 45.0
+          "x": 90.0,
+          "y": 2490.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#0",
         "pos": {
-          "x": 39.0,
-          "y": 2634.0
-        },
-        "params": 1
+          "x": 160.0,
+          "y": 2220.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#1",
         "pos": {
-          "x": 34.0,
-          "y": 2624.0
-        },
-        "params": 1
+          "x": 160.0,
+          "y": 2275.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "id": "GUImux1_4",
+        "name": "GUImux1_4#0",
         "pos": {
-          "x": 279.0,
-          "y": 2114.0
-        },
-        "params": 1
+          "x": 275.0,
+          "y": 135.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 154.0,
-          "y": 89.0
-        },
-        "params": 1
+        "id": "GUIor4",
+        "name": "GUIor4#0",
+        "pos": {
+          "x": 275.0,
+          "y": 445.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUIram4",
+        "name": "GUIram4#0",
         "pos": {
-          "x": 154.0,
-          "y": 949.0
-        },
-        "params": 1
+          "x": 95.0,
+          "y": 2220.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#0",
+        "pos": {
+          "x": 45.0,
+          "y": 2310.0
+        }
+      },
+      {
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#1",
+        "pos": {
+          "x": 45.0,
+          "y": 2510.0
+        }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 154.0,
-          "y": 2319.0
+          "y": 949.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 154.0,
-          "y": 2264.0
+          "y": 89.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 34.0,
-          "y": 2324.0
+          "x": 234.0,
+          "y": 2254.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 39.0,
-          "y": 2314.0
+          "x": 129.0,
+          "y": 2494.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 219.0,
-          "y": 2224.0
+          "x": 134.0,
+          "y": 2504.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 29.0,
-          "y": 2334.0
+          "x": 139.0,
+          "y": 2514.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 229.0,
-          "y": 2244.0
+          "x": 144.0,
+          "y": 2524.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 224.0,
-          "y": 2234.0
+          "x": 219.0,
+          "y": 2494.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
           "x": 234.0,
-          "y": 2254.0
+          "y": 2524.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 134.0,
-          "y": 2504.0
+          "x": 34.0,
+          "y": 2624.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 129.0,
-          "y": 2494.0
+          "x": 39.0,
+          "y": 2634.0
         },
         "params": 1
       },
       {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 160.0,
-          "y": 2275.0
-        }
+          "x": 279.0,
+          "y": 2114.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 160.0,
-          "y": 2220.0
-        }
+          "x": 154.0,
+          "y": 2264.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#40",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 314.0,
-          "y": 449.0
+          "x": 294.0,
+          "y": 2144.0
         },
         "params": 1
       },
       {
-        "id": "GUIdff4",
-        "name": "GUIdff4#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 90.0,
-          "y": 2490.0
-        }
+          "x": 329.0,
+          "y": 949.0
+        },
+        "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "pos": {
-          "x": 320.0,
-          "y": 440.0
+          "x": 254.0,
+          "y": 2089.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#36",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#23",
         "pos": {
-          "x": 9.0,
-          "y": 2384.0
+          "x": 259.0,
+          "y": 2094.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 160.0,
-          "y": 75.0
+          "x": 264.0,
+          "y": 2099.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#35",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "pos": {
-          "x": 24.0,
-          "y": 2414.0
+          "x": 269.0,
+          "y": 2104.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#38",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 19.0,
-          "y": 2434.0
+          "x": 254.0,
+          "y": 449.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#37",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#27",
         "pos": {
-          "x": 14.0,
-          "y": 2424.0
+          "x": 259.0,
+          "y": 459.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#39",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#28",
         "pos": {
-          "x": 24.0,
-          "y": 2444.0
+          "x": 264.0,
+          "y": 469.0
         },
         "params": 1
       },
       {
-        "id": "GUIand",
-        "name": "GUIand#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#29",
         "pos": {
-          "x": 190.0,
-          "y": 65.0
-        }
+          "x": 269.0,
+          "y": 479.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "GUImux1_4#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 275.0,
-          "y": 135.0
-        }
+          "x": 154.0,
+          "y": 2319.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#30",
         "pos": {
           "x": 9.0,
@@ -645,7 +689,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#31",
+        "pos": {
+          "x": 14.0,
+          "y": 2364.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#32",
         "pos": {
           "x": 19.0,
@@ -654,16 +707,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#31",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#33",
         "pos": {
           "x": 14.0,
-          "y": 2364.0
+          "y": 2394.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#34",
         "pos": {
           "x": 19.0,
@@ -672,790 +725,770 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#33",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#35",
         "pos": {
-          "x": 14.0,
-          "y": 2394.0
+          "x": 24.0,
+          "y": 2414.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#25",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#36",
         "pos": {
-          "x": 269.0,
-          "y": 2104.0
+          "x": 9.0,
+          "y": 2384.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#37",
         "pos": {
-          "x": 264.0,
-          "y": 2099.0
+          "x": 14.0,
+          "y": 2424.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#27",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#38",
         "pos": {
-          "x": 259.0,
-          "y": 459.0
+          "x": 19.0,
+          "y": 2434.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#39",
         "pos": {
-          "x": 254.0,
-          "y": 449.0
+          "x": 24.0,
+          "y": 2444.0
         },
         "params": 1
       },
       {
-        "id": "GUIor4",
-        "name": "GUIor4#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 275.0,
-          "y": 445.0
-        }
+          "x": 39.0,
+          "y": 2314.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#29",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#40",
         "pos": {
-          "x": 269.0,
-          "y": 479.0
+          "x": 314.0,
+          "y": 449.0
         },
         "params": 1
       },
       {
-        "id": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
-        "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 240.0,
-          "y": 2110.0
-        }
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#28",
-        "pos": {
-          "x": 264.0,
-          "y": 469.0
+          "x": 34.0,
+          "y": 2324.0
         },
         "params": 1
       },
       {
-        "id": "GUIram4",
-        "name": "GUIram4#0",
-        "pos": {
-          "x": 95.0,
-          "y": 2220.0
-        }
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 329.0,
-          "y": 949.0
+          "x": 29.0,
+          "y": 2334.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 294.0,
-          "y": 2144.0
+          "x": 219.0,
+          "y": 2224.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 259.0,
-          "y": 2094.0
+          "x": 224.0,
+          "y": 2234.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 254.0,
-          "y": 2089.0
+          "x": 229.0,
+          "y": 2244.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA2"
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D2"
-        },
-        "name": "unnamedWire#36",
-        "path": []
-      },
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA1"
+          "compName": "_submodelinterface",
+          "pinName": "I8"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D1"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "I8"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA4"
+          "compName": "_submodelinterface",
+          "pinName": "I7"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D4"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "I7"
         },
-        "name": "unnamedWire#38",
-        "path": []
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 150.0
+          },
+          {
+            "x": 5.0,
+            "y": 60.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB1"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F3"
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#100",
         "path": [
           {
-            "x": 150.0,
-            "y": 2265.0
+            "x": 290.0,
+            "y": 2135.0
           },
           {
-            "x": 150.0,
-            "y": 2280.0
+            "x": 290.0,
+            "y": 2100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#101",
         "path": [
           {
-            "x": 255.0,
-            "y": 190.0
+            "x": 295.0,
+            "y": 2105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_2"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#111",
-        "path": [
-          {
-            "x": 260.0,
-            "y": 200.0
-          }
-        ]
+        "name": "unnamedWire#102",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
-        "name": "unnamedWire#114",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 2090.0
-          }
-        ]
+        "name": "unnamedWire#103",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
-        "name": "unnamedWire#115",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 2095.0
-          }
-        ]
+        "name": "unnamedWire#104",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
-        "name": "unnamedWire#112",
-        "path": [
-          {
-            "x": 265.0,
-            "y": 210.0
-          }
-        ]
+        "name": "unnamedWire#105",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_4"
+          "compName": "GUIor4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#113",
-        "path": [
-          {
-            "x": 270.0,
-            "y": 220.0
-          }
-        ]
+        "name": "unnamedWire#106",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
+          "compName": "GUIor4#0",
           "pinName": "A2"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#107",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
+          "compName": "GUIor4#0",
           "pinName": "A3"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#108",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D3"
+          "compName": "GUIor4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#109",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 140.0,
-            "y": 2285.0
-          },
-          {
-            "x": 140.0,
-            "y": 2300.0
+            "x": 155.0,
+            "y": 80.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#116",
+        "name": "unnamedWire#110",
         "path": [
           {
-            "x": 20.0,
-            "y": 2100.0
+            "x": 255.0,
+            "y": 190.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D2"
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#111",
         "path": [
           {
-            "x": 145.0,
-            "y": 2275.0
-          },
-          {
-            "x": 145.0,
-            "y": 2290.0
+            "x": 260.0,
+            "y": 200.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IRAMn"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A1"
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#112",
         "path": [
           {
-            "x": 5.0,
-            "y": 2350.0
-          },
-          {
-            "x": 5.0,
-            "y": 2345.0
+            "x": 265.0,
+            "y": 210.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Cn"
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#113",
         "path": [
           {
-            "x": 100.0,
-            "y": 1050.0
-          },
-          {
-            "x": 100.0,
-            "y": 2175.0
+            "x": 270.0,
+            "y": 220.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D4"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#114",
         "path": [
           {
-            "x": 135.0,
-            "y": 2295.0
-          },
-          {
-            "x": 135.0,
-            "y": 2310.0
+            "x": 10.0,
+            "y": 2090.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D2"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D2"
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#115",
         "path": [
           {
-            "x": 175.0,
-            "y": 1250.0
-          },
-          {
-            "x": 175.0,
-            "y": 2195.0
+            "x": 15.0,
+            "y": 2095.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#116",
         "path": [
           {
-            "x": 180.0,
-            "y": 1150.0
-          },
-          {
-            "x": 180.0,
-            "y": 2185.0
+            "x": 20.0,
+            "y": 2100.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D4"
+          "pinName": "IRAMn"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#117",
         "path": [
           {
-            "x": 165.0,
-            "y": 1450.0
+            "x": 5.0,
+            "y": 2350.0
           },
           {
-            "x": 165.0,
-            "y": 2215.0
+            "x": 5.0,
+            "y": 2345.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D3"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#46",
-        "path": [
-          {
-            "x": 170.0,
-            "y": 1350.0
-          },
-          {
-            "x": 170.0,
-            "y": 2205.0
-          }
-        ]
+        "name": "unnamedWire#118",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q2"
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#119",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F3"
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#100",
-        "path": [
-          {
-            "x": 290.0,
-            "y": 2135.0
-          },
-          {
-            "x": 290.0,
-            "y": 2100.0
-          }
-        ]
+        "name": "unnamedWire#120",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#121",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#122",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#123",
         "path": [
           {
-            "x": 295.0,
+            "x": 25.0,
             "y": 2105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#36",
           "pinName": ""
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#124",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q3"
+          "compName": "WireCrossPoint#36",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#125",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#126",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#127",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#52",
-        "path": [
-          {
-            "x": 220.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#128",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#37",
           "pinName": ""
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#129",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q4"
-        },
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#38",
+          "pinName": ""
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#130",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_3"
+          "compName": "WireCrossPoint#39",
+          "pinName": ""
         },
-        "name": "unnamedWire#54",
+        "name": "unnamedWire#131",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#37",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#132",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#38",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#133",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#39",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#134",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "IRAMn+3"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#135",
         "path": [
           {
-            "x": 230.0,
-            "y": 170.0
+            "x": 5.0,
+            "y": 2450.0
+          },
+          {
+            "x": 5.0,
+            "y": 2455.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#36",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_2"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#136",
         "path": [
           {
-            "x": 225.0,
-            "y": 160.0
+            "x": 10.0,
+            "y": 2585.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#37",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A1"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#56",
-        "path": []
+        "name": "unnamedWire#137",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 2595.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#38",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A4"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#109",
-        "path": []
+        "name": "unnamedWire#138",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 2605.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#39",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_4"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#55",
+        "name": "unnamedWire#139",
         "path": [
           {
-            "x": 235.0,
-            "y": 180.0
+            "x": 25.0,
+            "y": 2615.0
           }
         ]
       },
@@ -1473,1925 +1506,1931 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIram4#0",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#140",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "C"
+          "compName": "GUIram4#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#141",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIram4#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#142",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIram4#0",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#143",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIAm2901DestDecode#0",
-          "pinName": "LSH"
+          "pinName": "RAMWE"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#144",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIand#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#145"
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIram4#0",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#146",
         "path": [
           {
-            "x": 55.0,
-            "y": 90.0
+            "x": 230.0,
+            "y": 70.0
           },
           {
-            "x": 55.0,
-            "y": 125.0
+            "x": 230.0,
+            "y": 105.0
           },
           {
-            "x": 40.0,
-            "y": 125.0
+            "x": 90.0,
+            "y": 105.0
+          },
+          {
+            "x": 90.0,
+            "y": 2305.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "QWE"
         },
         "pin2": {
           "compName": "GUIdff4#0",
-          "pinName": "C"
+          "pinName": "WE"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#147",
         "path": [
           {
-            "x": 155.0,
-            "y": 2485.0
-          },
-          {
-            "x": 80.0,
-            "y": 2485.0
+            "x": 85.0,
+            "y": 100.0
           },
           {
-            "x": 80.0,
-            "y": 2495.0
+            "x": 85.0,
+            "y": 2505.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "GUIAm2901DestDecode#0",
-          "pinName": "NSH"
+          "pinName": "YF"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#148",
         "path": [
           {
-            "x": 60.0,
-            "y": 50.0
+            "x": 70.0,
+            "y": 80.0
           },
           {
-            "x": 60.0,
-            "y": 120.0
-          },
-          {
-            "x": 35.0,
-            "y": 120.0
+            "x": 70.0,
+            "y": 140.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SA"
-        },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "RSH"
+          "compName": "GUImux1_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#149",
         "path": [
           {
-            "x": 65.0,
-            "y": 60.0
-          },
-          {
-            "x": 65.0,
-            "y": 115.0
+            "x": 335.0,
+            "y": 140.0
           },
           {
-            "x": 30.0,
-            "y": 115.0
+            "x": 335.0,
+            "y": 50.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SC"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SB"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#150",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "SB"
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#151",
         "path": [
           {
-            "x": 35.0,
-            "y": 2525.0
+            "x": 335.0,
+            "y": 160.0
+          },
+          {
+            "x": 335.0,
+            "y": 250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "SA"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#152",
         "path": [
           {
-            "x": 40.0,
-            "y": 2515.0
+            "x": 325.0,
+            "y": 170.0
+          },
+          {
+            "x": 325.0,
+            "y": 350.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A0"
+          "compName": "GUIor4#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A0"
+          "compName": "WireCrossPoint#40",
+          "pinName": ""
         },
-        "name": "unnamedWire#27",
-        "path": [
-          {
-            "x": 80.0,
-            "y": 1550.0
-          },
-          {
-            "x": 80.0,
-            "y": 2225.0
-          }
-        ]
+        "name": "unnamedWire#153",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#40",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "SC"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#154",
         "path": [
           {
-            "x": 30.0,
-            "y": 2535.0
+            "x": 315.0,
+            "y": 445.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#40",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A2"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#155",
         "path": [
           {
-            "x": 70.0,
-            "y": 1750.0
-          },
-          {
-            "x": 70.0,
-            "y": 2245.0
+            "x": 315.0,
+            "y": 455.0
           }
         ]
       },
       {
         "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "F\u003d0"
+        },
+        "name": "unnamedWire#156",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A1"
+          "compName": "GUIdlatch4#1",
+          "pinName": "C"
         },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 75.0,
-            "y": 1650.0
-          },
-          {
-            "x": 75.0,
-            "y": 2235.0
-          }
-        ]
+        "name": "unnamedWire#16",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A3"
+          "compName": "GUIdff4#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 65.0,
-            "y": 1850.0
+            "x": 155.0,
+            "y": 2485.0
           },
           {
-            "x": 65.0,
-            "y": 2255.0
+            "x": 80.0,
+            "y": 2485.0
+          },
+          {
+            "x": 80.0,
+            "y": 2495.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "LSH"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 55.0,
-            "y": 2050.0
+            "y": 90.0
           },
           {
             "x": 55.0,
-            "y": 2275.0
+            "y": 125.0
+          },
+          {
+            "x": 40.0,
+            "y": 125.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B0"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "NSH"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B0"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#19",
         "path": [
           {
             "x": 60.0,
-            "y": 1950.0
+            "y": 50.0
           },
           {
             "x": 60.0,
-            "y": 2265.0
+            "y": 120.0
+          },
+          {
+            "x": 35.0,
+            "y": 120.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B3"
+          "pinName": "I6"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B3"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "I6"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 45.0,
-            "y": 2250.0
+            "x": 10.0,
+            "y": 250.0
           },
           {
-            "x": 45.0,
-            "y": 2295.0
+            "x": 10.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "RSH"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B2"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 50.0,
-            "y": 2150.0
+            "x": 65.0,
+            "y": 60.0
           },
           {
-            "x": 50.0,
-            "y": 2285.0
+            "x": 65.0,
+            "y": 115.0
+          },
+          {
+            "x": 30.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#79",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 2665.0
-          },
-          {
-            "x": 25.0,
-            "y": 2665.0
-          },
-          {
-            "x": 25.0,
-            "y": 2630.0
-          },
-          {
-            "x": 30.0,
-            "y": 2630.0
-          },
-          {
-            "x": 30.0,
-            "y": 2555.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#150",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#151",
+        "name": "unnamedWire#23",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#1",
+          "pinName": "SA"
+        },
+        "name": "unnamedWire#24",
         "path": [
           {
-            "x": 335.0,
-            "y": 160.0
-          },
-          {
-            "x": 335.0,
-            "y": 250.0
+            "x": 40.0,
+            "y": 2515.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#40",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "GUIsel3_4#1",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#154",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 315.0,
-            "y": 445.0
+            "x": 35.0,
+            "y": 2525.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#40",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUIsel3_4#1",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#155",
+        "name": "unnamedWire#26",
         "path": [
           {
-            "x": 315.0,
-            "y": 455.0
+            "x": 30.0,
+            "y": 2535.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y4"
+          "compName": "_submodelinterface",
+          "pinName": "A0"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIram4#0",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#152",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 325.0,
-            "y": 170.0
+            "x": 80.0,
+            "y": 1550.0
           },
           {
-            "x": 325.0,
-            "y": 350.0
+            "x": 80.0,
+            "y": 2225.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor4#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#40",
-          "pinName": ""
+          "compName": "GUIram4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#153",
-        "path": []
+        "name": "unnamedWire#28",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 1650.0
+          },
+          {
+            "x": 75.0,
+            "y": 2235.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q2"
+          "compName": "GUIram4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 225.0,
-            "y": 2505.0
+            "x": 70.0,
+            "y": 1750.0
           },
           {
-            "x": 225.0,
-            "y": 2315.0
+            "x": 70.0,
+            "y": 2245.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "F\u003d0"
-        },
-        "name": "unnamedWire#156",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "pinName": "I5"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q1"
+          "pinName": "I5"
         },
-        "name": "unnamedWire#80",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 220.0,
-            "y": 2305.0
+            "x": 130.0,
+            "y": 350.0
+          },
+          {
+            "x": 130.0,
+            "y": 2115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q4"
+          "compName": "GUIram4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#83",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 235.0,
-            "y": 2335.0
+            "x": 65.0,
+            "y": 1850.0
+          },
+          {
+            "x": 65.0,
+            "y": 2255.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B0"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q3"
+          "compName": "GUIram4#0",
+          "pinName": "B0"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 230.0,
-            "y": 2515.0
+            "x": 60.0,
+            "y": 1950.0
           },
           {
-            "x": 230.0,
-            "y": 2325.0
+            "x": 60.0,
+            "y": 2265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A4"
+          "compName": "GUIram4#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 40.0,
-            "y": 2575.0
+            "x": 55.0,
+            "y": 2050.0
+          },
+          {
+            "x": 55.0,
+            "y": 2275.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A3"
+          "compName": "GUIram4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#84",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 35.0,
-            "y": 2565.0
+            "x": 50.0,
+            "y": 2150.0
+          },
+          {
+            "x": 50.0,
+            "y": 2285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
-          "pinName": "D2"
+          "compName": "GUIram4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#87",
-        "path": []
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 2250.0
+          },
+          {
+            "x": 45.0,
+            "y": 2295.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y1"
+          "compName": "GUIram4#0",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
+          "compName": "GUIdlatch4#0",
           "pinName": "D1"
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y4"
+          "compName": "GUIram4#0",
+          "pinName": "QA2"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
-          "pinName": "D4"
+          "compName": "GUIdlatch4#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y3"
+          "compName": "GUIram4#0",
+          "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
+          "compName": "GUIdlatch4#0",
           "pinName": "D3"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y1"
-        },
-        "pin2": {
           "compName": "GUIram4#0",
-          "pinName": "D1"
-        },
-        "name": "unnamedWire#140",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "QA4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y4"
+          "compName": "GUIram4#0",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "D4"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#143",
-        "path": []
+        "name": "unnamedWire#39",
+        "path": [
+          {
+            "x": 150.0,
+            "y": 2265.0
+          },
+          {
+            "x": 150.0,
+            "y": 2280.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I0"
+          "pinName": "I4"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I0"
+          "pinName": "I4"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#4",
         "path": [
           {
-            "x": 105.0,
-            "y": 850.0
+            "x": 125.0,
+            "y": 450.0
           },
           {
-            "x": 105.0,
-            "y": 2165.0
+            "x": 125.0,
+            "y": 2125.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "RAMWE"
+          "compName": "GUIram4#0",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "A"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#144",
-        "path": []
+        "name": "unnamedWire#40",
+        "path": [
+          {
+            "x": 145.0,
+            "y": 2275.0
+          },
+          {
+            "x": 145.0,
+            "y": 2290.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
+          "compName": "GUIram4#0",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I1"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 110.0,
-            "y": 750.0
+            "x": 140.0,
+            "y": 2285.0
           },
           {
-            "x": 110.0,
-            "y": 2155.0
+            "x": 140.0,
+            "y": 2300.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y2"
+          "compName": "GUIram4#0",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "D2"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#141",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 135.0,
+            "y": 2295.0
+          },
+          {
+            "x": 135.0,
+            "y": 2310.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I2"
+          "pinName": "Cn"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I2"
+          "pinName": "Cn"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 115.0,
-            "y": 650.0
+            "x": 100.0,
+            "y": 1050.0
           },
           {
-            "x": 115.0,
-            "y": 2145.0
+            "x": 100.0,
+            "y": 2175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "D3"
-        },
-        "name": "unnamedWire#142",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Cn+4"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn+4"
+          "pinName": "D1"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 315.0,
-            "y": 2155.0
+            "x": 180.0,
+            "y": 1150.0
           },
           {
-            "x": 315.0,
-            "y": 550.0
+            "x": 180.0,
+            "y": 2185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "QWE"
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
-          "pinName": "WE"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#147",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 85.0,
-            "y": 100.0
+            "x": 175.0,
+            "y": 1250.0
           },
           {
-            "x": 85.0,
-            "y": 2505.0
+            "x": 175.0,
+            "y": 2195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "YF"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "S0"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#148",
+        "name": "unnamedWire#46",
         "path": [
           {
-            "x": 70.0,
-            "y": 80.0
+            "x": 170.0,
+            "y": 1350.0
           },
           {
-            "x": 70.0,
-            "y": 140.0
+            "x": 170.0,
+            "y": 2205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F1"
+          "compName": "_submodelinterface",
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
-        },
-        "name": "unnamedWire#92",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#145"
-      },
-      {
-        "pin1": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "OVR"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "OVR"
+          "pinName": "D4"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 320.0,
-            "y": 2165.0
+            "x": 165.0,
+            "y": 1450.0
           },
           {
-            "x": 320.0,
-            "y": 650.0
+            "x": 165.0,
+            "y": 2215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "WE"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#146",
-        "path": [
-          {
-            "x": 230.0,
-            "y": 70.0
-          },
-          {
-            "x": 230.0,
-            "y": 105.0
-          },
-          {
-            "x": 90.0,
-            "y": 105.0
-          },
-          {
-            "x": 90.0,
-            "y": 2305.0
-          }
-        ]
+        "name": "unnamedWire#48",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I7"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "I7"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 150.0
-          },
-          {
-            "x": 5.0,
-            "y": 60.0
-          }
-        ]
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "ORAMn"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#94",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 325.0,
-            "y": 2115.0
+            "x": 120.0,
+            "y": 550.0
           },
           {
-            "x": 325.0,
-            "y": 850.0
+            "x": 120.0,
+            "y": 2135.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I8"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "I8"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F4"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "ORAMn+3"
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#96",
-        "path": []
+        "name": "unnamedWire#52",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#149",
+        "name": "unnamedWire#53",
         "path": [
           {
-            "x": 335.0,
-            "y": 140.0
-          },
-          {
-            "x": 335.0,
-            "y": 50.0
+            "x": 225.0,
+            "y": 160.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#95",
+        "name": "unnamedWire#54",
         "path": [
           {
-            "x": 330.0,
-            "y": 2145.0
+            "x": 230.0,
+            "y": 170.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I3"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I3"
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#55",
         "path": [
           {
-            "x": 120.0,
-            "y": 550.0
-          },
-          {
-            "x": 120.0,
-            "y": 2135.0
+            "x": 235.0,
+            "y": 180.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#98",
-        "path": [
-          {
-            "x": 280.0,
-            "y": 2090.0
-          }
-        ]
+        "name": "unnamedWire#57",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I4"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I4"
+          "pinName": "A3"
         },
-        "name": "unnamedWire#4",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 450.0
-          },
-          {
-            "x": 125.0,
-            "y": 2125.0
-          }
-        ]
+        "name": "unnamedWire#58",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F3"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#97",
-        "path": [
-          {
-            "x": 330.0,
-            "y": 750.0
-          }
-        ]
+        "name": "unnamedWire#59",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I5"
+          "pinName": "I2"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I5"
+          "pinName": "I2"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 130.0,
-            "y": 350.0
+            "x": 115.0,
+            "y": 650.0
           },
           {
-            "x": 130.0,
-            "y": 2115.0
+            "x": 115.0,
+            "y": 2145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I6"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "I6"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#60",
         "path": [
           {
-            "x": 10.0,
-            "y": 250.0
+            "x": 200.0,
+            "y": 2280.0
           },
           {
-            "x": 10.0,
-            "y": 70.0
+            "x": 200.0,
+            "y": 2265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#61",
         "path": [
           {
-            "x": 155.0,
-            "y": 80.0
+            "x": 205.0,
+            "y": 2290.0
+          },
+          {
+            "x": 205.0,
+            "y": 2275.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F2"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#99",
+        "name": "unnamedWire#62",
         "path": [
           {
-            "x": 285.0,
-            "y": 2125.0
+            "x": 210.0,
+            "y": 2300.0
           },
           {
-            "x": 285.0,
-            "y": 2095.0
+            "x": 210.0,
+            "y": 2285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q4"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A3"
+          "pinName": "B4"
         },
-        "name": "unnamedWire#58",
-        "path": []
+        "name": "unnamedWire#63",
+        "path": [
+          {
+            "x": 215.0,
+            "y": 2310.0
+          },
+          {
+            "x": 215.0,
+            "y": 2295.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A2"
-        },
-        "name": "unnamedWire#57",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A4"
-        },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#37",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#132",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#38",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C2"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#133",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#34",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#38",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
-        "name": "unnamedWire#130",
+        "name": "unnamedWire#67",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#35",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#39",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#68",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#36",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "B1"
+          "compName": "_submodelinterface",
+          "pinName": "OQn"
         },
-        "name": "unnamedWire#136",
+        "name": "unnamedWire#69",
         "path": [
           {
-            "x": 10.0,
-            "y": 2585.0
+            "x": 335.0,
+            "y": 2495.0
+          },
+          {
+            "x": 335.0,
+            "y": 1050.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#37",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "B2"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#137",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 15.0,
-            "y": 2595.0
+            "x": 110.0,
+            "y": 750.0
+          },
+          {
+            "x": 110.0,
+            "y": 2155.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#39",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C3"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#134",
+        "name": "unnamedWire#70",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IRAMn+3"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C4"
+          "compName": "_submodelinterface",
+          "pinName": "OQn+3"
         },
-        "name": "unnamedWire#135",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 5.0,
-            "y": 2450.0
+            "x": 340.0,
+            "y": 2525.0
           },
           {
-            "x": 5.0,
-            "y": 2455.0
+            "x": 340.0,
+            "y": 1150.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q2"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B2"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#72",
         "path": [
           {
-            "x": 205.0,
-            "y": 2290.0
+            "x": 135.0,
+            "y": 2670.0
           },
           {
-            "x": 205.0,
-            "y": 2275.0
+            "x": 30.0,
+            "y": 2670.0
+          },
+          {
+            "x": 30.0,
+            "y": 2635.0
+          },
+          {
+            "x": 35.0,
+            "y": 2635.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q1"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#73",
         "path": [
           {
-            "x": 200.0,
-            "y": 2280.0
+            "x": 140.0,
+            "y": 2675.0
           },
           {
-            "x": 200.0,
-            "y": 2265.0
+            "x": 35.0,
+            "y": 2675.0
+          },
+          {
+            "x": 35.0,
+            "y": 2640.0
+          },
+          {
+            "x": 40.0,
+            "y": 2640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q4"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B4"
+          "compName": "GUIsel3_4#1",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#63",
-        "path": [
-          {
-            "x": 215.0,
-            "y": 2310.0
-          },
-          {
-            "x": 215.0,
-            "y": 2295.0
-          }
-        ]
+        "name": "unnamedWire#74",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#38",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIsel3_4#1",
-          "pinName": "B3"
+          "pinName": "C2"
         },
-        "name": "unnamedWire#138",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 2605.0
-          }
-        ]
+        "name": "unnamedWire#75",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q3"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B3"
+          "compName": "GUIsel3_4#1",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#76",
         "path": [
           {
-            "x": 210.0,
-            "y": 2300.0
+            "x": 145.0,
+            "y": 2680.0
           },
           {
-            "x": 210.0,
-            "y": 2285.0
+            "x": 40.0,
+            "y": 2680.0
+          },
+          {
+            "x": 40.0,
+            "y": 2645.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#39",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "IQn+3"
         },
         "pin2": {
           "compName": "GUIsel3_4#1",
-          "pinName": "B4"
+          "pinName": "C4"
         },
-        "name": "unnamedWire#139",
+        "name": "unnamedWire#77",
         "path": [
           {
-            "x": 25.0,
-            "y": 2615.0
+            "x": 5.0,
+            "y": 2650.0
+          },
+          {
+            "x": 5.0,
+            "y": 2655.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q2"
+          "compName": "_submodelinterface",
+          "pinName": "IQn"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#65",
-        "path": []
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 2550.0
+          },
+          {
+            "x": 5.0,
+            "y": 2545.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q1"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#64",
-        "path": []
+        "pin2": {
+          "compName": "GUIsel3_4#1",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#79",
+        "path": [
+          {
+            "x": 130.0,
+            "y": 2665.0
+          },
+          {
+            "x": 25.0,
+            "y": 2665.0
+          },
+          {
+            "x": 25.0,
+            "y": 2630.0
+          },
+          {
+            "x": 30.0,
+            "y": 2630.0
+          },
+          {
+            "x": 30.0,
+            "y": 2555.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q4"
+          "compName": "_submodelinterface",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#67",
-        "path": []
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 850.0
+          },
+          {
+            "x": 105.0,
+            "y": 2165.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#66",
-        "path": []
+        "name": "unnamedWire#80",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 2305.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "OQn"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q2"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#81",
         "path": [
           {
-            "x": 335.0,
-            "y": 2495.0
+            "x": 225.0,
+            "y": 2505.0
           },
           {
-            "x": 335.0,
-            "y": 1050.0
+            "x": 225.0,
+            "y": 2315.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q3"
         },
-        "name": "unnamedWire#68",
-        "path": []
+        "name": "unnamedWire#82",
+        "path": [
+          {
+            "x": 230.0,
+            "y": 2515.0
+          },
+          {
+            "x": 230.0,
+            "y": 2325.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q4"
         },
-        "name": "unnamedWire#121",
-        "path": []
+        "name": "unnamedWire#83",
+        "path": [
+          {
+            "x": 235.0,
+            "y": 2335.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#34",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#122",
-        "path": []
+        "name": "unnamedWire#84",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 2565.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
+          "compName": "GUIsel3_4#1",
           "pinName": "A4"
         },
-        "name": "unnamedWire#120",
-        "path": []
+        "name": "unnamedWire#85",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 2575.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#36",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B1"
+          "compName": "GUIdff4#0",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#86",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B2"
+          "compName": "GUIdff4#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#87",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#88",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#35",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#123",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 2105.0
-          }
-        ]
+        "name": "unnamedWire#89",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "WireCrossPoint#36",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#124",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Cn+4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Cn+4"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#90",
         "path": [
           {
-            "x": 135.0,
-            "y": 2670.0
-          },
-          {
-            "x": 30.0,
-            "y": 2670.0
-          },
-          {
-            "x": 30.0,
-            "y": 2635.0
+            "x": 315.0,
+            "y": 2155.0
           },
           {
-            "x": 35.0,
-            "y": 2635.0
+            "x": 315.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#37",
-          "pinName": ""
-        },
-        "name": "unnamedWire#129",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "OVR"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "OQn+3"
+          "pinName": "OVR"
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#91",
         "path": [
           {
-            "x": 340.0,
-            "y": 2525.0
+            "x": 320.0,
+            "y": 2165.0
           },
           {
-            "x": 340.0,
-            "y": 1150.0
+            "x": 320.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#92",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#34",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B3"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#127",
+        "name": "unnamedWire#93",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "ORAMn"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#94",
         "path": [
           {
-            "x": 140.0,
-            "y": 2675.0
-          },
-          {
-            "x": 35.0,
-            "y": 2675.0
-          },
-          {
-            "x": 35.0,
-            "y": 2640.0
+            "x": 325.0,
+            "y": 2115.0
           },
           {
-            "x": 40.0,
-            "y": 2640.0
+            "x": 325.0,
+            "y": 850.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#35",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B4"
-        },
-        "name": "unnamedWire#128",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C3"
-        },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#95",
         "path": [
           {
-            "x": 145.0,
-            "y": 2680.0
-          },
-          {
-            "x": 40.0,
-            "y": 2680.0
-          },
-          {
-            "x": 40.0,
-            "y": 2645.0
+            "x": 330.0,
+            "y": 2145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C2"
+          "compName": "_submodelinterface",
+          "pinName": "ORAMn+3"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#96",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IQn"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "F3"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#97",
         "path": [
           {
-            "x": 5.0,
-            "y": 2550.0
-          },
+            "x": 330.0,
+            "y": 750.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
+        },
+        "name": "unnamedWire#98",
+        "path": [
           {
-            "x": 5.0,
-            "y": 2545.0
+            "x": 280.0,
+            "y": 2090.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IQn+3"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C4"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#99",
         "path": [
           {
-            "x": 5.0,
-            "y": 2650.0
+            "x": 285.0,
+            "y": 2125.0
           },
           {
-            "x": 5.0,
-            "y": 2655.0
+            "x": 285.0,
+            "y": 2095.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIAm2901",
     "centerTextHeight": 5.0,
@@ -3399,23 +3438,24 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {
       "qreg": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff4#0"
         }
       },
       "regs": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram4#0"
         }
       }
     },
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 006a46f..7e0ccc3 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
@@ -6,10 +5,11 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "SBE",
-      "logicWidth": 1
+      "name": "CinE",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 45.0
       },
       "name": "FN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "I3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,15 +35,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I4",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 25.0
-      },
-      "name": "SN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +44,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "I5",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,7 +53,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "L",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,48 +62,60 @@ mograsim version: 0.1.3
         "y": 55.0
       },
       "name": "RN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 35.0
       },
-      "name": "CinE",
-      "logicWidth": 1
+      "name": "SBE",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "SN",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 15.0,
-          "y": 50.0
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "GUInand3",
-        "name": "GUInand3#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 55.0,
-          "y": 10.0
-        }
+          "x": 15.0,
+          "y": 50.0
+        },
+        "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 15.0,
-          "y": 10.0
+          "x": 55.0,
+          "y": 45.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#3",
         "pos": {
           "x": 55.0,
@@ -115,11 +124,11 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 55.0,
-          "y": 45.0
+          "x": 100.0,
+          "y": 50.0
         },
         "params": 1
       },
@@ -132,34 +141,42 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUInand3",
+        "name": "GUInand3#0",
+        "pos": {
+          "x": 55.0,
+          "y": 10.0
+        }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 24.0
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 19.0
+          "y": 24.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 9.0,
-          "y": 59.0
+          "x": 39.0,
+          "y": 34.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 4.0,
@@ -168,16 +185,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
           "x": 9.0,
-          "y": 64.0
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 9.0,
@@ -186,16 +203,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 49.0,
-          "y": 99.0
+          "x": 9.0,
+          "y": 64.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#6",
         "pos": {
           "x": 9.0,
@@ -204,16 +221,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 39.0,
-          "y": 19.0
+          "x": 49.0,
+          "y": 99.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#8",
         "pos": {
           "x": 49.0,
@@ -222,35 +239,79 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
           "x": 39.0,
-          "y": 34.0
+          "y": 19.0
         },
         "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 100.0,
-          "y": 50.0
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 15.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
@@ -267,20 +328,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 50.0,
-            "y": 100.0
-          }
-        ]
+        "name": "unnamedWire#14",
+        "path": []
       },
       {
         "pin1": {
@@ -309,15 +365,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#18",
-        "path": []
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 100.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -336,6 +397,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#8",
@@ -355,14 +428,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -379,14 +452,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
@@ -416,20 +489,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 40.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#23",
+        "path": []
       },
       {
         "pin1": {
@@ -445,14 +513,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUInand3#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
+          "compName": "GUIand#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#27"
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -468,14 +542,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUInand3#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#29"
+        "name": "unnamedWire#27"
       },
       {
         "pin1": {
@@ -490,109 +564,61 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUInand3#0",
+          "compName": "GUIand#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#9",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 40.0
-          },
-          {
-            "x": 45.0,
-            "y": 40.0
-          },
-          {
-            "x": 45.0,
-            "y": 15.0
-          }
-        ]
+        "name": "unnamedWire#29"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I4"
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "L"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "FN"
+          "pinName": "SBE"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#31",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 15.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I5"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "L"
-        },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -618,91 +644,74 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
-        },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "SBE"
+          "pinName": "FN"
         },
-        "name": "unnamedWire#31",
-        "path": []
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 180.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I4"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUInand3#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 40.0
+          },
+          {
+            "x": 45.0,
+            "y": 40.0
+          },
+          {
+            "x": 45.0,
+            "y": 15.0
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIAm2901ALUFuncDecode",
     "centerTextHeight": 5.0,
@@ -710,5 +719,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 0f8ee57..1a8da52 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 120.0,
@@ -6,58 +5,65 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 35.0
       },
-      "name": "R2",
-      "logicWidth": 1
+      "name": "Cn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 105.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "S3",
-      "logicWidth": 1
+      "name": "Cn+4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 65.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "R3",
-      "logicWidth": 1
+      "name": "F1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 115.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "S4",
-      "logicWidth": 1
+      "name": "F2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 75.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "R4",
-      "logicWidth": 1
+      "name": "F3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "I3",
-      "logicWidth": 1
+      "name": "F4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "OVR",
-      "logicWidth": 1
+      "name": "I3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -65,208 +71,261 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Cn",
-      "logicWidth": 1
+      "name": "I5",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "F1",
-      "logicWidth": 1
+      "name": "OVR",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 45.0
       },
-      "name": "I5",
-      "logicWidth": 1
+      "name": "R1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "F2",
-      "logicWidth": 1
+      "name": "R2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 65.0
       },
-      "name": "F3",
-      "logicWidth": 1
+      "name": "R3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "F4",
-      "logicWidth": 1
+      "name": "R4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 85.0
       },
-      "name": "Cn+4",
-      "logicWidth": 1
+      "name": "S1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 95.0
       },
-      "name": "S1",
-      "logicWidth": 1
+      "name": "S2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 105.0
       },
-      "name": "R1",
-      "logicWidth": 1
+      "name": "S3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 115.0
       },
-      "name": "S2",
-      "logicWidth": 1
+      "name": "S4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUIAm2901ALUFuncDecode",
+        "name": "GUIAm2901ALUFuncDecode#0",
         "pos": {
-          "x": 34.0,
-          "y": 354.0
-        },
-        "params": 1
+          "x": 20.0,
+          "y": 2.5
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#0",
         "pos": {
-          "x": 34.0,
-          "y": 254.0
+          "x": 45.0,
+          "y": 80.0
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#1",
+        "pos": {
+          "x": 45.0,
+          "y": 180.0
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#2",
+        "pos": {
+          "x": 45.0,
+          "y": 280.0
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#3",
+        "pos": {
+          "x": 45.0,
+          "y": 380.0
+        }
+      },
+      {
+        "id": "GUIxor",
+        "name": "GUIxor#0",
+        "pos": {
+          "x": 95.0,
+          "y": 400.0
+        }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 94.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 36.5,
-          "y": 264.0
+          "x": 24.0,
+          "y": 194.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 36.5,
-          "y": 164.0
+          "x": 31.5,
+          "y": 244.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 84.0,
-          "y": 374.0
+          "x": 31.5,
+          "y": 344.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 36.5,
-          "y": 364.0
+          "x": 34.0,
+          "y": 154.0
         },
         "params": 1
       },
       {
-        "id": "GUIAm2901ALUFuncDecode",
-        "name": "GUIAm2901ALUFuncDecode#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 20.0,
-          "y": 2.5
-        }
+          "x": 34.0,
+          "y": 254.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 45.0,
-          "y": 80.0
-        }
+          "x": 34.0,
+          "y": 354.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 84.0,
-          "y": 384.0
+          "x": 36.5,
+          "y": 164.0
         },
         "params": 1
       },
       {
-        "id": "GUIxor",
-        "name": "GUIxor#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 95.0,
-          "y": 400.0
-        }
+          "x": 36.5,
+          "y": 264.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 24.0,
-          "y": 194.0
+          "x": 36.5,
+          "y": 364.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 24.0,
-          "y": 94.0
+          "x": 84.0,
+          "y": 374.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 26.5,
-          "y": 104.0
+          "x": 84.0,
+          "y": 384.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 24.0,
@@ -275,16 +334,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
           "x": 26.5,
-          "y": 304.0
+          "y": 104.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 26.5,
@@ -293,685 +352,891 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 45.0,
-          "y": 180.0
-        }
+          "x": 26.5,
+          "y": 304.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
           "x": 29.0,
-          "y": 224.0
+          "y": 124.0
         },
         "params": 1
       },
       {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 45.0,
-          "y": 280.0
-        }
+          "x": 29.0,
+          "y": 224.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
           "x": 29.0,
-          "y": 124.0
+          "y": 324.0
         },
         "params": 1
       },
       {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#3",
-        "pos": {
-          "x": 45.0,
-          "y": 380.0
-        }
-      },
-      {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#9",
         "pos": {
           "x": 31.5,
           "y": 144.0
         },
         "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I5"
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 20.0
+          },
+          {
+            "x": 5.0,
+            "y": 7.5
+          }
+        ]
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
-        "pos": {
-          "x": 29.0,
-          "y": 324.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I4"
         },
-        "params": 1
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I4"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 60.0
+          },
+          {
+            "x": 10.0,
+            "y": 17.5
+          }
+        ]
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
-        "pos": {
-          "x": 31.5,
-          "y": 244.0
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "CinE"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 70.0,
+            "y": 7.5
+          },
+          {
+            "x": 70.0,
+            "y": 77.5
+          },
+          {
+            "x": 27.5,
+            "y": 77.5
+          }
+        ]
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
-        "pos": {
-          "x": 34.0,
-          "y": 154.0
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
-        "pos": {
-          "x": 31.5,
-          "y": 344.0
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "FN"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "CinE"
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "FN"
+          "pinName": "CinE"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#14",
         "path": []
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "CinE"
+        },
+        "name": "unnamedWire#15",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "CinE"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 27.5,
+            "y": 405.0
+          }
+        ]
+      },
       {
         "pin1": {
           "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "L"
+          "pinName": "RN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 67.5,
-            "y": 17.5
+            "x": 57.5,
+            "y": 57.5
           },
           {
-            "x": 67.5,
-            "y": 75.0
+            "x": 57.5,
+            "y": 65.0
           },
           {
-            "x": 37.5,
-            "y": 75.0
+            "x": 30.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "FN"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#18",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#19",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I3"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 35.0,
-            "y": 455.0
+            "x": 15.0,
+            "y": 100.0
+          },
+          {
+            "x": 15.0,
+            "y": 27.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#20",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "L"
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "RN"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#23",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 425.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "SN"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#24",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 27.5
+          },
+          {
+            "x": 65.0,
+            "y": 72.5
+          },
+          {
+            "x": 32.5,
+            "y": 72.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "L"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "SN"
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "L"
+          "pinName": "SN"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R1"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "R"
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "SN"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#29",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "SBE"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 10.0,
-            "y": 180.0
+            "x": 62.5,
+            "y": 37.5
           },
           {
-            "x": 10.0,
-            "y": 115.0
+            "x": 62.5,
+            "y": 70.0
+          },
+          {
+            "x": 25.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "L"
+          "pinName": "SN"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 37.5,
-            "y": 465.0
+            "x": 32.5,
+            "y": 445.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "FN"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 47.5
+          },
+          {
+            "x": 60.0,
+            "y": 67.5
+          },
+          {
+            "x": 35.0,
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "name": "unnamedWire#32",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "name": "unnamedWire#33",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "FN"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "FN"
+        },
+        "name": "unnamedWire#35",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "R"
+          "pinName": "FN"
         },
-        "name": "unnamedWire#47",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 260.0
-          },
-          {
-            "x": 10.0,
-            "y": 315.0
-          }
-        ]
+        "name": "unnamedWire#36",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R2"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "R"
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "FN"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 10.0,
-            "y": 220.0
-          },
-          {
-            "x": 10.0,
-            "y": 215.0
+            "x": 35.0,
+            "y": 455.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "L"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "S"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#38",
         "path": [
           {
-            "x": 15.0,
-            "y": 340.0
+            "x": 67.5,
+            "y": 17.5
           },
           {
-            "x": 15.0,
-            "y": 135.0
+            "x": 67.5,
+            "y": 75.0
+          },
+          {
+            "x": 37.5,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R4"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "R"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#48",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 300.0
-          },
-          {
-            "x": 20.0,
-            "y": 415.0
-          }
-        ]
+        "name": "unnamedWire#39",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "CoutE"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 395.0
-          }
-        ]
+        "name": "unnamedWire#4",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "CoutE"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "CoutE"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "L"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "CoutE"
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "L"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#42",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I4"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "I4"
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "L"
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 60.0
-          },
-          {
-            "x": 10.0,
-            "y": 17.5
-          }
-        ]
+        "name": "unnamedWire#43",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S2"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "S"
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "L"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 5.0,
-            "y": 380.0
-          },
-          {
-            "x": 5.0,
-            "y": 235.0
+            "x": 37.5,
+            "y": 465.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I5"
+          "pinName": "R1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "I5"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "R"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 5.0,
-            "y": 20.0
+            "x": 10.0,
+            "y": 180.0
           },
           {
-            "x": 5.0,
-            "y": 7.5
+            "x": 10.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "S4"
+          "pinName": "R2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "S"
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "R"
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#46",
         "path": [
           {
             "x": 10.0,
-            "y": 460.0
+            "y": 220.0
           },
           {
             "x": 10.0,
-            "y": 435.0
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "S3"
+          "pinName": "R3"
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "S"
+          "pinName": "R"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#47",
         "path": [
           {
             "x": 10.0,
-            "y": 420.0
+            "y": 260.0
           },
           {
             "x": 10.0,
-            "y": 335.0
+            "y": 315.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "CinE"
+          "compName": "_submodelinterface",
+          "pinName": "R4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "R"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#48",
         "path": [
           {
-            "x": 70.0,
-            "y": 7.5
-          },
-          {
-            "x": 70.0,
-            "y": 77.5
+            "x": 20.0,
+            "y": 300.0
           },
           {
-            "x": 27.5,
-            "y": 77.5
+            "x": 20.0,
+            "y": 415.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "Cout"
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "Cin"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "S"
         },
-        "name": "unnamedWire#54",
+        "name": "unnamedWire#49",
         "path": [
           {
-            "x": 85.0,
-            "y": 85.0
-          },
-          {
-            "x": 85.0,
-            "y": 175.0
-          },
-          {
-            "x": 40.0,
-            "y": 175.0
+            "x": 15.0,
+            "y": 340.0
           },
           {
-            "x": 40.0,
-            "y": 185.0
+            "x": 15.0,
+            "y": 135.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Cn"
+          "pinName": "S2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "Cin"
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "S"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#50",
         "path": [
           {
             "x": 5.0,
-            "y": 140.0
+            "y": 380.0
           },
           {
             "x": 5.0,
-            "y": 85.0
+            "y": 235.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "SBE"
+          "compName": "_submodelinterface",
+          "pinName": "S3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "S"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#51",
         "path": [
           {
-            "x": 62.5,
-            "y": 37.5
-          },
-          {
-            "x": 62.5,
-            "y": 70.0
+            "x": 10.0,
+            "y": 420.0
           },
           {
-            "x": 25.0,
-            "y": 70.0
+            "x": 10.0,
+            "y": 335.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "Cout"
+          "compName": "_submodelinterface",
+          "pinName": "S4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "S"
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#52",
         "path": [
           {
-            "x": 85.0,
-            "y": 285.0
+            "x": 10.0,
+            "y": 460.0
+          },
+          {
+            "x": 10.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I3"
+          "pinName": "Cn"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "I3"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "Cin"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#53",
         "path": [
           {
-            "x": 15.0,
-            "y": 100.0
+            "x": 5.0,
+            "y": 140.0
           },
           {
-            "x": 15.0,
-            "y": 27.5
+            "x": 5.0,
+            "y": 85.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "Cout"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "Cin"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#54",
+        "path": [
+          {
+            "x": 85.0,
+            "y": 85.0
+          },
+          {
+            "x": 85.0,
+            "y": 175.0
+          },
+          {
+            "x": 40.0,
+            "y": 175.0
+          },
+          {
+            "x": 40.0,
+            "y": 185.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1004,39 +1269,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#14",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUOneBit#3",
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "Cout"
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
-        },
-        "name": "unnamedWire#58",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#13",
-        "path": []
+        "name": "unnamedWire#56",
+        "path": [
+          {
+            "x": 85.0,
+            "y": 285.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1061,124 +1307,49 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 27.5,
-            "y": 405.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#15",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "F"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F1"
-        },
-        "name": "unnamedWire#59",
-        "path": [
-          {
-            "x": 90.0,
-            "y": 95.0
-          },
-          {
-            "x": 90.0,
-            "y": 20.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#18",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "RN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 57.5,
-            "y": 57.5
-          },
-          {
-            "x": 57.5,
-            "y": 65.0
-          },
-          {
-            "x": 30.0,
-            "y": 65.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "pinName": "Cout"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#58",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUOneBit#2",
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "F"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "F3"
+          "pinName": "F1"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#59",
         "path": [
           {
-            "x": 100.0,
-            "y": 295.0
+            "x": 90.0,
+            "y": 95.0
           },
           {
-            "x": 100.0,
-            "y": 100.0
+            "x": 90.0,
+            "y": 20.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "CoutE"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "GUIAm2901ALUOneBit#1",
@@ -1202,22 +1373,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "F"
         },
         "pin2": {
-          "compName": "GUIxor#0",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "F3"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#61",
         "path": [
           {
-            "x": 90.0,
-            "y": 375.0
+            "x": 100.0,
+            "y": 295.0
           },
           {
-            "x": 90.0,
-            "y": 405.0
+            "x": 100.0,
+            "y": 100.0
           }
         ]
       },
@@ -1244,49 +1415,25 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "RN"
-        },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn+4"
+          "compName": "GUIxor#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#63",
         "path": [
           {
-            "x": 130.0,
-            "y": 385.0
+            "x": 90.0,
+            "y": 375.0
           },
           {
-            "x": 130.0,
-            "y": 180.0
+            "x": 90.0,
+            "y": 405.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "RN"
-        },
-        "name": "unnamedWire#20",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#19",
@@ -1306,33 +1453,25 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "RN"
+          "compName": "_submodelinterface",
+          "pinName": "Cn+4"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#65",
         "path": [
           {
-            "x": 30.0,
-            "y": 425.0
+            "x": 130.0,
+            "y": 385.0
+          },
+          {
+            "x": 130.0,
+            "y": 180.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "RN"
-        },
-        "name": "unnamedWire#22",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUIxor#0",
@@ -1346,170 +1485,49 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "name": "unnamedWire#25",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "SN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "name": "unnamedWire#24",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 27.5
-          },
-          {
-            "x": 65.0,
-            "y": 72.5
-          },
-          {
-            "x": 32.5,
-            "y": 72.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "SN"
-        },
-        "name": "unnamedWire#27",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "CoutE"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "SN"
-        },
-        "name": "unnamedWire#29",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "SN"
+          "pinName": "CoutE"
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "SN"
-        },
-        "name": "unnamedWire#30",
-        "path": [
-          {
-            "x": 32.5,
-            "y": 445.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "name": "unnamedWire#32",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "FN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "pinName": "CoutE"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 60.0,
-            "y": 47.5
-          },
-          {
-            "x": 60.0,
-            "y": 67.5
-          },
-          {
-            "x": 35.0,
-            "y": 67.5
+            "x": 25.0,
+            "y": 395.0
           }
         ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "FN"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "name": "unnamedWire#33",
-        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIAm2901ALUInclDecode",
     "centerTextHeight": 5.0,
@@ -1517,5 +1535,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 71d2d2d..4bfbadc 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 230.0,
@@ -6,258 +5,302 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 195.0
+        "y": 115.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 205.0
+        "y": 125.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 215.0
+        "y": 135.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 225.0
+        "y": 145.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 155.0
       },
-      "name": "I0",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 165.0
       },
-      "name": "I1",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 175.0
       },
-      "name": "I2",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 185.0
       },
-      "name": "I3",
-      "logicWidth": 1
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 65.0
       },
-      "name": "OVR",
-      "logicWidth": 1
+      "name": "Cn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "I4",
-      "logicWidth": 1
+      "name": "Cn+4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 75.0
       },
-      "name": "Cn",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 85.0
       },
-      "name": "I5",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 115.0
+        "y": 95.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 125.0
+        "y": 105.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 135.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "F1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 145.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "F2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 45.0
+        "y": 25.0
       },
-      "name": "Cn+4",
-      "logicWidth": 1
+      "name": "F3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 35.0
       },
-      "name": "F1",
-      "logicWidth": 1
+      "name": "F4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "F2",
-      "logicWidth": 1
+      "name": "I0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 45.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "I1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "F3",
-      "logicWidth": 1
+      "name": "I2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 25.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "I3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "F4",
-      "logicWidth": 1
+      "name": "I4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 5.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "I5",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 155.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "OVR",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 105.0
+        "y": 195.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 165.0
+        "y": 205.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 175.0
+        "y": 215.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 185.0
+        "y": 225.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
-        "id": "GUIsel3_4",
-        "name": "GUIsel3_4#0",
+        "id": "GUIAm2901ALUInclDecode",
+        "name": "GUIAm2901ALUInclDecode#0",
+        "pos": {
+          "x": 60.0,
+          "y": 15.0
+        }
+      },
+      {
+        "id": "GUIAm2901SourceDecode",
+        "name": "GUIAm2901SourceDecode#0",
+        "pos": {
+          "x": 15.0,
+          "y": 165.0
+        }
+      },
+      {
+        "id": "GUIsel2_4",
+        "name": "GUIsel2_4#0",
         "pos": {
           "x": 45.0,
-          "y": 575.0
+          "y": 365.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#0",
         "pos": {
-          "x": 14.0,
-          "y": 499.0
-        },
-        "params": 1
+          "x": 45.0,
+          "y": 575.0
+        }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 9.0,
@@ -266,24 +309,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIAm2901ALUInclDecode",
-        "name": "GUIAm2901ALUInclDecode#0",
-        "pos": {
-          "x": 60.0,
-          "y": 15.0
-        }
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 24.0,
-          "y": 579.0
+          "x": 14.0,
+          "y": 499.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 19.0,
@@ -292,1067 +327,1061 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIsel2_4",
-        "name": "GUIsel2_4#0",
-        "pos": {
-          "x": 45.0,
-          "y": 365.0
-        }
-      },
-      {
-        "id": "GUIAm2901SourceDecode",
-        "name": "GUIAm2901SourceDecode#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 15.0,
-          "y": 165.0
-        }
+          "x": 24.0,
+          "y": 579.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "I5"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R1"
+          "pinName": "I5"
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 82.5,
-            "y": 370.0
-          },
-          {
-            "x": 82.5,
-            "y": 162.5
-          },
-          {
-            "x": 20.0,
-            "y": 162.5
-          },
-          {
-            "x": 20.0,
-            "y": 60.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "RD"
+          "compName": "_submodelinterface",
+          "pinName": "I4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SA"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 55.0,
-            "y": 210.0
-          },
-          {
-            "x": 55.0,
-            "y": 220.0
-          },
-          {
-            "x": 25.0,
-            "y": 220.0
+            "x": 5.0,
+            "y": 60.0
           },
           {
-            "x": 25.0,
-            "y": 370.0
+            "x": 5.0,
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R3"
-        },
-        "name": "unnamedWire#38",
-        "path": [
-          {
-            "x": 87.5,
-            "y": 390.0
-          },
-          {
-            "x": 87.5,
-            "y": 157.5
-          },
-          {
-            "x": 25.0,
-            "y": 157.5
-          },
-          {
-            "x": 25.0,
-            "y": 80.0
-          }
-        ]
+          "compName": "GUIsel2_4#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#10",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
-        "path": [
-          {
-            "x": 85.0,
-            "y": 380.0
-          },
-          {
-            "x": 85.0,
-            "y": 160.0
-          },
-          {
-            "x": 22.5,
-            "y": 160.0
-          },
-          {
-            "x": 22.5,
-            "y": 70.0
-          }
-        ]
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y4"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 90.0,
-            "y": 400.0
-          },
-          {
-            "x": 90.0,
-            "y": 155.0
-          },
-          {
-            "x": 27.5,
-            "y": 155.0
-          },
-          {
-            "x": 27.5,
-            "y": 90.0
+            "x": 10.0,
+            "y": 430.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S2"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 95.0,
-            "y": 590.0
-          },
-          {
-            "x": 95.0,
-            "y": 150.0
-          },
-          {
-            "x": 32.5,
-            "y": 150.0
-          },
-          {
-            "x": 32.5,
-            "y": 110.0
+            "x": 15.0,
+            "y": 440.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S1"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 92.5,
-            "y": 580.0
-          },
-          {
-            "x": 92.5,
-            "y": 152.5
-          },
-          {
-            "x": 30.0,
-            "y": 152.5
-          },
-          {
-            "x": 30.0,
-            "y": 100.0
+            "x": 20.0,
+            "y": 450.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S4"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 100.0,
-            "y": 610.0
-          },
-          {
-            "x": 100.0,
-            "y": 145.0
-          },
-          {
-            "x": 37.5,
-            "y": 145.0
-          },
-          {
-            "x": 37.5,
-            "y": 130.0
+            "x": 25.0,
+            "y": 460.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#19",
         "path": [
           {
-            "x": 97.5,
-            "y": 600.0
-          },
-          {
-            "x": 97.5,
-            "y": 147.5
-          },
-          {
-            "x": 35.0,
-            "y": 147.5
-          },
-          {
-            "x": 35.0,
-            "y": 120.0
+            "x": 10.0,
+            "y": 610.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F2"
+          "compName": "_submodelinterface",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 135.0,
-            "y": 30.0
+            "x": 15.0,
+            "y": 100.0
           },
           {
-            "x": 135.0,
-            "y": 60.0
+            "x": 15.0,
+            "y": 40.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#44",
-        "path": []
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 620.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F4"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#21",
         "path": [
           {
-            "x": 125.0,
-            "y": 50.0
-          },
-          {
-            "x": 125.0,
-            "y": 140.0
+            "x": 20.0,
+            "y": 630.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F3"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#46",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 40.0
-          },
+        "name": "unnamedWire#22",
+        "path": [
           {
-            "x": 130.0,
-            "y": 100.0
+            "x": 25.0,
+            "y": 640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "OVR"
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "OVR"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 115.0,
-            "y": 70.0
+            "x": 5.0,
+            "y": 620.0
           },
           {
-            "x": 115.0,
-            "y": 220.0
+            "x": 5.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "Cn+4"
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn+4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#48",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 60.0
-          },
-          {
-            "x": 120.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#24",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D3"
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#25",
         "path": [
           {
             "x": 5.0,
-            "y": 380.0
+            "y": 700.0
           },
           {
             "x": 5.0,
-            "y": 410.0
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#26",
         "path": [
           {
             "x": 10.0,
-            "y": 340.0
+            "y": 740.0
           },
           {
             "x": 10.0,
-            "y": 400.0
+            "y": 680.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D1"
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#27",
         "path": [
           {
             "x": 15.0,
-            "y": 300.0
+            "y": 780.0
           },
           {
             "x": 15.0,
-            "y": 390.0
+            "y": 690.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Cn"
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "Cn"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#28",
         "path": [
           {
-            "x": 10.0,
-            "y": 260.0
+            "x": 20.0,
+            "y": 820.0
           },
           {
-            "x": 10.0,
-            "y": 50.0
+            "x": 20.0,
+            "y": 700.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I4"
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "I4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 5.0,
-            "y": 60.0
+            "x": 25.0,
+            "y": 860.0
           },
           {
-            "x": 5.0,
-            "y": 30.0
+            "x": 25.0,
+            "y": 710.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I5"
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "I5"
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0"
+          "pinName": "I2"
         },
         "pin2": {
           "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "I0"
+          "pinName": "I2"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 5.0,
-            "y": 220.0
+            "y": 140.0
           },
           {
             "x": 5.0,
-            "y": 190.0
+            "y": 170.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D4"
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#10",
-        "path": []
+        "name": "unnamedWire#30",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 900.0
+          },
+          {
+            "x": 30.0,
+            "y": 720.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
-        },
-        "pin2": {
           "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "I1"
-        },
-        "name": "unnamedWire#4",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I2"
+          "pinName": "SQ"
         },
         "pin2": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "I2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 5.0,
-            "y": 140.0
+            "x": 75.0,
+            "y": 170.0
           },
           {
-            "x": 5.0,
-            "y": 170.0
+            "x": 75.0,
+            "y": 240.0
+          },
+          {
+            "x": 30.0,
+            "y": 240.0
+          },
+          {
+            "x": 30.0,
+            "y": 600.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I3"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "RA"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "I3"
+          "compName": "GUIsel2_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 15.0,
-            "y": 100.0
+            "x": 70.0,
+            "y": 180.0
           },
           {
-            "x": 15.0,
-            "y": 40.0
+            "x": 70.0,
+            "y": 235.0
+          },
+          {
+            "x": 20.0,
+            "y": 235.0
+          },
+          {
+            "x": 20.0,
+            "y": 380.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "SB"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#33",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 190.0
+          },
+          {
+            "x": 65.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 590.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "SA"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 200.0
+          },
+          {
+            "x": 60.0,
+            "y": 225.0
+          },
+          {
+            "x": 40.0,
+            "y": 225.0
+          },
+          {
+            "x": 40.0,
+            "y": 580.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "RD"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#13",
-        "path": []
+        "name": "unnamedWire#35",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 210.0
+          },
+          {
+            "x": 55.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 370.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R1"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#36",
         "path": [
           {
-            "x": 15.0,
-            "y": 440.0
+            "x": 82.5,
+            "y": 370.0
+          },
+          {
+            "x": 82.5,
+            "y": 162.5
+          },
+          {
+            "x": 20.0,
+            "y": 162.5
+          },
+          {
+            "x": 20.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B1"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R2"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 10.0,
-            "y": 430.0
+            "x": 85.0,
+            "y": 380.0
+          },
+          {
+            "x": 85.0,
+            "y": 160.0
+          },
+          {
+            "x": 22.5,
+            "y": 160.0
+          },
+          {
+            "x": 22.5,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B4"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R3"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#38",
         "path": [
+          {
+            "x": 87.5,
+            "y": 390.0
+          },
+          {
+            "x": 87.5,
+            "y": 157.5
+          },
           {
             "x": 25.0,
-            "y": 460.0
+            "y": 157.5
+          },
+          {
+            "x": 25.0,
+            "y": 80.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R4"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#39",
         "path": [
           {
-            "x": 20.0,
-            "y": 450.0
+            "x": 90.0,
+            "y": 400.0
+          },
+          {
+            "x": 90.0,
+            "y": 155.0
+          },
+          {
+            "x": 27.5,
+            "y": 155.0
+          },
+          {
+            "x": 27.5,
+            "y": 90.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "I1"
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUIsel3_4#0",
-          "pinName": "A1"
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#19",
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 10.0,
-            "y": 610.0
+            "x": 92.5,
+            "y": 580.0
+          },
+          {
+            "x": 92.5,
+            "y": 152.5
+          },
+          {
+            "x": 30.0,
+            "y": 152.5
+          },
+          {
+            "x": 30.0,
+            "y": 100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 20.0,
-            "y": 630.0
+            "x": 95.0,
+            "y": 590.0
+          },
+          {
+            "x": 95.0,
+            "y": 150.0
+          },
+          {
+            "x": 32.5,
+            "y": 150.0
+          },
+          {
+            "x": 32.5,
+            "y": 110.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S3"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#42",
         "path": [
           {
-            "x": 15.0,
-            "y": 620.0
+            "x": 97.5,
+            "y": 600.0
+          },
+          {
+            "x": 97.5,
+            "y": 147.5
+          },
+          {
+            "x": 35.0,
+            "y": 147.5
+          },
+          {
+            "x": 35.0,
+            "y": 120.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B1"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S4"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 5.0,
-            "y": 620.0
+            "x": 100.0,
+            "y": 610.0
           },
           {
-            "x": 5.0,
-            "y": 650.0
+            "x": 100.0,
+            "y": 145.0
+          },
+          {
+            "x": 37.5,
+            "y": 145.0
+          },
+          {
+            "x": 37.5,
+            "y": 130.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A4"
+          "compName": "_submodelinterface",
+          "pinName": "F1"
         },
-        "name": "unnamedWire#22",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 640.0
-          }
-        ]
+        "name": "unnamedWire#44",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B3"
+          "compName": "_submodelinterface",
+          "pinName": "F2"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 5.0,
-            "y": 700.0
+            "x": 135.0,
+            "y": 30.0
           },
           {
-            "x": 5.0,
-            "y": 670.0
+            "x": 135.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B2"
-        },
-        "name": "unnamedWire#24",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C1"
+          "pinName": "F3"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#46",
         "path": [
           {
-            "x": 15.0,
-            "y": 780.0
+            "x": 130.0,
+            "y": 40.0
           },
           {
-            "x": 15.0,
-            "y": 690.0
+            "x": 130.0,
+            "y": 100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B4"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B4"
+          "compName": "_submodelinterface",
+          "pinName": "F4"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 10.0,
-            "y": 740.0
+            "x": 125.0,
+            "y": 50.0
           },
           {
-            "x": 10.0,
-            "y": 680.0
+            "x": 125.0,
+            "y": 140.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Q3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "Cn+4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C3"
+          "compName": "_submodelinterface",
+          "pinName": "Cn+4"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#48",
         "path": [
           {
-            "x": 25.0,
-            "y": 860.0
+            "x": 120.0,
+            "y": 60.0
           },
           {
-            "x": 25.0,
-            "y": 710.0
+            "x": 120.0,
+            "y": 180.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Q2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "OVR"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C2"
+          "compName": "_submodelinterface",
+          "pinName": "OVR"
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#49",
         "path": [
           {
-            "x": 20.0,
-            "y": 820.0
+            "x": 115.0,
+            "y": 70.0
           },
           {
-            "x": 20.0,
-            "y": 700.0
+            "x": 115.0,
+            "y": 220.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q4"
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C4"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 30.0,
-            "y": 900.0
+            "x": 5.0,
+            "y": 220.0
           },
           {
-            "x": 30.0,
-            "y": 720.0
+            "x": 5.0,
+            "y": 190.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "RA"
+          "compName": "_submodelinterface",
+          "pinName": "Cn"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SB"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "Cn"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 70.0,
-            "y": 180.0
-          },
-          {
-            "x": 70.0,
-            "y": 235.0
-          },
-          {
-            "x": 20.0,
-            "y": 235.0
+            "x": 10.0,
+            "y": 260.0
           },
           {
-            "x": 20.0,
-            "y": 380.0
+            "x": 10.0,
+            "y": 50.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "SQ"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SC"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 75.0,
-            "y": 170.0
-          },
-          {
-            "x": 75.0,
-            "y": 240.0
-          },
-          {
-            "x": 30.0,
-            "y": 240.0
+            "x": 15.0,
+            "y": 300.0
           },
           {
-            "x": 30.0,
-            "y": 600.0
+            "x": 15.0,
+            "y": 390.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "SA"
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SA"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 60.0,
-            "y": 200.0
-          },
-          {
-            "x": 60.0,
-            "y": 225.0
-          },
-          {
-            "x": 40.0,
-            "y": 225.0
+            "x": 10.0,
+            "y": 340.0
           },
           {
-            "x": 40.0,
-            "y": 580.0
+            "x": 10.0,
+            "y": 400.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "SB"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SB"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 65.0,
-            "y": 190.0
-          },
-          {
-            "x": 65.0,
-            "y": 230.0
-          },
-          {
-            "x": 35.0,
-            "y": 230.0
+            "x": 5.0,
+            "y": 380.0
           },
           {
-            "x": 35.0,
-            "y": 590.0
+            "x": 5.0,
+            "y": 410.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
     "centerTextHeight": 5.0,
@@ -1360,5 +1389,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index b32a2b1..afe676b 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
@@ -6,97 +5,108 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "R",
-      "logicWidth": 1
+      "name": "Cin",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 25.0
       },
-      "name": "S",
-      "logicWidth": 1
+      "name": "CinE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 15.0
+        "y": 5.0
       },
-      "name": "F",
-      "logicWidth": 1
+      "name": "Cout",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 15.0
       },
-      "name": "FN",
-      "logicWidth": 1
+      "name": "CoutE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "Cin",
-      "logicWidth": 1
+      "name": "F",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 75.0
       },
-      "name": "SN",
-      "logicWidth": 1
+      "name": "FN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 85.0
       },
-      "name": "Cout",
-      "logicWidth": 1
+      "name": "L",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 35.0
       },
-      "name": "RN",
-      "logicWidth": 1
+      "name": "R",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 45.0
       },
-      "name": "L",
-      "logicWidth": 1
+      "name": "RN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 55.0
       },
-      "name": "CinE",
-      "logicWidth": 1
+      "name": "S",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 65.0
       },
-      "name": "CoutE",
-      "logicWidth": 1
+      "name": "SN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 60.0,
@@ -105,22 +115,28 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIand",
+        "name": "GUIand#0",
         "pos": {
-          "x": 54.0,
-          "y": 69.0
-        },
-        "params": 1
+          "x": 10.0,
+          "y": 20.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUIand",
+        "name": "GUIand#1",
         "pos": {
-          "x": 49.0,
-          "y": 59.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 20.0
+        }
+      },
+      {
+        "id": "GUIfulladder",
+        "name": "GUIfulladder#0",
+        "pos": {
+          "x": 60.0,
+          "y": 20.0
+        }
       },
       {
         "id": "GUImux1",
@@ -131,11 +147,11 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIand",
-        "name": "GUIand#0",
+        "id": "GUIxor",
+        "name": "GUIxor#0",
         "pos": {
           "x": 10.0,
-          "y": 20.0
+          "y": 190.0
         }
       },
       {
@@ -155,284 +171,264 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIfulladder",
-        "name": "GUIfulladder#0",
-        "pos": {
-          "x": 60.0,
-          "y": 20.0
-        }
-      },
-      {
-        "id": "GUIxor",
-        "name": "GUIxor#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 10.0,
-          "y": 190.0
-        }
+          "x": 49.0,
+          "y": 59.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIand",
-        "name": "GUIand#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 135.0,
-          "y": 20.0
-        }
+          "x": 54.0,
+          "y": 69.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Cin"
         },
         "pin2": {
-          "compName": "GUIfulladder#0",
-          "pinName": "C"
+          "compName": "GUIand#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "CoutE"
+        },
+        "pin2": {
+          "compName": "GUIand#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 55.0,
-            "y": 45.0
+            "x": 5.0,
+            "y": 75.0
+          },
+          {
+            "x": 5.0,
+            "y": 10.0
+          },
+          {
+            "x": 130.0,
+            "y": 10.0
+          },
+          {
+            "x": 130.0,
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIxor#1",
+          "compName": "GUIxor#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 55.0,
-            "y": 295.0
+            "x": 50.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIfulladder#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I0"
+          "compName": "GUIfulladder#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 100.0,
-            "y": 25.0
-          },
-          {
-            "x": 100.0,
-            "y": 65.0
-          },
-          {
-            "x": 85.0,
-            "y": 65.0
-          },
-          {
-            "x": 85.0,
-            "y": 85.0
+            "x": 50.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "GUIxor#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 82.5,
-            "y": 65.0
-          },
-          {
-            "x": 82.5,
-            "y": 95.0
+            "x": 55.0,
+            "y": 295.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIfulladder#0",
-          "pinName": "Z"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#1",
-          "pinName": "B"
+          "compName": "GUIfulladder#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#17",
-        "path": []
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUImux1#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIxor#2",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "GUIfulladder#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "L"
+          "pinName": "Y"
         },
         "pin2": {
           "compName": "GUImux1#0",
-          "pinName": "S0"
+          "pinName": "I0"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 87.5,
-            "y": 425.0
+            "x": 100.0,
+            "y": 25.0
           },
           {
-            "x": 87.5,
-            "y": 75.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "FN"
-        },
-        "pin2": {
-          "compName": "GUIxor#2",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#7",
-        "path": [
+            "x": 100.0,
+            "y": 65.0
+          },
           {
-            "x": 130.0,
-            "y": 375.0
+            "x": 85.0,
+            "y": 65.0
           },
           {
-            "x": 130.0,
+            "x": 85.0,
             "y": 85.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SN"
+          "compName": "GUIfulladder#0",
+          "pinName": "Z"
         },
         "pin2": {
-          "compName": "GUIxor#1",
+          "compName": "GUIand#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#6"
+        "name": "unnamedWire#17",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "CoutE"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#1",
-          "pinName": "A"
+          "compName": "GUImux1#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 5.0,
-            "y": 75.0
-          },
-          {
-            "x": 5.0,
-            "y": 10.0
-          },
-          {
-            "x": 130.0,
-            "y": 10.0
+            "x": 82.5,
+            "y": 65.0
           },
           {
-            "x": 130.0,
-            "y": 25.0
+            "x": 82.5,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Cin"
+          "compName": "GUImux1#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUIxor#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "S"
+          "pinName": "CinE"
         },
         "pin2": {
-          "compName": "GUIxor#1",
-          "pinName": "A"
+          "compName": "GUIand#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5"
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 125.0
+          },
+          {
+            "x": 7.5,
+            "y": 35.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIxor#0",
+          "compName": "GUIand#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Cout"
         },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 50.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#20",
+        "path": []
       },
       {
         "pin1": {
@@ -449,90 +445,105 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "RN"
+          "pinName": "R"
         },
         "pin2": {
           "compName": "GUIxor#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#4"
+        "name": "unnamedWire#3"
       },
       {
         "pin1": {
-          "compName": "GUIand#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "RN"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cout"
+          "compName": "GUIxor#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#20",
-        "path": []
+        "name": "unnamedWire#4"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "R"
+          "pinName": "S"
         },
         "pin2": {
-          "compName": "GUIxor#0",
+          "compName": "GUIxor#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#3"
+        "name": "unnamedWire#5"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SN"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIxor#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#12",
-        "path": []
+        "name": "unnamedWire#6"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "CinE"
+          "pinName": "FN"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUIxor#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 7.5,
-            "y": 125.0
+            "x": 130.0,
+            "y": 375.0
           },
           {
-            "x": 7.5,
-            "y": 35.0
+            "x": 130.0,
+            "y": 85.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "L"
         },
         "pin2": {
-          "compName": "GUIfulladder#0",
-          "pinName": "B"
+          "compName": "GUImux1#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 50.0,
-            "y": 35.0
+            "x": 87.5,
+            "y": 425.0
+          },
+          {
+            "x": 87.5,
+            "y": 75.0
           }
         ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIfulladder#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIAm2901ALUOneBit",
     "centerTextHeight": 5.0,
@@ -540,5 +551,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 38f5fa6..b68379d 100644 (file)
@@ -1,55 +1,60 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "LSH",
-      "logicWidth": 1
+      "name": "I6",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "NSH",
-      "logicWidth": 1
+      "name": "I7",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 5.0
       },
-      "name": "RSH",
-      "logicWidth": 1
+      "name": "I8",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "I6",
-      "logicWidth": 1
+      "name": "LSH",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "YF",
-      "logicWidth": 1
+      "name": "NSH",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "I7",
-      "logicWidth": 1
+      "name": "QWE",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -57,75 +62,78 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "RAMWE",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "QWE",
-      "logicWidth": 1
+      "name": "RSH",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "I8",
-      "logicWidth": 1
+      "name": "YF",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 15.0,
-          "y": 50.0
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 74.0,
-          "y": 159.0
+          "x": 15.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 15.0,
-          "y": 10.0
+          "x": 80.0,
+          "y": 145.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#11",
         "pos": {
-          "x": 74.0,
-          "y": 104.0
+          "x": 110.0,
+          "y": 105.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#12",
         "pos": {
-          "x": 15.0,
-          "y": 150.0
+          "x": 115.0,
+          "y": 210.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#2",
         "pos": {
           "x": 15.0,
@@ -134,300 +142,313 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 109.0,
-          "y": 214.0
+          "x": 15.0,
+          "y": 150.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 4.0,
-          "y": 14.0
+          "x": 50.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 4.0,
-          "y": 19.0
+          "x": 50.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 9.0,
-          "y": 59.0
+          "x": 50.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 4.0,
-          "y": 24.0
+          "x": 50.0,
+          "y": 130.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 9.0,
-          "y": 104.0
+          "x": 80.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#9",
         "pos": {
-          "x": 9.0,
-          "y": 64.0
+          "x": 80.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 39.0,
-          "y": 59.0
+          "x": 4.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 154.0
+          "y": 14.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 44.0,
-          "y": 54.0
+          "x": 39.0,
+          "y": 134.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 44.0,
+          "x": 74.0,
           "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 39.0,
-          "y": 134.0
+          "x": 74.0,
+          "y": 99.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
           "x": 74.0,
-          "y": 99.0
+          "y": 104.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
           "x": 74.0,
-          "y": 19.0
+          "y": 159.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 115.0,
-          "y": 210.0
+          "x": 109.0,
+          "y": 214.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 110.0,
-          "y": 105.0
+          "x": 4.0,
+          "y": 24.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 80.0,
-          "y": 145.0
+          "x": 9.0,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 80.0,
-          "y": 90.0
+          "x": 9.0,
+          "y": 64.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 80.0,
-          "y": 10.0
+          "x": 9.0,
+          "y": 104.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 50.0,
-          "y": 50.0
+          "x": 4.0,
+          "y": 154.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 50.0,
-          "y": 10.0
+          "x": 39.0,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 50.0,
-          "y": 130.0
+          "x": 44.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 50.0,
-          "y": 90.0
+          "x": 44.0,
+          "y": 54.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I8"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#14",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 165.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "LSH"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 140.0
-          },
-          {
-            "x": 125.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "B"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#35",
-        "path": []
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I6"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
-        "path": []
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 100.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#13",
         "path": []
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 165.0
+          }
+        ]
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#1",
@@ -455,20 +476,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "A"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
-        "path": [
-          {
-            "x": 75.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#16",
+        "path": []
       },
       {
         "pin1": {
@@ -476,14 +492,14 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "B"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#17",
         "path": [
           {
             "x": 40.0,
-            "y": 65.0
+            "y": 25.0
           }
         ]
       },
@@ -493,29 +509,17 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 40.0,
-            "y": 25.0
+            "y": 65.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#39",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUINandGate#0",
@@ -530,65 +534,16 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#11",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#41"
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#8",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "RSH"
-        },
-        "name": "unnamedWire#40",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 20.0
-          },
-          {
-            "x": 130.0,
-            "y": 60.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
-        },
-        "name": "unnamedWire#43",
-        "path": [
-          {
-            "x": 110.0,
-            "y": 155.0
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#8",
@@ -616,62 +571,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#11",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#42",
-        "path": [
-          {
-            "x": 75.0,
-            "y": 170.0
-          },
-          {
-            "x": 105.0,
-            "y": 170.0
-          },
-          {
-            "x": 105.0,
-            "y": 120.0
-          }
-        ]
-      },
-      {
-        "pin1": {
           "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#23",
-        "path": [
-          {
-            "x": 45.0,
-            "y": 95.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#12",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#45",
-        "path": [
-          {
-            "x": 110.0,
-            "y": 225.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
@@ -687,45 +595,21 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
+          "compName": "GUINandGate#6",
           "pinName": "A"
         },
-        "name": "unnamedWire#44",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 40.0,
-            "y": 100.0
+            "x": 45.0,
+            "y": 95.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "GUINandGate#12",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QWE"
-        },
-        "name": "unnamedWire#47",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#5",
@@ -753,29 +637,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "YF"
-        },
-        "name": "unnamedWire#46"
-      },
-      {
-        "pin1": {
           "compName": "WireCrossPoint#10",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": [
           {
             "x": 40.0,
-            "y": 145.0
+            "y": 100.0
           }
         ]
       },
@@ -793,18 +666,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "A"
+          "compName": "GUINandGate#7",
+          "pinName": "B"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 75.0,
-            "y": 15.0
+            "x": 40.0,
+            "y": 145.0
           }
         ]
       },
@@ -822,132 +695,184 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "GUINandGate#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#29",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
-        "name": "unnamedWire#8",
-        "path": []
+        "name": "unnamedWire#30",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 25.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "_submodelinterface",
+          "pinName": "RAMWE"
+        },
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 125.0,
+            "y": 60.0
+          },
+          {
+            "x": 125.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#9",
           "pinName": "A"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 10.0,
-            "y": 55.0
+            "x": 75.0,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I8"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#9",
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "LSH"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#36",
         "path": [
           {
-            "x": 75.0,
-            "y": 25.0
+            "x": 125.0,
+            "y": 140.0
+          },
+          {
+            "x": 125.0,
+            "y": 180.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I7"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "B"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
@@ -964,115 +889,199 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#8",
           "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "RAMWE"
+          "pinName": "RSH"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 125.0,
-            "y": 60.0
+            "x": 130.0,
+            "y": 20.0
           },
           {
-            "x": 125.0,
-            "y": 100.0
+            "x": 130.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#11",
           "pinName": "A"
         },
-        "name": "unnamedWire#3",
-        "path": []
+        "name": "unnamedWire#41"
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I6"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUINandGate#11",
+          "pinName": "B"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#42",
         "path": [
           {
-            "x": 5.0,
-            "y": 100.0
+            "x": 75.0,
+            "y": 170.0
+          },
+          {
+            "x": 105.0,
+            "y": 170.0
+          },
+          {
+            "x": 105.0,
+            "y": 120.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
-        "name": "unnamedWire#34",
-        "path": []
+        "name": "unnamedWire#43",
+        "path": [
+          {
+            "x": 110.0,
+            "y": 155.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#12",
+          "pinName": "A"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#12",
+          "pinName": "B"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 5.0,
-            "y": 95.0
+            "x": 110.0,
+            "y": 225.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "GUINandGate#11",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "YF"
+        },
+        "name": "unnamedWire#46"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QWE"
+        },
+        "name": "unnamedWire#47",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I7"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#9",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 75.0,
-            "y": 95.0
+            "x": 10.0,
+            "y": 55.0
           }
         ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIAm2901DestDecode",
     "centerTextHeight": 5.0,
@@ -1080,5 +1089,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index cb28db6..d9966e1 100644 (file)
@@ -1,23 +1,15 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 50.0,
   "interfacePins": [
-    {
-      "location": {
-        "x": 35.0,
-        "y": 45.0
-      },
-      "name": "RD",
-      "logicWidth": 1
-    },
     {
       "location": {
         "x": 0.0,
         "y": 25.0
       },
       "name": "I0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,31 +26,35 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "I2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 15.0
       },
-      "name": "SQ",
-      "logicWidth": 1
+      "name": "RA",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 45.0
       },
-      "name": "SA",
-      "logicWidth": 1
+      "name": "RD",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 15.0
+        "y": 35.0
       },
-      "name": "RA",
-      "logicWidth": 1
+      "name": "SA",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,167 +62,177 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "SB",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "SQ",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 10.0,
-          "y": 50.0
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 94.0,
-          "y": 19.0
+          "x": 10.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 10.0,
-          "y": 10.0
+          "x": 70.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#11",
         "pos": {
-          "x": 64.0,
-          "y": 139.0
+          "x": 70.0,
+          "y": 130.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#12",
         "pos": {
-          "x": 40.0,
-          "y": 10.0
+          "x": 70.0,
+          "y": 170.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#13",
         "pos": {
-          "x": 10.0,
-          "y": 90.0
+          "x": 100.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#14",
         "pos": {
-          "x": 94.0,
-          "y": 179.0
+          "x": 100.0,
+          "y": 170.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 6.5,
-          "y": 19.0
+          "x": 10.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 4.0,
-          "y": 19.0
+          "x": 40.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 6.5,
-          "y": 59.0
+          "x": 40.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 4.0,
-          "y": 144.0
+          "x": 40.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 6.5,
-          "y": 104.0
+          "x": 40.0,
+          "y": 130.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 6.5,
-          "y": 99.0
+          "x": 40.0,
+          "y": 170.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 34.0,
-          "y": 59.0
+          "x": 70.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#9",
         "pos": {
-          "x": 31.5,
-          "y": 54.0
+          "x": 70.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 34.0,
-          "y": 134.0
+          "x": 4.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 34.0,
-          "y": 64.0
+          "x": 6.5,
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#10",
         "pos": {
           "x": 36.5,
@@ -234,889 +241,890 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
           "x": 64.0,
-          "y": 99.0
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
           "x": 64.0,
-          "y": 59.0
+          "y": 99.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 70.0,
-          "y": 170.0
+          "x": 64.0,
+          "y": 139.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 70.0,
-          "y": 130.0
+          "x": 94.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#14",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 100.0,
-          "y": 170.0
+          "x": 94.0,
+          "y": 179.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#13",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 100.0,
-          "y": 10.0
+          "x": 4.0,
+          "y": 144.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 70.0,
-          "y": 90.0
+          "x": 6.5,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 70.0,
-          "y": 50.0
+          "x": 6.5,
+          "y": 99.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 70.0,
-          "y": 10.0
+          "x": 6.5,
+          "y": 104.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 40.0,
-          "y": 90.0
+          "x": 31.5,
+          "y": 54.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 40.0,
-          "y": 50.0
+          "x": 34.0,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 40.0,
-          "y": 170.0
+          "x": 34.0,
+          "y": 64.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 40.0,
-          "y": 130.0
+          "x": 34.0,
+          "y": 134.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "B"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 65.0,
-            "y": 105.0
+            "x": 5.0,
+            "y": 5.0
+          },
+          {
+            "x": 35.0,
+            "y": 5.0
+          },
+          {
+            "x": 35.0,
+            "y": 15.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 65.0,
-            "y": 145.0
+            "x": 7.5,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "_submodelinterface",
+          "pinName": "I0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 65.0,
-            "y": 135.0
+            "x": 7.5,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
-          "pinName": "A"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#39"
+        "name": "unnamedWire#13",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#13",
-          "pinName": "A"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#5",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 95.0,
-            "y": 15.0
+            "x": 7.5,
+            "y": 112.5
+          },
+          {
+            "x": 32.5,
+            "y": 112.5
+          },
+          {
+            "x": 32.5,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#40",
-        "path": []
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 32.5,
+            "y": 20.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "RA"
+          "compName": "GUINandGate#4",
+          "pinName": "A"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#13",
-          "pinName": "B"
+          "compName": "GUINandGate#5",
+          "pinName": "A"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 95.0,
-            "y": 25.0
+            "x": 32.5,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SA"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SB"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#14",
-          "pinName": "A"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 95.0,
-            "y": 175.0
+            "x": 35.0,
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#12",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#13",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SQ"
+          "compName": "GUINandGate#4",
+          "pinName": "B"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#14",
-          "pinName": "B"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#48",
-        "path": [
-          {
-            "x": 95.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#23",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#6",
           "pinName": "A"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#24",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 7.5,
-            "y": 55.0
+            "x": 35.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 5.0,
-            "y": 195.0
+            "x": 37.5,
+            "y": 35.0
           },
           {
             "x": 65.0,
-            "y": 195.0
+            "y": 35.0
           },
           {
             "x": 65.0,
-            "y": 185.0
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#28",
+        "path": [
+          {
+            "x": 37.5,
+            "y": 185.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#29"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 5.0,
-            "y": 5.0
-          },
-          {
-            "x": 35.0,
-            "y": 5.0
-          },
-          {
-            "x": 35.0,
+            "x": 7.5,
             "y": 15.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#14",
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "RD"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I2"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#9",
+          "pinName": "A"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 55.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 7.5,
+            "x": 65.0,
             "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#4",
-        "path": [
-          {
-            "x": 7.5,
-            "y": 25.0
-          }
-        ]
+        "name": "unnamedWire#33",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#10",
           "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#34",
         "path": [
           {
-            "x": 7.5,
-            "y": 15.0
+            "x": 65.0,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#10",
+          "pinName": "B"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#35",
         "path": [
           {
-            "x": 7.5,
-            "y": 95.0
+            "x": 65.0,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#11",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 135.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#11",
           "pinName": "B"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "name": "unnamedWire#38",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 145.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUINandGate#12",
+          "pinName": "A"
         },
-        "name": "unnamedWire#13",
-        "path": []
+        "name": "unnamedWire#39"
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#4",
         "path": [
           {
-            "x": 32.5,
-            "y": 20.0
+            "x": 7.5,
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "B"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 7.5,
-            "y": 112.5
-          },
-          {
-            "x": 32.5,
-            "y": 112.5
-          },
-          {
-            "x": 32.5,
-            "y": 105.0
-          }
-        ]
+        "name": "unnamedWire#40",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#13",
           "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 32.5,
-            "y": 95.0
+            "x": 95.0,
+            "y": 15.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
+          "compName": "GUINandGate#13",
+          "pinName": "B"
         },
-        "name": "unnamedWire#17",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 25.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#9",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "RA"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#20",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 25.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUINandGate#11",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#45",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "B"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#14",
           "pinName": "A"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 35.0,
+            "x": 95.0,
             "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#24",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#14",
           "pinName": "B"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#48",
         "path": [
           {
-            "x": 37.5,
-            "y": 35.0
-          },
-          {
-            "x": 65.0,
-            "y": 35.0
-          },
-          {
-            "x": 65.0,
-            "y": 25.0
+            "x": 95.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#13",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SQ"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "A"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#29"
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUINandGate#14",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "RD"
         },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 37.5,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#50",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "B"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#9",
+          "compName": "GUINandGate#12",
           "pinName": "B"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#7",
         "path": [
+          {
+            "x": 5.0,
+            "y": 195.0
+          },
           {
             "x": 65.0,
-            "y": 65.0
+            "y": 195.0
+          },
+          {
+            "x": 65.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "A"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#31",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 55.0
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#10",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 65.0,
-            "y": 95.0
+            "x": 7.5,
+            "y": 55.0
           }
         ]
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "name": "unnamedWire#33",
-        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "Am2901SourceDecode",
     "centerTextHeight": 5.0,
@@ -1124,5 +1132,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index dd1723b..9b47e86 100644 (file)
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 5.0
       },
-      "name": "IOVR",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 30.0
+        "x": 120.0,
+        "y": 108.0
       },
-      "name": "_CEM",
-      "logicWidth": 1
+      "name": "C0",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 120.0,
+        "y": 60.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "CT",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 61.0
+        "y": 110.0
       },
-      "name": "I",
-      "logicWidth": 13
+      "name": "Cx",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 40.0
+        "y": 61.0
       },
-      "name": "_EN",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 13,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 17.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "YC",
-      "logicWidth": 1
+      "name": "IC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 108.0
+        "x": 0.0,
+        "y": 20.0
       },
-      "name": "C0",
-      "logicWidth": 1
+      "name": "IN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 36.0
+        "y": 25.0
       },
-      "name": "_EZ",
-      "logicWidth": 1
+      "name": "IOVR",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 110.0
+        "y": 10.0
       },
-      "name": "Cx",
-      "logicWidth": 1
+      "name": "IZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 120.0,
-        "y": 21.0
+        "y": 128.0
       },
-      "name": "YN",
-      "logicWidth": 1
+      "name": "QIO0",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 128.0
       },
-      "name": "IC",
-      "logicWidth": 1
+      "name": "QIOn",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 42.0
+        "x": 120.0,
+        "y": 118.0
       },
-      "name": "_EOVR",
-      "logicWidth": 1
+      "name": "SIO0",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 11.0
+        "x": 0.0,
+        "y": 119.0
       },
-      "name": "YZ",
-      "logicWidth": 1
+      "name": "SIOn",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 20.0
+        "x": 120.0,
+        "y": 17.0
       },
-      "name": "IN",
-      "logicWidth": 1
+      "name": "YC",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 61.0,
-        "y": 0.0
+        "x": 120.0,
+        "y": 21.0
       },
-      "name": "_OEY",
-      "logicWidth": 1
+      "name": "YN",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 83.0
+        "x": 120.0,
+        "y": 25.0
       },
-      "name": "_SE",
-      "logicWidth": 1
+      "name": "YOVR",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
         "x": 120.0,
-        "y": 118.0
+        "y": 11.0
       },
-      "name": "SIO0",
-      "logicWidth": 1
+      "name": "YZ",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 10.0
+        "y": 30.0
       },
-      "name": "IZ",
-      "logicWidth": 1
+      "name": "_CEM",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 60.0
+        "x": 0.0,
+        "y": 33.0
       },
-      "name": "CT",
-      "logicWidth": 1
+      "name": "_CEmu",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 128.0
+        "y": 38.0
       },
-      "name": "QIOn",
-      "logicWidth": 1
+      "name": "_EC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 119.0
+        "y": 40.0
       },
-      "name": "SIOn",
-      "logicWidth": 1
+      "name": "_EN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 33.0
+        "y": 42.0
       },
-      "name": "_CEmu",
-      "logicWidth": 1
+      "name": "_EOVR",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 51.0
+        "x": 0.0,
+        "y": 36.0
       },
-      "name": "_OECT",
-      "logicWidth": 1
+      "name": "_EZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 120.0,
-        "y": 25.0
+        "y": 51.0
       },
-      "name": "YOVR",
-      "logicWidth": 1
+      "name": "_OECT",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 128.0
+        "x": 61.0,
+        "y": 0.0
       },
-      "name": "QIO0",
-      "logicWidth": 1
+      "name": "_OEY",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 38.0
+        "y": 83.0
       },
-      "name": "_EC",
-      "logicWidth": 1
+      "name": "_SE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
   "innerScale": 0.2,
   "submodel": {
     "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "GUIAm2904MSR",
+        "name": "DeserializedSubmodelComponent#0",
         "pos": {
-          "x": 130.0,
-          "y": 5.0
-        },
-        "params": 1
+          "x": 225.0,
+          "y": 95.0
+        }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "GUIAm2904muSR",
+        "name": "DeserializedSubmodelComponent#1",
         "pos": {
-          "x": 340.0,
-          "y": 120.0
-        },
-        "params": 1
+          "x": 270.0,
+          "y": 250.0
+        }
       },
       {
         "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#21",
+        "name": "DeserializedSubmodelComponent#10",
         "pos": {
-          "x": 250.0,
-          "y": 820.0
+          "x": 455.0,
+          "y": 355.0
         }
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#15",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#11",
         "pos": {
-          "x": 435.0,
-          "y": 575.0
+          "x": 265.0,
+          "y": 515.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#12",
         "pos": {
-          "x": 330.0,
-          "y": 125.0
-        },
-        "params": 1
+          "x": 315.0,
+          "y": 505.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#27",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#13",
         "pos": {
-          "x": 440.0,
-          "y": 385.0
-        },
-        "params": 1
+          "x": 365.0,
+          "y": 485.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#14",
         "pos": {
-          "x": 120.0,
-          "y": 15.0
-        },
-        "params": 1
+          "x": 415.0,
+          "y": 465.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#15",
         "pos": {
-          "x": 35.0,
-          "y": 640.0
-        },
-        "params": 1
+          "x": 435.0,
+          "y": 575.0
+        }
       },
       {
-        "id": "GUIAm2904ShiftInstrDecode",
-        "name": "GUIAm2904ShiftInstrDecode#0",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#16",
         "pos": {
-          "x": 50.0,
-          "y": 360.0
+          "x": 435.0,
+          "y": 655.0
         }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#6",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#17",
         "pos": {
-          "x": 285.0,
-          "y": 320.0
-        },
-        "params": 3
+          "x": 190.0,
+          "y": 460.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#18",
         "pos": {
-          "x": 195.0,
-          "y": 35.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 470.0
+        }
+      },
+      {
+        "id": "GUIand",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 380.0,
+          "y": 125.0
+        }
       },
       {
         "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#12",
+        "name": "DeserializedSubmodelComponent#21",
         "pos": {
-          "x": 315.0,
-          "y": 505.0
+          "x": 250.0,
+          "y": 820.0
         }
       },
       {
-        "id": "GUIAm2904TestLogic",
-        "name": "DeserializedSubmodelComponent#6",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#22",
         "pos": {
-          "x": 225.0,
-          "y": 340.0
+          "x": 120.0,
+          "y": 720.0
         }
       },
       {
         "id": "GUImux3",
-        "name": "DeserializedSubmodelComponent#7",
+        "name": "DeserializedSubmodelComponent#23",
         "pos": {
           "x": 300.0,
-          "y": 310.0
+          "y": 715.0
         }
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#3",
         "pos": {
-          "x": 530.0,
-          "y": 70.0
-        },
-        "params": 4
+          "x": 470.0,
+          "y": 160.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "id": "GUInot4",
+        "name": "DeserializedSubmodelComponent#4",
         "pos": {
-          "x": 250.0,
-          "y": 540.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 40.0
+        }
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#14",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#5",
         "pos": {
           "x": 415.0,
-          "y": 465.0
+          "y": 210.0
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "GUIAm2904TestLogic",
+        "name": "DeserializedSubmodelComponent#6",
         "pos": {
-          "x": 205.0,
-          "y": 50.0
-        },
-        "params": 1
+          "x": 225.0,
+          "y": 340.0
+        }
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#17",
+        "id": "GUImux3",
+        "name": "DeserializedSubmodelComponent#7",
         "pos": {
-          "x": 190.0,
-          "y": 460.0
+          "x": 300.0,
+          "y": 310.0
         }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#11",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#8",
         "pos": {
-          "x": 405.0,
-          "y": 575.0
-        },
-        "params": 3
+          "x": 495.0,
+          "y": 295.0
+        }
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#10",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#9",
         "pos": {
-          "x": 455.0,
-          "y": 355.0
+          "x": 450.0,
+          "y": 310.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.am2900.components.am2904.GUIAm2904RegCTInstrDecode",
+        "name": "GUIAm2904RegCTInstrDecode#0",
         "pos": {
-          "x": 150.0,
-          "y": 160.0
-        },
-        "params": 1
+          "x": 50.0,
+          "y": 240.0
+        }
       },
       {
-        "id": "GUInot4",
-        "name": "DeserializedSubmodelComponent#4",
+        "id": "class:net.mograsim.logic.model.am2900.components.am2904.GUIAm2904ShiftInstrDecode",
+        "name": "GUIAm2904ShiftInstrDecode#0",
         "pos": {
-          "x": 135.0,
-          "y": 40.0
+          "x": 50.0,
+          "y": 360.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#30",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#0",
         "pos": {
-          "x": 550.0,
-          "y": 570.0
+          "x": 530.0,
+          "y": 70.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#1",
         "pos": {
-          "x": 10.0,
-          "y": 605.0
+          "x": 565.0,
+          "y": 180.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 4
       },
       {
-        "id": "GUIAm2904muSR",
-        "name": "DeserializedSubmodelComponent#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#2",
         "pos": {
-          "x": 270.0,
-          "y": 250.0
-        }
+          "x": 530.0,
+          "y": 200.0
+        },
+        "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#7",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#3",
         "pos": {
-          "x": 420.0,
-          "y": 325.0
+          "x": 560.0,
+          "y": 150.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
+        "name": "GUIMerger#0",
         "pos": {
-          "x": 255.0,
-          "y": 265.0
+          "x": 25.0,
+          "y": 245.0
         },
-        "params": 4
+        "params": 6
       },
       {
-        "id": "GUIAm2904RegCTInstrDecode",
-        "name": "GUIAm2904RegCTInstrDecode#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
+        "name": "GUIMerger#1",
         "pos": {
-          "x": 50.0,
-          "y": 240.0
-        }
+          "x": 25.0,
+          "y": 305.0
+        },
+        "params": 5
       },
       {
-        "id": "GUIMerger",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
+        "name": "GUIMerger#2",
+        "pos": {
+          "x": 15.0,
+          "y": 65.0
+        },
+        "params": 4
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
         "name": "GUIMerger#3",
         "pos": {
           "x": 510.0,
         "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#10",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
+        "name": "GUIMerger#4",
         "pos": {
-          "x": 420.0,
-          "y": 410.0
+          "x": 25.0,
+          "y": 355.0
         },
-        "params": 4
+        "params": 2
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#33",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 530.0,
-          "y": 270.0
+          "x": 190.0,
+          "y": 145.0
         },
         "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 560.0,
-          "y": 595.0
+          "x": 130.0,
+          "y": 5.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 195.0,
-          "y": 15.0
+          "x": 340.0,
+          "y": 120.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#12",
         "pos": {
-          "x": 10.0,
-          "y": 245.0
+          "x": 540.0,
+          "y": 265.0
         },
-        "params": 13
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 215.0,
-          "y": 180.0
+          "x": 225.0,
+          "y": 195.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
           "x": 225.0,
-          "y": 175.0
+          "y": 215.0
         },
         "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 565.0,
-          "y": 180.0
+          "x": 225.0,
+          "y": 155.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 530.0,
-          "y": 200.0
+          "x": 225.0,
+          "y": 175.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 585.0,
-          "y": 640.0
+          "x": 205.0,
+          "y": 70.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 255.0,
-          "y": 255.0
+          "x": 205.0,
+          "y": 50.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 560.0,
-          "y": 290.0
+          "x": 205.0,
+          "y": 30.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#14",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#9",
         "pos": {
-          "x": 90.0,
-          "y": 720.0
+          "x": 205.0,
+          "y": 10.0
         },
-        "params": 3
+        "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#0",
         "pos": {
-          "x": 555.0,
-          "y": 80.0
+          "x": 10.0,
+          "y": 245.0
         },
-        "params": 4
+        "params": 13
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#1",
         "pos": {
-          "x": 225.0,
-          "y": 195.0
+          "x": 555.0,
+          "y": 80.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#10",
         "pos": {
-          "x": 450.0,
-          "y": 175.0
+          "x": 420.0,
+          "y": 410.0
         },
         "params": 4
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#11",
         "pos": {
-          "x": 190.0,
-          "y": 145.0
+          "x": 405.0,
+          "y": 575.0
         },
-        "params": 1
+        "params": 3
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#9",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#12",
         "pos": {
-          "x": 240.0,
-          "y": 475.0
+          "x": 405.0,
+          "y": 655.0
         },
-        "params": 4
+        "params": 3
       },
       {
-        "id": "GUISplitter",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
         "name": "GUISplitter#13",
         "pos": {
           "x": 265.0,
         "params": 3
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#14",
         "pos": {
-          "x": 15.0,
-          "y": 65.0
+          "x": 90.0,
+          "y": 720.0
         },
-        "params": 4
+        "params": 3
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#15",
         "pos": {
-          "x": 285.0,
-          "y": 725.0
+          "x": 120.0,
+          "y": 455.0
         },
-        "params": 1
+        "params": 2
       },
       {
-        "id": "GUIAm2904MSR",
-        "name": "DeserializedSubmodelComponent#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#2",
         "pos": {
-          "x": 225.0,
-          "y": 95.0
-        }
+          "x": 395.0,
+          "y": 195.0
+        },
+        "params": 2
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#8",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#3",
         "pos": {
-          "x": 420.0,
-          "y": 365.0
+          "x": 450.0,
+          "y": 175.0
         },
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#4",
         "pos": {
-          "x": 215.0,
-          "y": 160.0
+          "x": 395.0,
+          "y": 225.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUImux3",
-        "name": "DeserializedSubmodelComponent#23",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#5",
         "pos": {
-          "x": 300.0,
-          "y": 715.0
-        }
+          "x": 395.0,
+          "y": 265.0
+        },
+        "params": 4
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#6",
         "pos": {
-          "x": 25.0,
-          "y": 355.0
+          "x": 285.0,
+          "y": 320.0
         },
-        "params": 2
+        "params": 3
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#7",
         "pos": {
-          "x": 335.0,
-          "y": 270.0
+          "x": 420.0,
+          "y": 325.0
         },
         "params": 4
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#8",
         "pos": {
-          "x": 25.0,
-          "y": 245.0
+          "x": 420.0,
+          "y": 365.0
         },
-        "params": 6
+        "params": 4
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#9",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#9",
         "pos": {
-          "x": 450.0,
-          "y": 310.0
+          "x": 240.0,
+          "y": 475.0
+        },
+        "params": 4
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#0",
+        "pos": {
+          "x": 535.0,
+          "y": 165.0
+        },
+        "params": {
+          "logicWidth": 4,
+          "orientation": "RIGHT"
         }
       },
       {
-        "id": "GUITriStateBuffer",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
         "name": "GUITriStateBuffer#1",
         "pos": {
           "x": 10.0,
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
-        "pos": {
-          "x": 530.0,
-          "y": 100.0
-        },
-        "params": 4
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 225.0,
-          "y": 155.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#2",
         "pos": {
-          "x": 295.0,
-          "y": 120.0
+          "x": 10.0,
+          "y": 605.0
         },
-        "params": 4
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#3",
         "pos": {
-          "x": 395.0,
-          "y": 195.0
+          "x": 560.0,
+          "y": 595.0
         },
-        "params": 2
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#4",
         "pos": {
-          "x": 395.0,
-          "y": 265.0
+          "x": 565.0,
+          "y": 655.0
         },
-        "params": 4
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#3",
-        "pos": {
-          "x": 470.0,
-          "y": 160.0
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
         }
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#16",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#5",
         "pos": {
-          "x": 435.0,
-          "y": 655.0
+          "x": 560.0,
+          "y": 290.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#28",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 440.0,
-          "y": 345.0
+          "x": 165.0,
+          "y": 150.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 360.0,
-          "y": 495.0
+          "x": 180.0,
+          "y": 135.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 290.0,
-          "y": 805.0
+          "x": 195.0,
+          "y": 55.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#15",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 120.0,
-          "y": 455.0
+          "x": 195.0,
+          "y": 15.0
         },
-        "params": 2
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 165.0,
-          "y": 150.0
+          "x": 195.0,
+          "y": 35.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 215.0,
-          "y": 200.0
+          "x": 330.0,
+          "y": 125.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 205.0,
-          "y": 30.0
+          "x": 520.0,
+          "y": 190.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 395.0,
-          "y": 225.0
+          "x": 255.0,
+          "y": 265.0
         },
         "params": 4
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 265.0,
-          "y": 515.0
-        }
+          "x": 255.0,
+          "y": 255.0
+        },
+        "params": 4
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 560.0,
-          "y": 150.0
+          "x": 360.0,
+          "y": 495.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 225.0,
-          "y": 215.0
+          "x": 35.0,
+          "y": 640.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#19",
         "pos": {
           "x": 35.0,
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 520.0,
-          "y": 190.0
+          "x": 295.0,
+          "y": 120.0
         },
         "params": 4
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 205.0,
-          "y": 10.0
+          "x": 585.0,
+          "y": 590.0
         },
         "params": 1
       },
       {
-        "id": "GUIand",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 380.0,
-          "y": 125.0
-        }
+          "x": 585.0,
+          "y": 640.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#13",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "pos": {
-          "x": 365.0,
-          "y": 485.0
-        }
+          "x": 250.0,
+          "y": 540.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#25",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#23",
         "pos": {
-          "x": 285.0,
-          "y": 755.0
+          "x": 330.0,
+          "y": 640.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 540.0,
-          "y": 265.0
+          "x": 285.0,
+          "y": 725.0
         },
         "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "pos": {
-          "x": 565.0,
-          "y": 655.0
+          "x": 285.0,
+          "y": 755.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 585.0,
-          "y": 590.0
+          "x": 290.0,
+          "y": 805.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#27",
         "pos": {
-          "x": 205.0,
-          "y": 70.0
+          "x": 440.0,
+          "y": 385.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#28",
         "pos": {
-          "x": 195.0,
-          "y": 55.0
+          "x": 440.0,
+          "y": 345.0
         },
         "params": 1
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 495.0,
-          "y": 295.0
-        }
+          "x": 335.0,
+          "y": 270.0
+        },
+        "params": 4
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#18",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#30",
         "pos": {
-          "x": 135.0,
-          "y": 470.0
-        }
+          "x": 550.0,
+          "y": 570.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#32",
         "pos": {
-          "x": 415.0,
-          "y": 210.0
-        }
+          "x": 85.0,
+          "y": 590.0
+        },
+        "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#33",
         "pos": {
-          "x": 405.0,
-          "y": 655.0
+          "x": 530.0,
+          "y": 270.0
         },
-        "params": 3
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 180.0,
-          "y": 135.0
+          "x": 150.0,
+          "y": 160.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#22",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 120.0,
-          "y": 720.0
-        }
+          "x": 530.0,
+          "y": 100.0
+        },
+        "params": 4
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 535.0,
-          "y": 165.0
+          "x": 120.0,
+          "y": 15.0
         },
-        "params": {
-          "logicWidth": 4,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 25.0,
-          "y": 305.0
+          "x": 215.0,
+          "y": 180.0
         },
-        "params": 5
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#32",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 85.0,
-          "y": 590.0
+          "x": 215.0,
+          "y": 160.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 330.0,
-          "y": 640.0
+          "x": 215.0,
+          "y": 200.0
         },
         "params": 1
       }
     "wires": [
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O3"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_4"
-        },
-        "name": "unnamedWire#100",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "GUISplitter#8",
-          "pinName": "O1"
-        },
-        "name": "unnamedWire#172",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I01"
-        },
-        "name": "unnamedWire#170",
-        "path": []
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 25.0
+          },
+          {
+            "x": 5.0,
+            "y": 10.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_MUX"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "OEn"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "MUX"
         },
-        "name": "unnamedWire#202",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O1"
+          "compName": "GUISplitter#0",
+          "pinName": "O6"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_2"
+          "compName": "GUIMerger#1",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y010"
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I010"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#100",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "YOVR"
+          "compName": "GUISplitter#3",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#101",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUISplitter#4",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#102",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "GUISplitter#4",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EN"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#103",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUISplitter#4",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#104",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#4",
-          "pinName": "I1"
+          "compName": "GUISplitter#4",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O12"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#140",
+        "name": "unnamedWire#105",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "OUT"
+          "compName": "GUISplitter#4",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "CT"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#236",
+        "name": "unnamedWire#106",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IN"
+          "compName": "GUISplitter#5",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 100.0
-          },
-          {
-            "x": 5.0,
-            "y": 85.0
-          }
-        ]
+        "name": "unnamedWire#107",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUISplitter#5",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#108",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEC"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_3"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "B"
+          "compName": "GUISplitter#5",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#109",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I01"
+          "compName": "GUIMerger#1",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O7"
         },
-        "name": "unnamedWire#197",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "O"
+          "compName": "GUISplitter#5",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#110",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O0"
+          "compName": "GUISplitter#5",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#111",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#12",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "EN"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#122",
+        "name": "unnamedWire#112",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I"
         },
-        "name": "unnamedWire#55",
+        "name": "unnamedWire#113",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y111"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_2"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I111"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#114",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
+          "compName": "DeserializedSubmodelComponent#7",
           "pinName": "I110"
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y110"
         },
-        "name": "unnamedWire#196",
+        "name": "unnamedWire#115",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y101"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I101"
         },
-        "name": "unnamedWire#184",
+        "name": "unnamedWire#116",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I100"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y100"
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#117",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "EN"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y011"
         },
         "pin2": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I011"
         },
-        "name": "unnamedWire#218",
+        "name": "unnamedWire#118",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y010"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I010"
         },
-        "name": "unnamedWire#123",
+        "name": "unnamedWire#119",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O8"
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "A"
+          "compName": "GUIMerger#1",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "S1"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I001"
         },
         "pin2": {
-          "compName": "GUISplitter#12",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y001"
         },
-        "name": "unnamedWire#175",
+        "name": "unnamedWire#120",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y000"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EOVR"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I000"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#121",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I10"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#171",
+        "name": "unnamedWire#122",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIBitDisplay#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "B"
         },
-        "name": "unnamedWire#229",
+        "name": "unnamedWire#123",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#21",
-          "pinName": "Y"
+          "compName": "GUISplitter#6",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I111"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_MUX"
         },
-        "name": "unnamedWire#194",
+        "name": "unnamedWire#124",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUISplitter#6",
-          "pinName": "O2"
+          "pinName": "O0"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S2"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#127",
+        "name": "unnamedWire#125",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "EN"
+          "compName": "GUISplitter#6",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#219",
+        "name": "unnamedWire#126",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "GUISplitter#6",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#127",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_EXP"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
+          "compName": "DeserializedSubmodelComponent#9",
           "pinName": "S0"
         },
-        "name": "unnamedWire#95",
+        "name": "unnamedWire#128",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#183",
+        "name": "unnamedWire#129",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUIMerger#1",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "B"
+          "compName": "GUISplitter#0",
+          "pinName": "O9"
         },
-        "name": "unnamedWire#200",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_3"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUISplitter#4",
-          "pinName": "O2"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_INV"
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#130",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y2"
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#131",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "I"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "O"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I"
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 40.0,
-            "y": 395.0
-          },
-          {
-            "x": 40.0,
-            "y": 325.0
-          }
-        ]
+        "name": "unnamedWire#132",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "QIO0"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "I"
         },
-        "name": "unnamedWire#160",
+        "name": "unnamedWire#133",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y3"
+          "compName": "GUISplitter#7",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUIMerger#3",
-          "pinName": "I2"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#134",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I10"
+          "compName": "GUISplitter#8",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
-        "name": "unnamedWire#198",
+        "name": "unnamedWire#135",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "M"
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#136",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y000"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I000"
+          "compName": "GUISplitter#8",
+          "pinName": "I"
         },
-        "name": "unnamedWire#121",
+        "name": "unnamedWire#137",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#21",
-          "pinName": "B"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "OEN"
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#206",
+        "name": "unnamedWire#138",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y111"
+          "compName": "GUISplitter#0",
+          "pinName": "O11"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I111"
+          "compName": "GUIMerger#4",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#114",
+        "name": "unnamedWire#139",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#10",
-          "pinName": "I"
+          "compName": "GUISplitter#0",
+          "pinName": "O10"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIMerger#1",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#144",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIMerger#4",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I000"
+          "compName": "GUISplitter#0",
+          "pinName": "O12"
         },
-        "name": "unnamedWire#186",
+        "name": "unnamedWire#140",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUIMerger#4",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I101"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "I12-11"
         },
-        "name": "unnamedWire#199",
+        "name": "unnamedWire#141",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "C0_MUX"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_CEmu"
+          "compName": "GUISplitter#9",
+          "pinName": "I"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#142",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I01"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
-        "name": "unnamedWire#179",
+        "name": "unnamedWire#143",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "OUT"
+          "compName": "GUISplitter#10",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#1",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#230",
+        "name": "unnamedWire#144",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y1"
+          "compName": "GUISplitter#10",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUIMerger#3",
+          "compName": "DeserializedSubmodelComponent#11",
           "pinName": "I0"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#145",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#12",
-          "pinName": "B"
+          "compName": "GUISplitter#9",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#234",
+        "name": "unnamedWire#146",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Q"
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "B"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#147",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "QIO0_MUX"
+          "compName": "GUISplitter#9",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#178",
+        "name": "unnamedWire#148",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
+          "compName": "GUISplitter#9",
           "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#208",
+        "name": "unnamedWire#149",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#4",
+          "compName": "GUIMerger#0",
           "pinName": "O"
         },
         "pin2": {
           "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "I12-11"
+          "pinName": "I5-0"
         },
-        "name": "unnamedWire#141",
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I10"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#180",
+        "name": "unnamedWire#150",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#212",
+        "name": "unnamedWire#151",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "Cx"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#152",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEOVR"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#153",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#154",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I100"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUISplitter#9",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#193",
+        "name": "unnamedWire#155",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I100"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y100"
+          "compName": "_submodelinterface",
+          "pinName": "C0"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#156",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "QIOn"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#157",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "C0_MUX"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "I"
+          "compName": "_submodelinterface",
+          "pinName": "SIOn"
         },
-        "name": "unnamedWire#142",
+        "name": "unnamedWire#158",
         "path": []
       },
       {
         "pin1": {
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "IZ"
+          "pinName": "SIO0"
+        },
+        "name": "unnamedWire#159",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I0"
+          "compName": "GUIMerger#1",
+          "pinName": "O"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 5.0,
-            "y": 50.0
+            "x": 40.0,
+            "y": 395.0
           },
           {
-            "x": 5.0,
-            "y": 65.0
+            "x": 40.0,
+            "y": 325.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I001"
+          "compName": "_submodelinterface",
+          "pinName": "QIO0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y001"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#120",
+        "name": "unnamedWire#160",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
+          "compName": "GUITriStateBuffer#1",
           "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
-        "name": "unnamedWire#79",
+        "name": "unnamedWire#161",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "MSR_MUX"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "MUX"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#162",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "O1"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#209",
+        "name": "unnamedWire#163",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#164",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Q"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#165",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EC"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "SIO0_MUX"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
+          "compName": "GUISplitter#11",
+          "pinName": "I"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#166",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#11",
+          "pinName": "O0"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I00"
+        },
+        "name": "unnamedWire#167",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#11",
+          "pinName": "O2"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#168",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "GUISplitter#11",
+          "pinName": "O1"
+        },
+        "name": "unnamedWire#169",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "I0"
+          "compName": "_submodelinterface",
+          "pinName": "IOVR"
+        },
+        "pin2": {
+          "compName": "GUIMerger#2",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#17",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 125.0
+          },
+          {
+            "x": 10.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cx"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I01"
         },
-        "name": "unnamedWire#152",
+        "name": "unnamedWire#170",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O8"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#171",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OECT"
+          "compName": "GUISplitter#8",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#235",
+        "name": "unnamedWire#172",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O4"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I4"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#173",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "Y"
+          "compName": "GUISplitter#12",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#153",
+        "name": "unnamedWire#174",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#8",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUISplitter#12",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#135",
+        "name": "unnamedWire#175",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "GUISplitter#12",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EOVR"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#66",
+        "name": "unnamedWire#176",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "B"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#177",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
+          "compName": "GUISplitter#12",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "I5-0"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "QIO0_MUX"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#178",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "C"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I01"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#179",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
+          "compName": "_submodelinterface",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#3",
-          "pinName": ""
+          "compName": "GUIMerger#2",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#232",
-        "path": []
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 100.0
+          },
+          {
+            "x": 5.0,
+            "y": 85.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "C"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#180",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "EN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
-        "name": "unnamedWire#214",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "Y"
-        },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#129",
+        "name": "unnamedWire#181",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I001"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I11"
         },
         "pin2": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
-        "name": "unnamedWire#187",
+        "name": "unnamedWire#182",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
+          "compName": "GUISplitter#13",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#84",
+        "name": "unnamedWire#183",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#223",
+        "name": "unnamedWire#184",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#185",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#9",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I000"
         },
-        "name": "unnamedWire#146",
+        "name": "unnamedWire#186",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_SE"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I001"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "_SE"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#213",
+        "name": "unnamedWire#187",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "YC"
+          "compName": "GUISplitter#13",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "SIOn_MUX"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#188",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "GUISplitter#13",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#189",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y101"
+          "compName": "_submodelinterface",
+          "pinName": "IC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I101"
+          "compName": "GUIMerger#2",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#116",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#6",
-          "pinName": "O0"
+          "compName": "GUISplitter#13",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#190",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I010"
         },
         "pin2": {
           "compName": "WireCrossPoint#20",
           "pinName": ""
         },
-        "name": "unnamedWire#224",
+        "name": "unnamedWire#191",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#2",
-          "pinName": "O"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I011"
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#192",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I100"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#193",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#16",
+          "compName": "DeserializedSubmodelComponent#21",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I111"
         },
-        "name": "unnamedWire#177",
+        "name": "unnamedWire#194",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#195",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I110"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#2",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#231",
+        "name": "unnamedWire#196",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I01"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#197",
         "path": []
       },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "Y"
+          "pinName": "I10"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#207",
+        "name": "unnamedWire#198",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_EXP"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I101"
         },
-        "name": "unnamedWire#128",
+        "name": "unnamedWire#199",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "S0"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_OVRRET"
         },
         "pin2": {
-          "compName": "GUISplitter#11",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "OVRRET"
         },
-        "name": "unnamedWire#169",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "IZ"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y"
+          "compName": "GUIMerger#2",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#54",
-        "path": []
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 50.0
+          },
+          {
+            "x": 5.0,
+            "y": 65.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I00"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "B"
         },
-        "name": "unnamedWire#176",
+        "name": "unnamedWire#200",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SIO0"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#159",
+        "name": "unnamedWire#201",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "EN"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "OEn"
         },
-        "name": "unnamedWire#215",
+        "name": "unnamedWire#202",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_2"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "OE0"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
-        "name": "unnamedWire#98",
+        "name": "unnamedWire#203",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#6",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#204",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#21",
+          "pinName": "A"
         },
-        "name": "unnamedWire#195",
+        "name": "unnamedWire#205",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#21",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#206",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I110"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y110"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#115",
+        "name": "unnamedWire#207",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "MC_MUX"
+          "compName": "GUISplitter#14",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#15",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#226",
+        "name": "unnamedWire#208",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUISplitter#14",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SIOn"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#158",
+        "name": "unnamedWire#209",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O10"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_CINV"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I4"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "CINV"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "S0"
+          "compName": "GUISplitter#14",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "O3"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "QIOn_MUX"
         },
-        "name": "unnamedWire#155",
+        "name": "unnamedWire#210",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUISplitter#14",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#211",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#5",
+          "compName": "GUITriStateBuffer#2",
           "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
+          "compName": "DeserializedSubmodelComponent#23",
           "pinName": "Y"
         },
-        "name": "unnamedWire#237",
+        "name": "unnamedWire#212",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_SE"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "_SE"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#213",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#15",
-          "pinName": "O0"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
-        "name": "unnamedWire#227",
+        "name": "unnamedWire#214",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I00"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#211",
+        "name": "unnamedWire#215",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "OUT"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
-        "name": "unnamedWire#161",
+        "name": "unnamedWire#218",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S1"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#190",
+        "name": "unnamedWire#219",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "O1"
+          "compName": "GUIMerger#2",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#174",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#221",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "COVD_V"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#222",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEN"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#223",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#132",
+        "name": "unnamedWire#224",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "QIOn"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#157",
+        "name": "unnamedWire#225",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EN"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "MC_MUX"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "GUISplitter#15",
+          "pinName": "I"
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#226",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "B"
+          "compName": "GUISplitter#15",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEZ"
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#227",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y3"
+          "compName": "GUISplitter#15",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#87",
+        "name": "unnamedWire#228",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "Y"
+          "compName": "GUIBitDisplay#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#229",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#150",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O2"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S2"
+          "compName": "GUIBitDisplay#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#189",
+        "name": "unnamedWire#230",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I11"
+          "compName": "GUIBitDisplay#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#181",
+        "name": "unnamedWire#231",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "C0"
+          "compName": "GUIBitDisplay#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#156",
+        "name": "unnamedWire#232",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_MUX"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "MUX"
+          "compName": "GUINandGate#12",
+          "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#233",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O6"
+          "compName": "GUINandGate#12",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#234",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "COVD_V"
+          "compName": "_submodelinterface",
+          "pinName": "_OECT"
         },
-        "name": "unnamedWire#222",
+        "name": "unnamedWire#235",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "Y_MUX"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "_submodelinterface",
+          "pinName": "CT"
         },
-        "name": "unnamedWire#94",
+        "name": "unnamedWire#236",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EOVR"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A4"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#237",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "mu"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_2"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "B"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#147",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I010"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#191",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "mu"
         },
-        "name": "unnamedWire#233",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CEM"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A3"
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "GUISplitter#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "C"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "MSR_MUX"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I"
+          "pinName": "MUX"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "MC_EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "COVD_EN"
         },
-        "name": "unnamedWire#225",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y1"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "B"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#21",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#205",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "YZ"
+          "pinName": "_CEmu"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "I"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "compName": "GUINandGate#4",
+          "pinName": "A"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O11"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#4",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#139",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "A"
         },
-        "name": "unnamedWire#143",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_OVRRET"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "OVRRET"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#113",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "OEN"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#138",
+        "name": "unnamedWire#42",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EC"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EOVR"
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IC"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I1"
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#45",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "OE0"
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#203",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEZ"
         },
-        "name": "unnamedWire#173",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I11"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEC"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "B"
         },
-        "name": "unnamedWire#182",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "IN"
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "YZ"
         },
-        "name": "unnamedWire#165",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "YC"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_INV"
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#130",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "OUT"
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "YN"
         },
-        "name": "unnamedWire#164",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#1",
-          "pinName": "I3"
+          "compName": "_submodelinterface",
+          "pinName": "YOVR"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O9"
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "MC_EN"
+          "compName": "GUISplitter#1",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "COVD_EN"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#53",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#133",
+        "name": "unnamedWire#54",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "M"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#136",
+        "name": "unnamedWire#55",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "I"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "_CEM"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 25.0
-          },
-          {
-            "x": 5.0,
-            "y": 10.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_3"
-        },
-        "pin2": {
-          "compName": "GUISplitter#5",
-          "pinName": "O2"
-        },
-        "name": "unnamedWire#109",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_1"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEN"
         },
-        "name": "unnamedWire#97",
+        "name": "unnamedWire#58",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y011"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I011"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#59",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#6",
-          "pinName": "I"
+          "compName": "GUISplitter#0",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_MUX"
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#124",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#7",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#134",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "I3"
+          "compName": "GUINandGate#7",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#92",
+        "name": "unnamedWire#61",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_4"
+          "compName": "GUINandGate#8",
+          "pinName": "A"
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#62",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#9",
           "pinName": "A"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "name": "unnamedWire#185",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "A"
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EOVR"
         },
-        "name": "unnamedWire#148",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I5"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EN"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O5"
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#67",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#9",
-          "pinName": "O2"
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EC"
         },
-        "name": "unnamedWire#149",
+        "name": "unnamedWire#68",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "I"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "QIOn_MUX"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#210",
+        "name": "unnamedWire#69",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#112",
+        "name": "unnamedWire#70",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IOVR"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I3"
+          "compName": "GUINandGate#9",
+          "pinName": "B"
         },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 125.0
-          },
-          {
-            "x": 10.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#71",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "GUINandGate#8",
+          "pinName": "B"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A2"
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#72",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "A"
+          "compName": "GUINandGate#7",
+          "pinName": "B"
         },
-        "name": "unnamedWire#204",
+        "name": "unnamedWire#73",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "OUT"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "B"
         },
-        "name": "unnamedWire#163",
+        "name": "unnamedWire#74",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#75",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_CINV"
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "CINV"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#76",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#83",
+        "name": "unnamedWire#77",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#11",
-          "pinName": "O2"
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "S1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#168",
+        "name": "unnamedWire#78",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "I0"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#154",
+        "name": "unnamedWire#79",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "Y"
+          "compName": "GUISplitter#0",
+          "pinName": "O4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "I0"
+          "compName": "GUIMerger#0",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#221",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I011"
+          "compName": "GUINandGate#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#192",
+        "name": "unnamedWire#80",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#11",
-          "pinName": "O0"
+          "compName": "GUINandGate#10",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I00"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#167",
+        "name": "unnamedWire#81",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "_OEY"
         },
-        "name": "unnamedWire#96",
+        "name": "unnamedWire#82",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O0"
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#83",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "YN"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#84",
         "path": []
       },
       {
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_4"
+          "pinName": "I1_2"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y4"
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#86",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#151",
+        "name": "unnamedWire#87",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#1",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O7"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#88",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "SIO0_MUX"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUISplitter#11",
-          "pinName": "I"
+          "compName": "GUIMerger#3",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#166",
+        "name": "unnamedWire#89",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I5"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "A"
+          "compName": "GUISplitter#0",
+          "pinName": "O5"
         },
-        "name": "unnamedWire#80",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_3"
+          "compName": "GUIMerger#3",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#99",
+        "name": "unnamedWire#90",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIMerger#3",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#64",
+        "name": "unnamedWire#91",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "OUT"
+          "compName": "GUIMerger#3",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#162",
+        "name": "unnamedWire#92",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "I"
+          "compName": "GUIMerger#3",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "SIOn_MUX"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#188",
+        "name": "unnamedWire#93",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "I"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "Y_MUX"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#111",
+        "name": "unnamedWire#94",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#15",
-          "pinName": "O1"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#17",
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "S0"
         },
-        "name": "unnamedWire#228",
+        "name": "unnamedWire#95",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I11"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#201",
+        "name": "unnamedWire#96",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "GUISplitter#3",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EZ"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#97",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUISplitter#8",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#137",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#10",
+          "compName": "GUISplitter#3",
           "pinName": "O1"
         },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "I0"
-        },
-        "name": "unnamedWire#145",
+        "name": "unnamedWire#98",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OEY"
+          "compName": "GUISplitter#3",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#99",
         "path": []
       }
     ],
     "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "Am2904",
     "centerTextHeight": 5.0,
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
   },
-  "version": "0.1.4"
+  "version": "0.1.5"
 }
\ No newline at end of file
index 4a24464..d5e6094 100644 (file)
@@ -4,19 +4,12 @@
   "interfacePins": [
     {
       "location": {
-        "x": 4.0,
+        "x": 14.0,
         "y": 46.0
       },
-      "name": "MUX",
-      "logicWidth": 3
-    },
-    {
-      "location": {
-        "x": 45.0,
-        "y": 19.0
-      },
-      "name": "Q",
-      "logicWidth": 4
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "y": 46.0
       },
       "name": "COVD_EN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 14.0,
+        "x": 37.5,
         "y": 46.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "COVD_V",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 5.5,
-        "y": 0.0
+        "x": 0.0,
+        "y": 31.0
       },
-      "name": "_EZ",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 37.5,
+        "x": 4.0,
         "y": 46.0
       },
-      "name": "COVD_V",
-      "logicWidth": 1
+      "name": "MUX",
+      "logicWidth": 3,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 45.0,
+        "y": 19.0
       },
-      "name": "mu",
-      "logicWidth": 4
+      "name": "Q",
+      "logicWidth": 4,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "y": 18.0
       },
       "name": "Y",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 31.0
+        "x": 15.5,
+        "y": 0.0
       },
-      "name": "I",
-      "logicWidth": 4
+      "name": "_EC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "y": 0.0
       },
       "name": "_EN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 15.5,
+        "x": 35.5,
+        "y": 0.2
+      },
+      "name": "_EOVR",
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 5.5,
         "y": 0.0
       },
-      "name": "_EC",
-      "logicWidth": 1
+      "name": "_EZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.5,
-        "y": 0.2
+        "x": 0.0,
+        "y": 5.0
       },
-      "name": "_EOVR",
-      "logicWidth": 1
+      "name": "mu",
+      "logicWidth": 4,
+      "usage": "INPUT"
     }
   ],
   "innerScale": 0.1,
   "submodel": {
     "components": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 419.0,
-          "y": 184.0
-        },
-        "params": 1
-      },
       {
         "id": "GUImux1_4",
         "name": "DeserializedSubmodelComponent#0",
         }
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#1",
         "pos": {
-          "x": 435.0,
-          "y": 175.0
-        },
-        "params": 4
+          "x": 35.0,
+          "y": 250.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#2",
         "pos": {
-          "x": 84.0,
-          "y": 344.0
-        },
-        "params": 1
+          "x": 150.0,
+          "y": 280.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "GUInot4",
+        "name": "DeserializedSubmodelComponent#3",
         "pos": {
-          "x": 5.0,
-          "y": 35.0
-        },
-        "params": 4
+          "x": 100.0,
+          "y": 330.0
+        }
       },
       {
-        "id": "GUIdff4_finewe",
-        "name": "GUIdff4_finewe#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#4",
         "pos": {
-          "x": 375.0,
-          "y": 170.0
+          "x": 110.0,
+          "y": 60.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#5",
         "pos": {
-          "x": 74.0,
-          "y": 314.0
-        },
-        "params": 1
+          "x": 200.0,
+          "y": 230.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#6",
         "pos": {
-          "x": 424.0,
-          "y": 194.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 180.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#7",
         "pos": {
-          "x": 45.0,
-          "y": 425.0
-        },
-        "params": 3
+          "x": 325.0,
+          "y": 290.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#1",
+        "id": "GUIand",
+        "name": "DeserializedSubmodelComponent#8",
         "pos": {
-          "x": 5.0,
-          "y": 165.0
-        },
-        "params": 4
+          "x": 380.0,
+          "y": 85.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
+        "name": "GUIMerger#0",
         "pos": {
-          "x": 429.0,
-          "y": 204.0
+          "x": 435.0,
+          "y": 175.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 89.0,
-          "y": 94.0
+          "x": 325.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#0",
         "pos": {
-          "x": 19.0,
-          "y": 294.0
+          "x": 5.0,
+          "y": 35.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#1",
         "pos": {
-          "x": 325.0,
-          "y": 90.0
+          "x": 5.0,
+          "y": 165.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#2",
         "pos": {
-          "x": 200.0,
-          "y": 230.0
-        }
+          "x": 45.0,
+          "y": 425.0
+        },
+        "params": 3
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#7",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#3",
         "pos": {
-          "x": 325.0,
-          "y": 290.0
-        }
+          "x": 5.0,
+          "y": 295.0
+        },
+        "params": 4
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "class:net.mograsim.logic.model.am2900.components.GUIdff4_finewe",
+        "name": "GUIdff4_finewe#0",
         "pos": {
-          "x": 150.0,
-          "y": 280.0
+          "x": 375.0,
+          "y": 170.0
         }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 29.0,
         "params": 1
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 35.0,
-          "y": 250.0
-        }
-      },
-      {
-        "id": "GUInot4",
-        "name": "DeserializedSubmodelComponent#3",
-        "pos": {
-          "x": 100.0,
-          "y": 330.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#4",
-        "pos": {
-          "x": 110.0,
-          "y": 60.0
-        }
-      },
-      {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#1",
         "pos": {
           "x": 414.0,
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 29.0,
-          "y": 254.0
+          "x": 89.0,
+          "y": 84.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 94.0,
-          "y": 364.0
+          "x": 89.0,
+          "y": 94.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 89.0,
-          "y": 104.0
+          "x": 19.0,
+          "y": 294.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 89.0,
-          "y": 84.0
+          "x": 194.0,
+          "y": 234.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 319.0,
-          "y": 294.0
+          "x": 89.0,
+          "y": 104.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 49.0,
-          "y": 114.0
+          "x": 319.0,
+          "y": 294.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#16",
         "pos": {
           "x": 319.0,
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 194.0,
-          "y": 234.0
+          "x": 419.0,
+          "y": 184.0
         },
         "params": 1
       },
       {
-        "id": "GUIand",
-        "name": "DeserializedSubmodelComponent#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 380.0,
-          "y": 85.0
-        }
+          "x": 424.0,
+          "y": 194.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 250.0,
-          "y": 180.0
-        }
+          "x": 429.0,
+          "y": 204.0
+        },
+        "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 5.0,
-          "y": 295.0
+          "x": 84.0,
+          "y": 344.0
         },
-        "params": 4
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
+        "pos": {
+          "x": 94.0,
+          "y": 364.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 29.0,
+          "y": 254.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
+        "pos": {
+          "x": 74.0,
+          "y": 314.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
+        "pos": {
+          "x": 49.0,
+          "y": 114.0
+        },
+        "params": 1
       }
     ],
     "wires": [
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 35.0,
-            "y": 35.0
+            "x": 140.0,
+            "y": 415.0
           },
           {
-            "x": 35.0,
-            "y": 125.0
+            "x": 255.0,
+            "y": 415.0
+          },
+          {
+            "x": 255.0,
+            "y": 280.0
+          },
+          {
+            "x": 340.0,
+            "y": 280.0
+          },
+          {
+            "x": 340.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "S0"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE4"
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 355.0,
+            "y": 30.0
+          },
+          {
+            "x": 355.0,
+            "y": 215.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "mu"
+        },
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#10",
         "path": []
       },
       {
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_3"
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 75.0,
-            "y": 265.0
+            "x": 35.0,
+            "y": 35.0
+          },
+          {
+            "x": 35.0,
+            "y": 125.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#25",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 135.0
+          },
+          {
+            "x": 30.0,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
+          "compName": "GUISplitter#0",
           "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 245.0,
-            "y": 445.0
+            "x": 25.0,
+            "y": 55.0
           },
           {
-            "x": 245.0,
-            "y": 185.0
+            "x": 25.0,
+            "y": 145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#43",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_2"
-        },
-        "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
-        },
-        "name": "unnamedWire#46",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 195.0,
-            "y": 435.0
+            "x": 20.0,
+            "y": 155.0
+          },
+          {
+            "x": 20.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A3"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 425.0,
-            "y": 390.0
-          },
-          {
-            "x": 90.0,
-            "y": 390.0
-          },
-          {
-            "x": 90.0,
-            "y": 355.0
-          }
-        ]
+        "name": "unnamedWire#16",
+        "path": []
       },
       {
         "pin1": {
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_4"
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_2"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "_EN"
         },
         "pin2": {
           "compName": "GUIdff4_finewe#0",
-          "pinName": "C"
+          "pinName": "_WE3"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#2",
         "path": [
-          {
-            "x": 140.0,
-            "y": 415.0
-          },
-          {
-            "x": 255.0,
-            "y": 415.0
-          },
           {
             "x": 255.0,
-            "y": 280.0
+            "y": 25.0
           },
           {
-            "x": 340.0,
-            "y": 280.0
+            "x": 360.0,
+            "y": 25.0
           },
           {
-            "x": 340.0,
-            "y": 175.0
+            "x": 360.0,
+            "y": 205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_2"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y2"
-        },
-        "name": "unnamedWire#31",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "MUX"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 420.0,
-            "y": 385.0
-          },
-          {
-            "x": 85.0,
-            "y": 385.0
+            "x": 40.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "COVD_EN"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#84",
-        "path": [
-          {
-            "x": 275.0,
-            "y": 295.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_3"
+          "compName": "GUISplitter#3",
+          "pinName": "I"
         },
-        "name": "unnamedWire#79",
-        "path": [
-          {
-            "x": 205.0,
-            "y": 85.0
-          },
-          {
-            "x": 205.0,
-            "y": 215.0
-          }
-        ]
+        "name": "unnamedWire#22",
+        "path": []
       },
       {
         "pin1": {
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#24",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 425.0
+          },
+          {
+            "x": 60.0,
+            "y": 415.0
+          },
+          {
+            "x": 30.0,
+            "y": 415.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "A"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_1"
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "I"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q4"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#29",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 25.0,
-            "y": 55.0
+            "x": 155.0,
+            "y": 20.0
           },
           {
-            "x": 25.0,
-            "y": 145.0
+            "x": 365.0,
+            "y": 20.0
+          },
+          {
+            "x": 365.0,
+            "y": 90.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_1"
+        },
+        "name": "unnamedWire#30",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_2"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#31",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_3"
+        },
+        "name": "unnamedWire#32",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y1"
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#34",
         "path": [
           {
-            "x": 30.0,
-            "y": 135.0
+            "x": 415.0,
+            "y": 380.0
           },
           {
-            "x": 30.0,
-            "y": 45.0
+            "x": 80.0,
+            "y": 380.0
+          },
+          {
+            "x": 80.0,
+            "y": 335.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#44",
-        "path": []
+        "name": "unnamedWire#35",
+        "path": [
+          {
+            "x": 420.0,
+            "y": 385.0
+          },
+          {
+            "x": 85.0,
+            "y": 385.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#49",
-        "path": []
+        "name": "unnamedWire#36",
+        "path": [
+          {
+            "x": 425.0,
+            "y": 390.0
+          },
+          {
+            "x": 90.0,
+            "y": 390.0
+          },
+          {
+            "x": 90.0,
+            "y": 355.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_4"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 200.0,
-            "y": 225.0
+            "x": 430.0,
+            "y": 395.0
           },
           {
-            "x": 200.0,
-            "y": 95.0
+            "x": 95.0,
+            "y": 395.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y3"
+          "compName": "GUISplitter#3",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "MUX"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#39",
         "path": [
           {
-            "x": 40.0,
-            "y": 435.0
+            "x": 85.0,
+            "y": 325.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "name": "unnamedWire#28",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE1"
         },
-        "name": "unnamedWire#18",
-        "path": []
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 15.0
+          },
+          {
+            "x": 370.0,
+            "y": 15.0
+          },
+          {
+            "x": 370.0,
+            "y": 185.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#54",
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 90.0,
-            "y": 75.0
+            "x": 95.0,
+            "y": 305.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q4"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#29",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 230.0
+          },
+          {
+            "x": 50.0,
+            "y": 230.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_4"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 415.0,
-            "y": 380.0
-          },
-          {
-            "x": 80.0,
-            "y": 380.0
-          },
-          {
-            "x": 80.0,
-            "y": 335.0
+            "x": 50.0,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "mu"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#46",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#45",
-        "path": [
-          {
-            "x": 50.0,
-            "y": 105.0
-          }
-        ]
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#92",
-        "path": [
-          {
-            "x": 320.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_3"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
           "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
-        "name": "unnamedWire#24",
-        "path": [
-          {
-            "x": 60.0,
-            "y": 425.0
-          },
-          {
-            "x": 60.0,
-            "y": 415.0
-          },
-          {
-            "x": 30.0,
-            "y": 415.0
-          }
-        ]
+        "name": "unnamedWire#51",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#37",
-        "path": [
-          {
-            "x": 430.0,
-            "y": 395.0
-          },
-          {
-            "x": 95.0,
-            "y": 395.0
-          }
-        ]
+        "name": "unnamedWire#52",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#53",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EOVR"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE4"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#54",
         "path": [
           {
-            "x": 355.0,
-            "y": 30.0
-          },
-          {
-            "x": 355.0,
-            "y": 215.0
+            "x": 90.0,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#55",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A2"
+          "compName": "GUISplitter#3",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#58",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "COVD_V"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I1"
-        },
-        "name": "unnamedWire#86",
-        "path": [
-          {
-            "x": 375.0,
-            "y": 325.0
-          },
-          {
-            "x": 320.0,
-            "y": 325.0
-          },
-          {
-            "x": 320.0,
-            "y": 315.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#59",
         "path": [
           {
-            "x": 105.0,
-            "y": 235.0
-          },
-          {
-            "x": 105.0,
-            "y": 65.0
+            "x": 20.0,
+            "y": 245.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "GUIdff4_finewe#0",
-          "pinName": "Q2"
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#6",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D4"
-        },
-        "name": "unnamedWire#70",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 215.0
-          },
-          {
-            "x": 295.0,
-            "y": 255.0
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_2"
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y2"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#64",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#61",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 265.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_4"
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#62",
         "path": [
           {
-            "x": 85.0,
+            "x": 80.0,
             "y": 325.0
+          },
+          {
+            "x": 80.0,
+            "y": 275.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_2"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#67",
         "path": [
           {
-            "x": 95.0,
-            "y": 305.0
+            "x": 195.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#42",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 230.0
-          },
-          {
-            "x": 50.0,
-            "y": 230.0
-          }
-        ]
+        "name": "unnamedWire#68",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#69",
         "path": [
           {
-            "x": 215.0,
-            "y": 65.0
+            "x": 105.0,
+            "y": 235.0
           },
           {
-            "x": 215.0,
-            "y": 195.0
+            "x": 105.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE1"
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#4",
-        "path": [
-          {
-            "x": 55.0,
-            "y": 15.0
-          },
-          {
-            "x": 370.0,
-            "y": 15.0
-          },
-          {
-            "x": 370.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#70",
         "path": [
           {
-            "x": 310.0,
-            "y": 225.0
+            "x": 295.0,
+            "y": 215.0
           },
           {
-            "x": 310.0,
-            "y": 185.0
+            "x": 295.0,
+            "y": 255.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_4"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y4"
-        },
-        "name": "unnamedWire#66",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE3"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 255.0,
-            "y": 25.0
-          },
-          {
-            "x": 360.0,
-            "y": 25.0
+            "x": 300.0,
+            "y": 245.0
           },
           {
-            "x": 360.0,
+            "x": 300.0,
             "y": 205.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#55",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_4"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y4"
-        },
-        "name": "unnamedWire#33",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#8",
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#73",
+        "path": [
+          {
+            "x": 310.0,
+            "y": 225.0
+          },
+          {
+            "x": 310.0,
+            "y": 185.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_4"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#74",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
+          "compName": "DeserializedSubmodelComponent#6",
           "pinName": "I1_3"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#75",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#83",
+        "name": "unnamedWire#76",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#77",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q3"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#26",
-        "path": []
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 225.0
+          },
+          {
+            "x": 200.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D3"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y3"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y3"
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#79",
         "path": [
           {
-            "x": 300.0,
-            "y": 245.0
+            "x": 205.0,
+            "y": 85.0
           },
           {
-            "x": 300.0,
-            "y": 205.0
+            "x": 205.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q1"
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#80",
         "path": [
           {
-            "x": 20.0,
-            "y": 245.0
+            "x": 210.0,
+            "y": 205.0
+          },
+          {
+            "x": 210.0,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#81",
         "path": [
           {
-            "x": 20.0,
-            "y": 155.0
+            "x": 215.0,
+            "y": 65.0
           },
           {
-            "x": 20.0,
-            "y": 65.0
+            "x": 215.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_2"
+          "compName": "GUISplitter#2",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y2"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#80",
+        "name": "unnamedWire#82",
         "path": [
           {
-            "x": 210.0,
-            "y": 205.0
+            "x": 245.0,
+            "y": 445.0
           },
           {
-            "x": 210.0,
-            "y": 75.0
+            "x": 245.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D2"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#83",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "COVD_EN"
+        },
+        "name": "unnamedWire#84",
         "path": [
           {
-            "x": 365.0,
+            "x": 275.0,
             "y": 295.0
-          },
-          {
-            "x": 365.0,
-            "y": 235.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#85",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "COVD_V"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I1"
+        },
+        "name": "unnamedWire#86",
         "path": [
           {
-            "x": 80.0,
+            "x": 375.0,
             "y": 325.0
           },
           {
-            "x": 80.0,
-            "y": 275.0
+            "x": 320.0,
+            "y": 325.0
+          },
+          {
+            "x": 320.0,
+            "y": 315.0
           }
         ]
       },
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#90",
-        "path": []
+        "name": "unnamedWire#88",
+        "path": [
+          {
+            "x": 365.0,
+            "y": 295.0
+          },
+          {
+            "x": 365.0,
+            "y": 235.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "B"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#89",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_2"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#90",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_4"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y4"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#91",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "A"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#92",
         "path": [
           {
-            "x": 155.0,
-            "y": 20.0
-          },
-          {
-            "x": 365.0,
-            "y": 20.0
-          },
-          {
-            "x": 365.0,
-            "y": 90.0
+            "x": 320.0,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#93",
         "path": []
       }
     ],
     "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "MSR",
     "centerTextHeight": 5.0,
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
   },
-  "version": "0.1.4"
+  "version": "0.1.5"
 }
\ No newline at end of file
index 5b35584..e4017fe 100644 (file)
@@ -1,63 +1,69 @@
-mograsim version: 0.1.3
 {
   "width": 60.0,
   "height": 90.0,
   "interfacePins": [
     {
       "location": {
-        "x": 60.0,
-        "y": 60.0
+        "x": 0.0,
+        "y": 50.0
       },
-      "name": "Y101",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 20.0
+        "y": 10.0
       },
-      "name": "Y001",
-      "logicWidth": 1
+      "name": "Y000",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 50.0
+        "y": 20.0
       },
-      "name": "Y100",
-      "logicWidth": 1
+      "name": "Y001",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 80.0
+        "y": 30.0
       },
-      "name": "Y111",
-      "logicWidth": 1
+      "name": "Y010",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 50.0
+        "x": 60.0,
+        "y": 40.0
       },
-      "name": "I",
-      "logicWidth": 4
+      "name": "Y011",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 40.0
+        "y": 50.0
       },
-      "name": "Y011",
-      "logicWidth": 1
+      "name": "Y100",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 10.0
+        "y": 60.0
       },
-      "name": "Y000",
-      "logicWidth": 1
+      "name": "Y101",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,31 +71,32 @@ mograsim version: 0.1.3
         "y": 70.0
       },
       "name": "Y110",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 30.0
+        "y": 80.0
       },
-      "name": "Y010",
-      "logicWidth": 1
+      "name": "Y111",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#0",
         "pos": {
-          "x": 45.0,
-          "y": 50.0
-        },
-        "params": 1
+          "x": 40.0,
+          "y": 20.0
+        }
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 85.0,
@@ -98,16 +105,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 45.0,
-          "y": 105.0
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#2",
         "pos": {
           "x": 120.0,
@@ -116,25 +123,34 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 34.0,
-          "y": 99.0
+          "x": 45.0,
+          "y": 105.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 29.0,
-          "y": 129.0
+          "x": 80.0,
+          "y": 115.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
+        "pos": {
+          "x": 80.0,
+          "y": 165.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
         "name": "GUISplitter#0",
         "pos": {
           "x": 5.0,
@@ -143,16 +159,34 @@ mograsim version: 0.1.3
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 79.0,
-          "y": 24.0
+          "x": 29.0,
+          "y": 129.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 34.0,
+          "y": 99.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
+        "pos": {
+          "x": 39.0,
+          "y": 109.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 79.0,
@@ -161,16 +195,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 24.0,
-          "y": 119.0
+          "x": 79.0,
+          "y": 24.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 19.0,
@@ -179,16 +213,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 74.0,
-          "y": 59.0
+          "x": 24.0,
+          "y": 119.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#6",
         "pos": {
           "x": 39.0,
@@ -197,16 +231,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 24.0,
-          "y": 149.0
+          "x": 74.0,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#8",
         "pos": {
           "x": 74.0,
@@ -215,60 +249,92 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 80.0,
-          "y": 165.0
+          "x": 24.0,
+          "y": 149.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
-        "pos": {
-          "x": 39.0,
-          "y": 109.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
-        "params": 1
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 40.0,
-          "y": 20.0
-        }
+        "pin1": {
+          "compName": "GUISplitter#0",
+          "pinName": "O2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 80.0,
-          "y": 115.0
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 110.0,
+            "y": 20.0
+          },
+          {
+            "x": 110.0,
+            "y": 30.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 115.0,
-            "y": 60.0
-          },
+            "x": 20.0,
+            "y": 65.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#12",
+        "path": [
           {
-            "x": 115.0,
-            "y": 30.0
+            "x": 40.0,
+            "y": 55.0
           }
         ]
       },
@@ -286,15 +352,24 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y000"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16",
-        "path": []
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 60.0
+          },
+          {
+            "x": 115.0,
+            "y": 30.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -315,14 +390,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y000"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
@@ -342,6 +417,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "GUISplitter#0",
@@ -356,18 +443,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#21",
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
+        },
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 20.0,
-            "y": 110.0
+            "x": 35.0,
+            "y": 140.0
           }
         ]
       },
@@ -385,15 +472,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y100"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 110.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -409,14 +501,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y100"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
@@ -442,14 +534,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
@@ -466,14 +558,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Y110"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
@@ -490,75 +582,32 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y110"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
-        },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 25.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -579,37 +628,21 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 110.0,
-            "y": 20.0
-          },
-          {
-            "x": 110.0,
-            "y": 30.0
+            "x": 40.0,
+            "y": 120.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#9",
@@ -629,126 +662,102 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y111"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 35.0,
-            "y": 35.0
+            "x": 30.0,
+            "y": 200.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#4",
         "path": [
           {
-            "x": 40.0,
-            "y": 120.0
+            "x": 35.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 25.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 40.0,
-            "y": 55.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 140.0
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 65.0
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Y111"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#33",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 200.0
-          }
-        ]
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "Test\nlogic",
     "centerTextHeight": 5.0,
@@ -756,10 +765,11 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index fa3ed35..bb91791 100644 (file)
@@ -1,23 +1,15 @@
-mograsim version: 0.1.3
 {
   "width": 45.0,
   "height": 46.0,
   "interfacePins": [
     {
       "location": {
-        "x": 4.0,
+        "x": 14.0,
         "y": 46.0
       },
-      "name": "MUX",
-      "logicWidth": 2
-    },
-    {
-      "location": {
-        "x": 45.0,
-        "y": 19.0
-      },
-      "name": "Q",
-      "logicWidth": 4
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,47 +17,53 @@ mograsim version: 0.1.3
         "y": 46.0
       },
       "name": "CINV",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 14.0,
-        "y": 46.0
+        "x": 0.0,
+        "y": 31.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 5.5,
-        "y": 0.0
+        "x": 0.0,
+        "y": 13.5
       },
-      "name": "_EZ",
-      "logicWidth": 1
+      "name": "M",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 37.5,
+        "x": 4.0,
         "y": 46.0
       },
-      "name": "OVRRET",
-      "logicWidth": 1
+      "name": "MUX",
+      "logicWidth": 2,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 31.0
+        "x": 37.5,
+        "y": 46.0
       },
-      "name": "I",
-      "logicWidth": 4
+      "name": "OVRRET",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 25.5,
-        "y": 0.0
+        "x": 45.0,
+        "y": 19.0
       },
-      "name": "_EN",
-      "logicWidth": 1
+      "name": "Q",
+      "logicWidth": 4,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -73,15 +71,17 @@ mograsim version: 0.1.3
         "y": 0.0
       },
       "name": "_EC",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 13.5
+        "x": 25.5,
+        "y": 0.0
       },
-      "name": "M",
-      "logicWidth": 4
+      "name": "_EN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,23 +89,57 @@ mograsim version: 0.1.3
         "y": 0.0
       },
       "name": "_EOVR",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 5.5,
+        "y": 0.0
+      },
+      "name": "_EZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 45.0,
+          "y": 240.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#1",
+        "pos": {
+          "x": 100.0,
+          "y": 190.0
+        }
+      },
+      {
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#2",
         "pos": {
           "x": 215.0,
-          "y": 255.0
+          "y": 200.0
+        }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
+        "name": "GUIMerger#0",
+        "pos": {
+          "x": 435.0,
+          "y": 175.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 245.0,
@@ -114,34 +148,34 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 215.0,
-          "y": 235.0
+          "y": 255.0
         },
         "params": 1
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 435.0,
-          "y": 175.0
+          "x": 215.0,
+          "y": 235.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#0",
         "pos": {
-          "x": 45.0,
-          "y": 430.0
+          "x": 5.0,
+          "y": 120.0
         },
-        "params": 2
+        "params": 4
       },
       {
-        "id": "GUISplitter",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
         "name": "GUISplitter#1",
         "pos": {
           "x": 5.0,
@@ -150,16 +184,24 @@ mograsim version: 0.1.3
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#2",
         "pos": {
-          "x": 89.0,
-          "y": 224.0
+          "x": 45.0,
+          "y": 430.0
         },
-        "params": 1
+        "params": 2
+      },
+      {
+        "id": "class:net.mograsim.logic.model.am2900.components.GUIdff4_finewe",
+        "name": "GUIdff4_finewe#0",
+        "pos": {
+          "x": 375.0,
+          "y": 170.0
+        }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 89.0,
@@ -168,903 +210,872 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 5.0,
-          "y": 120.0
+          "x": 89.0,
+          "y": 224.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 429.0,
-          "y": 204.0
+          "x": 89.0,
+          "y": 214.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 89.0,
-          "y": 214.0
+          "x": 429.0,
+          "y": 204.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 209.0,
           "y": 244.0
         },
         "params": 1
-      },
-      {
-        "id": "GUIdff4_finewe",
-        "name": "GUIdff4_finewe#0",
-        "pos": {
-          "x": 375.0,
-          "y": 170.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 100.0,
-          "y": 190.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 45.0,
-          "y": 240.0
-        }
-      },
-      {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#2",
-        "pos": {
-          "x": 215.0,
-          "y": 200.0
-        }
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "CINV"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "B"
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 275.0,
-            "y": 390.0
-          },
-          {
-            "x": 190.0,
-            "y": 390.0
-          },
-          {
-            "x": 190.0,
-            "y": 215.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y2"
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "A"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q2"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "C"
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#38",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 325.0
-          },
-          {
-            "x": 345.0,
-            "y": 325.0
-          },
-          {
-            "x": 345.0,
-            "y": 175.0
-          }
-        ]
+        "name": "unnamedWire#10",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE1"
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 370.0,
-            "y": 185.0
-          },
-          {
-            "x": 370.0,
-            "y": 5.0
+            "x": 20.0,
+            "y": 150.0
           },
           {
-            "x": 55.0,
-            "y": 5.0
+            "x": 20.0,
+            "y": 285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EOVR"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE4"
+          "compName": "GUISplitter#0",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 355.0,
-            "y": 215.0
+            "x": 25.0,
+            "y": 275.0
+          },
+          {
+            "x": 25.0,
+            "y": 140.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE2"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 155.0,
-            "y": 10.0
-          },
-          {
-            "x": 365.0,
-            "y": 10.0
+            "x": 30.0,
+            "y": 130.0
           },
           {
-            "x": 365.0,
-            "y": 195.0
+            "x": 30.0,
+            "y": 265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE3"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 360.0,
-            "y": 205.0
-          },
-          {
-            "x": 360.0,
-            "y": 15.0
+            "x": 35.0,
+            "y": 255.0
           },
           {
-            "x": 255.0,
-            "y": 15.0
+            "x": 35.0,
+            "y": 120.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "MUX"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D2"
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 310.0,
-            "y": 205.0
-          },
-          {
-            "x": 310.0,
-            "y": 235.0
+            "x": 40.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D1"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 315.0,
-            "y": 225.0
-          },
-          {
-            "x": 315.0,
-            "y": 195.0
+            "x": 90.0,
+            "y": 430.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y4"
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#45",
-        "path": [
-          {
-            "x": 160.0,
-            "y": 245.0
-          },
-          {
-            "x": 160.0,
-            "y": 225.0
-          }
-        ]
+        "name": "unnamedWire#17",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D3"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
+          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "Y3"
         },
-        "name": "unnamedWire#44",
-        "path": [
-          {
-            "x": 305.0,
-            "y": 245.0
-          },
-          {
-            "x": 305.0,
-            "y": 225.0
-          },
-          {
-            "x": 170.0,
-            "y": 225.0
-          },
-          {
-            "x": 170.0,
-            "y": 215.0
-          }
-        ]
+        "name": "unnamedWire#18",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#47",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 240.0
-          }
-        ]
+        "name": "unnamedWire#19",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D4"
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#48",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 250.0
-          }
-        ]
+        "name": "unnamedWire#20",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
-        "path": []
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 90.0,
+            "y": 205.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "I"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "M"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
-        },
-        "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#4",
-        "path": []
+        "name": "unnamedWire#27",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 235.0
+          },
+          {
+            "x": 40.0,
+            "y": 245.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_3"
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#28",
         "path": [
           {
-            "x": 25.0,
-            "y": 275.0
+            "x": 85.0,
+            "y": 440.0
           },
           {
-            "x": 25.0,
-            "y": 140.0
+            "x": 85.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q4"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "pin2": {
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIdff4_finewe#0",
-          "pinName": "Q3"
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_4"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 20.0,
-            "y": 150.0
+            "x": 240.0,
+            "y": 245.0
           },
           {
-            "x": 20.0,
-            "y": 285.0
+            "x": 240.0,
+            "y": 250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 35.0,
-            "y": 255.0
+            "x": 240.0,
+            "y": 260.0
           },
           {
-            "x": 35.0,
-            "y": 120.0
+            "x": 240.0,
+            "y": 265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "_submodelinterface",
+          "pinName": "OVRRET"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 30.0,
-            "y": 130.0
+            "x": 375.0,
+            "y": 360.0
           },
           {
-            "x": 30.0,
-            "y": 265.0
+            "x": 205.0,
+            "y": 360.0
+          },
+          {
+            "x": 205.0,
+            "y": 260.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 90.0,
-            "y": 430.0
-          }
-        ]
+        "name": "unnamedWire#33",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "MUX"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#34",
         "path": [
           {
-            "x": 40.0,
-            "y": 435.0
+            "x": 430.0,
+            "y": 280.0
+          },
+          {
+            "x": 210.0,
+            "y": 280.0
+          },
+          {
+            "x": 210.0,
+            "y": 270.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_3"
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
+          "compName": "_submodelinterface",
+          "pinName": "CINV"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_4"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#17",
-        "path": []
+        "name": "unnamedWire#36",
+        "path": [
+          {
+            "x": 275.0,
+            "y": 390.0
+          },
+          {
+            "x": 190.0,
+            "y": 390.0
+          },
+          {
+            "x": 190.0,
+            "y": 215.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_2"
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#19",
-        "path": []
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 370.0,
+            "y": 185.0
+          },
+          {
+            "x": 370.0,
+            "y": 5.0
+          },
+          {
+            "x": 55.0,
+            "y": 5.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_1"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#38",
         "path": [
           {
-            "x": 90.0,
-            "y": 205.0
+            "x": 140.0,
+            "y": 325.0
+          },
+          {
+            "x": 345.0,
+            "y": 325.0
+          },
+          {
+            "x": 345.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE4"
         },
-        "name": "unnamedWire#20",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#23",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_2"
-        },
-        "name": "unnamedWire#22",
-        "path": []
+        "name": "unnamedWire#39",
+        "path": [
+          {
+            "x": 355.0,
+            "y": 215.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#24",
-        "path": []
+        "name": "unnamedWire#40",
+        "path": [
+          {
+            "x": 360.0,
+            "y": 205.0
+          },
+          {
+            "x": 360.0,
+            "y": 15.0
+          },
+          {
+            "x": 255.0,
+            "y": 15.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE2"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 40.0,
-            "y": 235.0
+            "x": 155.0,
+            "y": 10.0
           },
           {
-            "x": 40.0,
-            "y": 245.0
+            "x": 365.0,
+            "y": 10.0
+          },
+          {
+            "x": 365.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D1"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_4"
-        },
-        "name": "unnamedWire#26",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#29",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 315.0,
+            "y": 225.0
+          },
+          {
+            "x": 315.0,
+            "y": 195.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "S0"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 85.0,
-            "y": 440.0
+            "x": 310.0,
+            "y": 205.0
           },
           {
-            "x": 85.0,
-            "y": 195.0
+            "x": 310.0,
+            "y": 235.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 240.0,
+            "x": 305.0,
             "y": 245.0
           },
           {
-            "x": 240.0,
-            "y": 250.0
+            "x": 305.0,
+            "y": 225.0
+          },
+          {
+            "x": 170.0,
+            "y": 225.0
+          },
+          {
+            "x": 170.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "OVRRET"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 375.0,
-            "y": 360.0
-          },
-          {
-            "x": 205.0,
-            "y": 360.0
+            "x": 160.0,
+            "y": 245.0
           },
           {
-            "x": 205.0,
-            "y": 260.0
+            "x": 160.0,
+            "y": 225.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#46",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 240.0,
-            "y": 260.0
-          },
-          {
-            "x": 240.0,
-            "y": 265.0
+            "x": 210.0,
+            "y": 240.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#48",
         "path": [
-          {
-            "x": 430.0,
-            "y": 280.0
-          },
-          {
-            "x": 210.0,
-            "y": 280.0
-          },
           {
             "x": 210.0,
-            "y": 270.0
+            "y": 250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "M"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I"
+        },
+        "pin2": {
+          "compName": "GUISplitter#1",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_4"
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_3"
+        },
+        "pin2": {
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
+        },
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "muSR",
     "centerTextHeight": 5.0,
@@ -1072,10 +1083,11 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index e410f3b..e078ec5 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 72.0,
   "height": 67.0,
@@ -9,15 +8,8 @@ mograsim version: 0.1.3
         "y": 0.0
       },
       "name": "C",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 36.0,
-        "y": 0.0
-      },
-      "name": "D",
-      "logicWidth": 12
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,15 +17,17 @@ mograsim version: 0.1.3
         "y": 40.0
       },
       "name": "CI",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 6.0
+        "x": 36.0,
+        "y": 0.0
       },
-      "name": "_RLD",
-      "logicWidth": 1
+      "name": "D",
+      "logicWidth": 12,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,31 +35,35 @@ mograsim version: 0.1.3
         "y": 50.0
       },
       "name": "I",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 19.0,
+        "x": 38.0,
         "y": 67.0
       },
-      "name": "_MAP",
-      "logicWidth": 1
+      "name": "Y",
+      "logicWidth": 12,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 44.0
+        "y": 38.0
       },
-      "name": "_CCEN",
-      "logicWidth": 1
+      "name": "_CC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 49.0,
-        "y": 67.0
+        "x": 0.0,
+        "y": 44.0
       },
-      "name": "_OE",
-      "logicWidth": 1
+      "name": "_CCEN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -73,63 +71,120 @@ mograsim version: 0.1.3
         "y": 14.0
       },
       "name": "_FULL",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 38.0,
+        "x": 19.0,
         "y": 67.0
       },
-      "name": "Y",
-      "logicWidth": 12
+      "name": "_MAP",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 13.0,
+        "x": 49.0,
         "y": 67.0
       },
-      "name": "_PL",
-      "logicWidth": 1
+      "name": "_OE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 25.0,
+        "x": 13.0,
         "y": 67.0
       },
-      "name": "_VECT",
-      "logicWidth": 1
+      "name": "_PL",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 38.0
+        "y": 6.0
       },
-      "name": "_CC",
-      "logicWidth": 1
+      "name": "_RLD",
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 25.0,
+        "y": 67.0
+      },
+      "name": "_VECT",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910InstrPLA",
+        "name": "GUIAm2910InstrPLA#0",
         "pos": {
-          "x": 10.0,
-          "y": 210.0
-        },
-        "params": 1
+          "x": 80.0,
+          "y": 155.0
+        }
       },
       {
-        "id": "GUIram5_12",
-        "name": "GUIram5_12#0",
+        "id": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910RegCntr",
+        "name": "GUIAm2910RegCntr#0",
+        "pos": {
+          "x": 160.0,
+          "y": 25.0
+        }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910SP",
+        "name": "GUIAm2910SP#0",
         "pos": {
           "x": 305.0,
-          "y": 100.0
+          "y": 55.0
         }
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#0",
+        "pos": {
+          "x": 160.0,
+          "y": 95.0
+        },
+        "params": 12
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#1",
+        "pos": {
+          "x": 260.0,
+          "y": 115.0
+        },
+        "params": 12
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#2",
+        "pos": {
+          "x": 345.0,
+          "y": 180.0
+        },
+        "params": 12
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#3",
+        "pos": {
+          "x": 265.0,
+          "y": 150.0
+        },
+        "params": 12
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 40.0,
@@ -138,7 +193,28 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIdff12",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 10.0,
+          "y": 210.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#0",
+        "pos": {
+          "x": 180.0,
+          "y": 290.0
+        },
+        "params": {
+          "logicWidth": 12,
+          "orientation": "DOWN_ALT"
+        }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.am2900.components.GUIdff12",
         "name": "GUIdff12#0",
         "pos": {
           "x": 305.0,
@@ -146,7 +222,7 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIinc12",
+        "id": "class:net.mograsim.logic.model.am2900.components.GUIinc12",
         "name": "GUIinc12#0",
         "pos": {
           "x": 305.0,
@@ -154,25 +230,31 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
+        "id": "class:net.mograsim.logic.model.am2900.components.GUInor12",
+        "name": "GUInor12#0",
         "pos": {
-          "x": 265.0,
-          "y": 150.0
-        },
-        "params": 12
+          "x": 190.0,
+          "y": 80.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.am2900.components.GUIram5_12",
+        "name": "GUIram5_12#0",
         "pos": {
-          "x": 294.0,
-          "y": 104.0
-        },
-        "params": 1
+          "x": 305.0,
+          "y": 100.0
+        }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.am2900.components.GUIsel4_12",
+        "name": "GUIsel4_12#0",
+        "pos": {
+          "x": 150.0,
+          "y": 175.0
+        }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 324.0,
@@ -181,16 +263,16 @@ mograsim version: 0.1.3
         "params": 12
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 179.0,
-          "y": 89.0
+          "x": 294.0,
+          "y": 104.0
         },
-        "params": 12
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 189.0,
@@ -199,16 +281,16 @@ mograsim version: 0.1.3
         "params": 12
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 4.0,
-          "y": 219.0
+          "x": 179.0,
+          "y": 89.0
         },
-        "params": 1
+        "params": 12
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 179.0,
@@ -217,28 +299,16 @@ mograsim version: 0.1.3
         "params": 12
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 299.0,
-          "y": 44.0
+          "x": 4.0,
+          "y": 219.0
         },
         "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#0",
-        "pos": {
-          "x": 180.0,
-          "y": 290.0
-        },
-        "params": {
-          "logicWidth": 12,
-          "orientation": "DOWN_ALT"
-        }
-      },
-      {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#6",
         "pos": {
           "x": 299.0,
@@ -247,16 +317,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
           "x": 299.0,
-          "y": 114.0
+          "y": 44.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#8",
         "pos": {
           "x": 299.0,
@@ -265,455 +335,379 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUInor12",
-        "name": "GUInor12#0",
-        "pos": {
-          "x": 190.0,
-          "y": 80.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
-        "pos": {
-          "x": 160.0,
-          "y": 95.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIAm2910InstrPLA",
-        "name": "GUIAm2910InstrPLA#0",
-        "pos": {
-          "x": 80.0,
-          "y": 155.0
-        }
-      },
-      {
-        "id": "GUIAm2910SP",
-        "name": "GUIAm2910SP#0",
-        "pos": {
-          "x": 305.0,
-          "y": 55.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
-        "pos": {
-          "x": 260.0,
-          "y": 115.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 345.0,
-          "y": 180.0
+          "x": 299.0,
+          "y": 114.0
         },
-        "params": 12
-      },
-      {
-        "id": "GUIsel4_12",
-        "name": "GUIsel4_12#0",
-        "pos": {
-          "x": 150.0,
-          "y": 175.0
-        }
-      },
-      {
-        "id": "GUIAm2910RegCntr",
-        "name": "GUIAm2910RegCntr#0",
-        "pos": {
-          "x": 160.0,
-          "y": 25.0
-        }
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "YD"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIsel4_12#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "YR"
         },
         "pin2": {
-          "compName": "GUIdff12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#35",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIsel4_12#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUInor12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "C"
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "R\u003d0"
         },
-        "name": "unnamedWire#37",
-        "path": []
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 230.0,
+            "y": 90.0
+          },
+          {
+            "x": 230.0,
+            "y": 120.0
+          },
+          {
+            "x": 95.0,
+            "y": 120.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "RWE"
         },
         "pin2": {
           "compName": "GUIAm2910RegCntr#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#39",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "CI"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "CI"
-        },
-        "name": "unnamedWire#41",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "pinName": "WE"
         },
-        "name": "unnamedWire#40",
-        "path": []
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 160.0
+          },
+          {
+            "x": 115.0,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_MAP"
+          "pinName": "RDEC"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_MAP"
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "DEC"
         },
-        "name": "unnamedWire#43",
-        "path": []
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 120.0,
+            "y": 170.0
+          },
+          {
+            "x": 120.0,
+            "y": 55.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_PL"
+          "pinName": "STKI0"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_PL"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 85.0,
-            "y": 290.0
-          },
-          {
-            "x": 65.0,
-            "y": 290.0
+            "x": 295.0,
+            "y": 220.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "STKI1"
         },
         "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "I"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "STKI1"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 70.0,
-            "y": 250.0
+            "x": 290.0,
+            "y": 230.0
           },
           {
-            "x": 70.0,
-            "y": 175.0
+            "x": 290.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_VECT"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_VECT"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "STKI0"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 105.0,
-            "y": 290.0
-          },
-          {
-            "x": 125.0,
-            "y": 290.0
+            "x": 295.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "GUIram5_12#0",
-          "pinName": "Y"
+          "pinName": "WE"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#1",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
+          "compName": "GUIsel4_12#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIBitDisplay#3",
-          "pinName": ""
+          "compName": "GUIinc12#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#49",
-        "path": []
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 325.0,
+            "y": 275.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIinc12#0",
+          "compName": "GUIram5_12#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#2",
-          "pinName": ""
+          "compName": "GUIsel4_12#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#48",
-        "path": []
+        "name": "unnamedWire#19",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 130.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "Y"
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "YF"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIsel4_12#0",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "B"
+          "compName": "GUIsel4_12#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#8",
-        "path": []
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "A"
+          "compName": "GUIsel4_12#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
+          "compName": "GUInor12#0",
           "pinName": "D"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YR"
+          "compName": "_submodelinterface",
+          "pinName": "D"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SB"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "C"
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YD"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIsel4_12#0",
-          "pinName": "SA"
+          "pinName": "A"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 145.0,
+            "y": 15.0
+          },
+          {
+            "x": 145.0,
+            "y": 150.0
+          },
+          {
+            "x": 160.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "OUT"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "name": "unnamedWire#52",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "pinName": "_RLD"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "_RLD"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUInor12#0",
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
           "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "R\u003d0"
+          "pinName": "PASS"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#28",
         "path": [
           {
-            "x": 230.0,
-            "y": 90.0
-          },
-          {
-            "x": 230.0,
-            "y": 120.0
+            "x": 65.0,
+            "y": 195.0
           },
           {
-            "x": 95.0,
-            "y": 120.0
+            "x": 65.0,
+            "y": 160.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "_CC"
         },
         "pin2": {
-          "compName": "GUIdff12#0",
-          "pinName": "D"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#29",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OE"
-        },
-        "name": "unnamedWire#53",
-        "path": [
-          {
-            "x": 245.0,
-            "y": 300.0
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "GUIAm2910InstrPLA#0",
@@ -728,400 +722,419 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RDEC"
+          "compName": "_submodelinterface",
+          "pinName": "_CCEN"
         },
         "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "DEC"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 170.0
-          },
-          {
-            "x": 120.0,
-            "y": 55.0
-          }
-        ]
+        "name": "unnamedWire#30",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YF"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SC"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#2",
-        "path": []
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 215.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RWE"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "WE"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 115.0,
-            "y": 160.0
-          },
-          {
-            "x": 115.0,
-            "y": 45.0
+            "x": 5.0,
+            "y": 225.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI1"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "STKI1"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 290.0,
-            "y": 230.0
+            "x": 35.0,
+            "y": 220.0
           },
           {
-            "x": 290.0,
-            "y": 70.0
+            "x": 35.0,
+            "y": 200.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI0"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "_FULL"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "_submodelinterface",
+          "pinName": "_FULL"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#13",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 220.0
-          }
-        ]
+        "pin2": {
+          "compName": "GUIdff12#0",
+          "pinName": "C"
+        },
+        "name": "unnamedWire#35",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "WE"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2910SP#0",
-          "pinName": "STKI0"
+          "pinName": "C"
         },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 60.0
-          }
-        ]
+        "name": "unnamedWire#37",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#38",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "C"
+        },
+        "name": "unnamedWire#39",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUIinc12#0",
-          "pinName": "A"
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIdff12#0",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 325.0,
-            "y": 275.0
-          }
-        ]
+        "name": "unnamedWire#40",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "Y"
+          "compName": "GUIinc12#0",
+          "pinName": "CI"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "CI"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "Y"
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "_PL"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "C"
+          "compName": "_submodelinterface",
+          "pinName": "_PL"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#42",
         "path": [
           {
-            "x": 200.0,
-            "y": 130.0
+            "x": 85.0,
+            "y": 290.0
+          },
+          {
+            "x": 65.0,
+            "y": 290.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "_MAP"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "_MAP"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "_VECT"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "D"
+          "compName": "_submodelinterface",
+          "pinName": "_VECT"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 220.0,
-            "y": 150.0
+            "x": 105.0,
+            "y": 290.0
+          },
+          {
+            "x": 125.0,
+            "y": 290.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D"
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#45",
+        "path": [
+          {
+            "x": 70.0,
+            "y": 250.0
+          },
+          {
+            "x": 70.0,
+            "y": 175.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUInor12#0",
-          "pinName": "D"
+          "compName": "GUIBitDisplay#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIram5_12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "A"
+          "compName": "GUIBitDisplay#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 145.0,
-            "y": 15.0
-          },
-          {
-            "x": 145.0,
-            "y": 150.0
-          },
-          {
-            "x": 160.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#47",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIinc12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "D"
+          "compName": "GUIBitDisplay#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "compName": "GUIdff12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "GUIBitDisplay#3",
           "pinName": ""
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_RLD"
+          "compName": "GUIdff12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "_RLD"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CC"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIram5_12#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "PASS"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 195.0
-          },
-          {
-            "x": 65.0,
-            "y": 160.0
-          }
-        ]
+        "name": "unnamedWire#51",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CCEN"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "_OE"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#53",
         "path": [
           {
-            "x": 5.0,
-            "y": 225.0
+            "x": 245.0,
+            "y": 300.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUIram5_12#0",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2910SP#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#31",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 215.0
-          }
-        ]
+        "pin2": {
+          "compName": "GUIram5_12#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
           "compName": "GUIAm2910SP#0",
-          "pinName": "_FULL"
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_FULL"
+          "compName": "GUIram5_12#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUIAm2910RegCntr#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 220.0
-          },
-          {
-            "x": 35.0,
-            "y": 200.0
-          }
-        ]
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "Am2910",
     "centerTextHeight": 5.0,
@@ -1129,10 +1142,11 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/components/am2910/GUIAm2910_old.json b/net.mograsim.logic.model.am2900/components/am2910/GUIAm2910_old.json
deleted file mode 100644 (file)
index 20f9ac0..0000000
+++ /dev/null
@@ -1,1089 +0,0 @@
-mograsim version: 0.1.3
-{
-  "width": 72.0,
-  "height": 61.0,
-  "interfacePins": [
-    {
-      "location": {
-        "x": 19.0,
-        "y": 61.0
-      },
-      "name": "_MAP",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 44.0
-      },
-      "name": "_CCEN",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 60.0,
-        "y": 0.0
-      },
-      "name": "C",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 36.0,
-        "y": 0.0
-      },
-      "name": "D",
-      "logicWidth": 12
-    },
-    {
-      "location": {
-        "x": 72.0,
-        "y": 14.0
-      },
-      "name": "_FULL",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 72.0,
-        "y": 40.0
-      },
-      "name": "CI",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 6.0
-      },
-      "name": "_RLD",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 50.0
-      },
-      "name": "I",
-      "logicWidth": 4
-    },
-    {
-      "location": {
-        "x": 38.0,
-        "y": 61.0
-      },
-      "name": "Y",
-      "logicWidth": 12
-    },
-    {
-      "location": {
-        "x": 13.0,
-        "y": 61.0
-      },
-      "name": "_PL",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 25.0,
-        "y": 61.0
-      },
-      "name": "_VECT",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 38.0
-      },
-      "name": "_CC",
-      "logicWidth": 1
-    }
-  ],
-  "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 10.0,
-          "y": 210.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIram5_12",
-        "name": "GUIram5_12#0",
-        "pos": {
-          "x": 305.0,
-          "y": 100.0
-        }
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
-        "pos": {
-          "x": 40.0,
-          "y": 185.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIdff12",
-        "name": "GUIdff12#0",
-        "pos": {
-          "x": 305.0,
-          "y": 160.0
-        }
-      },
-      {
-        "id": "GUIinc12",
-        "name": "GUIinc12#0",
-        "pos": {
-          "x": 305.0,
-          "y": 190.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
-        "pos": {
-          "x": 265.0,
-          "y": 150.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 294.0,
-          "y": 104.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 324.0,
-          "y": 149.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
-        "pos": {
-          "x": 179.0,
-          "y": 89.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 189.0,
-          "y": 274.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
-        "pos": {
-          "x": 4.0,
-          "y": 219.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
-        "pos": {
-          "x": 179.0,
-          "y": 14.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
-        "pos": {
-          "x": 299.0,
-          "y": 44.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
-        "pos": {
-          "x": 299.0,
-          "y": 79.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
-        "pos": {
-          "x": 299.0,
-          "y": 114.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
-        "pos": {
-          "x": 299.0,
-          "y": 169.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIsel4_12",
-        "name": "GUIsel4_12#0",
-        "pos": {
-          "x": 150.0,
-          "y": 175.0
-        }
-      },
-      {
-        "id": "GUInor12",
-        "name": "GUInor12#0",
-        "pos": {
-          "x": 190.0,
-          "y": 80.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
-        "pos": {
-          "x": 160.0,
-          "y": 95.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIAm2910InstrPLA",
-        "name": "GUIAm2910InstrPLA#0",
-        "pos": {
-          "x": 80.0,
-          "y": 155.0
-        }
-      },
-      {
-        "id": "GUIAm2910SP",
-        "name": "GUIAm2910SP#0",
-        "pos": {
-          "x": 305.0,
-          "y": 55.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
-        "pos": {
-          "x": 260.0,
-          "y": 115.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
-        "pos": {
-          "x": 345.0,
-          "y": 180.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIAm2910RegCntr",
-        "name": "GUIAm2910RegCntr#0",
-        "pos": {
-          "x": 160.0,
-          "y": 25.0
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "name": "unnamedWire#36",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdff12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#35",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#38",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#37",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#39",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "CI"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "CI"
-        },
-        "name": "unnamedWire#41",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#40",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_MAP"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_MAP"
-        },
-        "name": "unnamedWire#43",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_PL"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_PL"
-        },
-        "name": "unnamedWire#42",
-        "path": [
-          {
-            "x": 85.0,
-            "y": 290.0
-          },
-          {
-            "x": 65.0,
-            "y": 290.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
-        },
-        "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#45",
-        "path": [
-          {
-            "x": 70.0,
-            "y": 250.0
-          },
-          {
-            "x": 70.0,
-            "y": 175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_VECT"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_VECT"
-        },
-        "name": "unnamedWire#44",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 290.0
-          },
-          {
-            "x": 125.0,
-            "y": 290.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#47",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#46",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#49",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#48",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "B"
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "A"
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YR"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SB"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#50",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YD"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SA"
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "name": "unnamedWire#51",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUInor12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "R\u003d0"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 230.0,
-            "y": 90.0
-          },
-          {
-            "x": 230.0,
-            "y": 120.0
-          },
-          {
-            "x": 95.0,
-            "y": 120.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIdff12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#4",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YmuPC"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SD"
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RDEC"
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "DEC"
-        },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 170.0
-          },
-          {
-            "x": 120.0,
-            "y": 55.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YF"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SC"
-        },
-        "name": "unnamedWire#2",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RWE"
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "WE"
-        },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 160.0
-          },
-          {
-            "x": 115.0,
-            "y": 45.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI1"
-        },
-        "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "STKI1"
-        },
-        "name": "unnamedWire#14",
-        "path": [
-          {
-            "x": 290.0,
-            "y": 230.0
-          },
-          {
-            "x": 290.0,
-            "y": 70.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI0"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#13",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 220.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "WE"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#16",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "STKI0"
-        },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 60.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIinc12#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 325.0,
-            "y": 275.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#17",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#19",
-        "path": [
-          {
-            "x": 200.0,
-            "y": 130.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#20",
-        "path": [
-          {
-            "x": 220.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "name": "unnamedWire#23",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUInor12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#22",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 145.0,
-            "y": 15.0
-          },
-          {
-            "x": 145.0,
-            "y": 150.0
-          },
-          {
-            "x": 160.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#24",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "name": "unnamedWire#27",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_RLD"
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "_RLD"
-        },
-        "name": "unnamedWire#26",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CC"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#29",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "PASS"
-        },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 195.0
-          },
-          {
-            "x": 65.0,
-            "y": 160.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CCEN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "name": "unnamedWire#30",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#32",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 225.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#31",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 215.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "_FULL"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_FULL"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#33",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 220.0
-          },
-          {
-            "x": 35.0,
-            "y": 200.0
-          }
-        ]
-      }
-    ]
-  },
-  "symbolRendererSnippetID": "simpleRectangularLike",
-  "symbolRendererParams": {
-    "centerText": "Am2910",
-    "centerTextHeight": 5.0,
-    "horizontalComponentCenter": 17.5,
-    "pinLabelHeight": 3.5,
-    "pinLabelMargin": 0.5
-  },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
-  "highLevelStateHandlerParams": {
-    "subcomponentHighLevelStates": {},
-    "atomicHighLevelStates": {}
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ReserializeJSONsSettingUsages.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ReserializeJSONsSettingUsages.java
new file mode 100644 (file)
index 0000000..d5faf7e
--- /dev/null
@@ -0,0 +1,85 @@
+package net.mograsim.logic.model.examples;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Comparator;
+import java.util.Map.Entry;
+import java.util.Scanner;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.wires.GUIWire;
+import net.mograsim.logic.model.model.wires.MovablePin;
+import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
+import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent;
+import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
+import net.mograsim.logic.model.serializing.SubmodelComponentSerializer;
+
+public class ReserializeJSONsSettingUsages
+{
+       public static void main(String[] args) throws IOException
+       {
+               try (Scanner sysin = new Scanner(System.in))
+               {
+                       System.out.print("Directory to search for JSONs in / JSON file to reserialize >");
+                       Path root = Paths.get(sysin.nextLine());
+                       if (!Files.exists(root))
+                               throw new IllegalArgumentException("Path doesn't exist");
+                       if (Files.isRegularFile(root))
+                               reserializeJSON(root, sysin);
+                       else
+                       {
+                               System.out.print("Recursive? >");
+                               boolean recursive = Boolean.valueOf(sysin.nextLine());
+                               try (Stream<Path> jsons = recursive ? Files.walk(root) : Files.list(root))
+                               {
+                                       jsons.filter(Files::isRegularFile).filter(p -> p.getFileName().toString().endsWith(".json"))
+                                                       .forEach(j -> reserializeJSON(j, sysin));
+                               }
+                       }
+               }
+       }
+
+       public static void reserializeJSON(Path json, Scanner sysin)
+       {
+               try
+               {
+                       DeserializedSubmodelComponent comp = (DeserializedSubmodelComponent) IndirectGUIComponentCreator
+                                       .createComponent(new ViewModelModifiable(), "file:" + json.toString());
+                       System.out.println("Reserializing " + json);
+                       comp.getSupermodelPins().entrySet().stream().sorted(Comparator.comparing(Entry::getKey)).map(Entry::getValue).forEach(pin ->
+                       {
+                               System.out.print("  Usage for interface pin " + pin.name + " (empty: " + pin.usage + ") >");
+                               String usageStr = sysin.nextLine().toUpperCase();
+                               PinUsage usage = usageStr.equals("") ? pin.usage
+                                               : usageStr.equals("I") ? PinUsage.INPUT
+                                                               : usageStr.equals("O") ? PinUsage.OUTPUT
+                                                                               : usageStr.equals("T") ? PinUsage.TRISTATE : PinUsage.valueOf(usageStr);
+                               setInterfacePinUsage(comp, pin, usage);
+                       });
+                       SubmodelComponentSerializer.serialize(comp, json.toString());
+               }
+               catch (Exception e)
+               {
+                       System.err.println("An error occurred visiting " + json + ":");
+                       e.printStackTrace();
+               }
+       }
+
+       private static void setInterfacePinUsage(DeserializedSubmodelComponent comp, Pin interfacePin, PinUsage usage)
+       {
+               Set<GUIWire> wiresConnectedToPin = comp.submodel.getWiresByName().values().stream()
+                               .filter(w -> w.getPin1() == interfacePin || w.getPin2() == interfacePin).collect(Collectors.toSet());
+               wiresConnectedToPin.forEach(GUIWire::destroy);
+               comp.removeSubmodelInterface(interfacePin.name);
+               comp.addSubmodelInterface(
+                               new MovablePin(comp, interfacePin.name, interfacePin.logicWidth, usage, interfacePin.getRelX(), interfacePin.getRelY()));
+               ViewModelModifiable submodelModifiable = comp.getSubmodelModifiable();
+               wiresConnectedToPin.forEach(w -> new GUIWire(submodelModifiable, w.getPin1(), w.getPin2()));
+       }
+}
\ No newline at end of file
index 6f679a9..4dd03a9 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Q",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "_Q",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "_R",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,23 +35,15 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "_S",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 40.0,
-          "y": 12.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 10.0,
@@ -58,25 +52,46 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 64.0,
-          "y": 36.5
+          "x": 40.0,
+          "y": 12.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 34.0,
           "y": 16.5
         },
         "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 64.0,
+          "y": 36.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_Q"
+        },
+        "name": "_q",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#0",
@@ -108,14 +123,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_S"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Q"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "_q",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
@@ -141,37 +156,29 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_S"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 65.0,
-            "y": 42.5
-          },
-          {
-            "x": 5.0,
-            "y": 42.5
-          },
-          {
-            "x": 5.0,
             "y": 22.5
           }
         ]
@@ -190,36 +197,33 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 65.0,
+            "y": 42.5
+          },
+          {
+            "x": 5.0,
+            "y": 42.5
+          },
+          {
+            "x": 5.0,
             "y": 22.5
           }
         ]
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#2",
-        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "_rsLatch",
     "centerTextHeight": 5.0,
@@ -227,13 +231,13 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {
       "q": {
-        "id": "wireForcing",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.WireForcingAtomicHighLevelStateHandler",
         "params": {
           "wiresToForce": [
             "q"
@@ -244,5 +248,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index ef57797..beeec77 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,32 +26,33 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 50.0,
+          "x": 20.0,
           "y": 15.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 20.0,
+          "x": 50.0,
           "y": 15.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 44.0,
@@ -59,39 +61,40 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B"
+          "pinName": "A"
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#1"
+        "name": "unnamedWire#0"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A"
+          "pinName": "B"
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#0"
+        "name": "unnamedWire#1"
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#5"
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
@@ -100,13 +103,13 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 45.0,
-            "y": 30.0
+            "y": 20.0
           }
         ]
       },
@@ -117,31 +120,31 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 45.0,
-            "y": 20.0
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#2",
-        "path": []
+        "name": "unnamedWire#5"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIand",
     "centerTextHeight": 5.0,
@@ -149,5 +152,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 87b7394..acebe97 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 50.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "A2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,23 +26,26 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "A3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 35.0
       },
-      "name": "B",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 45.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "B",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +53,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -57,7 +62,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,7 +71,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -73,39 +80,13 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 24.0,
-          "y": 71.5
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 24.0,
-          "y": 46.5
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 24.0,
-          "y": 96.5
-        },
-        "params": 1
-      },
+    "components": [
       {
         "id": "GUIand",
         "name": "GUIand#0",
@@ -116,18 +97,18 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIand",
-        "name": "GUIand#2",
+        "name": "GUIand#1",
         "pos": {
           "x": 30.0,
-          "y": 57.5
+          "y": 32.5
         }
       },
       {
         "id": "GUIand",
-        "name": "GUIand#1",
+        "name": "GUIand#2",
         "pos": {
           "x": 30.0,
-          "y": 32.5
+          "y": 57.5
         }
       },
       {
@@ -137,31 +118,58 @@ mograsim version: 0.1.3
           "x": 30.0,
           "y": 82.5
         }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 46.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 24.0,
+          "y": 71.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 24.0,
+          "y": 96.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIand#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIand#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "GUIand#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
@@ -170,101 +178,89 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#1",
+          "compName": "GUIand#0",
           "pinName": "B"
         },
-        "name": "unnamedWire#9",
-        "path": []
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 22.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIand#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#2",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIand#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
+          "compName": "GUIand#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#1",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUIand#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A4"
         },
         "pin2": {
           "compName": "GUIand#3",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 22.5
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
@@ -284,55 +280,68 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIand#3",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIand#2",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIand41",
     "centerTextHeight": 5.0,
@@ -340,5 +349,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index bd61b9d..8e97325 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
@@ -6,74 +5,83 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 45.0
       },
-      "name": "B",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "C1",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 65.0
       },
-      "name": "C2",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 75.0
       },
-      "name": "C3",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 85.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "B",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "C4",
-      "logicWidth": 1
+      "name": "C1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "C2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 25.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "C3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 35.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "C4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -81,7 +89,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -89,7 +98,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -97,7 +107,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -105,20 +116,13 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "GUIor_4",
-        "name": "GUIor_4#0",
-        "pos": {
-          "x": 35.0,
-          "y": 37.5
-        }
-      },
+    "components": [
       {
         "id": "GUIand41",
         "name": "GUIand41#0",
@@ -126,206 +130,272 @@ mograsim version: 0.1.3
           "x": 15.0,
           "y": 137.5
         }
+      },
+      {
+        "id": "GUIor_4",
+        "name": "GUIor_4#0",
+        "pos": {
+          "x": 35.0,
+          "y": 37.5
+        }
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIor_4#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "GUIand41#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 80.0,
-            "y": 52.5
+            "x": 10.0,
+            "y": 112.5
           },
           {
-            "x": 80.0,
-            "y": 37.5
+            "x": 10.0,
+            "y": 142.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor_4#0",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUIand41#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 75.0,
-            "y": 42.5
+            "x": 5.0,
+            "y": 137.5
           },
           {
-            "x": 75.0,
-            "y": 12.5
+            "x": 5.0,
+            "y": 152.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor_4#0",
-          "pinName": "Y4"
+          "compName": "GUIand41#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIor_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 80.0,
-            "y": 72.5
+            "x": 65.0,
+            "y": 152.5
           },
           {
-            "x": 80.0,
-            "y": 87.5
+            "x": 65.0,
+            "y": 125.0
+          },
+          {
+            "x": 25.0,
+            "y": 125.0
+          },
+          {
+            "x": 25.0,
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor_4#0",
+          "compName": "GUIand41#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "GUIor_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#15",
-        "path": []
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 162.5
+          },
+          {
+            "x": 60.0,
+            "y": 130.0
+          },
+          {
+            "x": 20.0,
+            "y": 130.0
+          },
+          {
+            "x": 20.0,
+            "y": 102.5
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "GUIand41#0",
-          "pinName": "Y1"
+          "pinName": "Y4"
         },
         "pin2": {
           "compName": "GUIor_4#0",
-          "pinName": "B1"
+          "pinName": "B4"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 70.0,
-            "y": 142.5
+            "x": 55.0,
+            "y": 172.5
           },
           {
-            "x": 70.0,
-            "y": 120.0
+            "x": 55.0,
+            "y": 135.0
           },
           {
-            "x": 30.0,
-            "y": 120.0
+            "x": 15.0,
+            "y": 135.0
           },
           {
-            "x": 30.0,
-            "y": 82.5
+            "x": 15.0,
+            "y": 112.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C4"
+          "compName": "GUIor_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIor_4#0",
-          "pinName": "A4"
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 5.0,
-            "y": 87.5
+            "x": 75.0,
+            "y": 42.5
           },
           {
-            "x": 5.0,
-            "y": 72.5
+            "x": 75.0,
+            "y": 12.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C3"
+          "compName": "GUIor_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 80.0,
+            "y": 52.5
+          },
+          {
+            "x": 80.0,
+            "y": 37.5
+          }
+        ]
+      },
+      {
+        "pin1": {
           "compName": "GUIor_4#0",
-          "pinName": "A3"
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#7",
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C2"
+          "compName": "GUIor_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIor_4#0",
-          "pinName": "A2"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 5.0,
-            "y": 37.5
+            "x": 80.0,
+            "y": 72.5
           },
           {
-            "x": 5.0,
-            "y": 52.5
+            "x": 80.0,
+            "y": 87.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "A3"
         },
         "pin2": {
           "compName": "GUIand41#0",
-          "pinName": "A2"
+          "pinName": "A3"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#2",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 5.0,
-            "y": 137.5
+            "y": 187.5
           },
           {
             "x": 5.0,
-            "y": 152.5
+            "y": 172.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "B"
         },
         "pin2": {
           "compName": "GUIand41#0",
-          "pinName": "A1"
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 10.0,
-            "y": 112.5
+            "y": 212.5
           },
           {
             "x": 10.0,
-            "y": 142.5
+            "y": 182.5
           }
         ]
       },
@@ -352,148 +422,91 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "C2"
         },
         "pin2": {
           "compName": "GUIor_4#0",
-          "pinName": "B2"
+          "pinName": "A2"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 65.0,
-            "y": 152.5
-          },
-          {
-            "x": 65.0,
-            "y": 125.0
-          },
-          {
-            "x": 25.0,
-            "y": 125.0
+            "x": 5.0,
+            "y": 37.5
           },
           {
-            "x": 25.0,
-            "y": 92.5
+            "x": 5.0,
+            "y": 52.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B"
+          "pinName": "C3"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "B"
+          "compName": "GUIor_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#4",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 212.5
-          },
-          {
-            "x": 10.0,
-            "y": 182.5
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
+          "pinName": "C4"
         },
         "pin2": {
-          "compName": "GUIand41#0",
+          "compName": "GUIor_4#0",
           "pinName": "A4"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 5.0,
-            "y": 187.5
+            "y": 87.5
           },
           {
             "x": 5.0,
-            "y": 172.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compName": "GUIor_4#0",
-          "pinName": "B4"
-        },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 55.0,
-            "y": 172.5
-          },
-          {
-            "x": 55.0,
-            "y": 135.0
-          },
-          {
-            "x": 15.0,
-            "y": 135.0
-          },
-          {
-            "x": 15.0,
-            "y": 112.5
+            "y": 72.5
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#2",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUIand41#0",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
         "pin2": {
           "compName": "GUIor_4#0",
-          "pinName": "B3"
+          "pinName": "B1"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 60.0,
-            "y": 162.5
+            "x": 70.0,
+            "y": 142.5
           },
           {
-            "x": 60.0,
-            "y": 130.0
+            "x": 70.0,
+            "y": 120.0
           },
           {
-            "x": 20.0,
-            "y": 130.0
+            "x": 30.0,
+            "y": 120.0
           },
           {
-            "x": 20.0,
-            "y": 102.5
+            "x": 30.0,
+            "y": 82.5
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIandor414",
     "centerTextHeight": 5.0,
@@ -501,5 +514,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 3523e99..9b2ea44 100644 (file)
@@ -1,31 +1,33 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Y00",
-      "logicWidth": 1
+      "name": "S0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "Y11",
-      "logicWidth": 1
+      "name": "S1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 25.0
+        "y": 5.0
       },
-      "name": "Y10",
-      "logicWidth": 1
+      "name": "Y00",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -33,43 +35,46 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y01",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "S0",
-      "logicWidth": 1
+      "name": "Y10",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "S1",
-      "logicWidth": 1
+      "name": "Y11",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 10.0,
-          "y": 27.5
+          "y": 2.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 10.0,
-          "y": 2.5
+          "y": 27.5
         },
         "params": 1
       },
@@ -83,18 +88,18 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIand",
-        "name": "GUIand#2",
+        "name": "GUIand#1",
         "pos": {
           "x": 40.0,
-          "y": 52.5
+          "y": 27.5
         }
       },
       {
         "id": "GUIand",
-        "name": "GUIand#1",
+        "name": "GUIand#2",
         "pos": {
           "x": 40.0,
-          "y": 27.5
+          "y": 52.5
         }
       },
       {
@@ -106,7 +111,16 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 6.5,
+          "y": 11.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#1",
         "pos": {
           "x": 6.5,
@@ -115,16 +129,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 6.5,
-          "y": 11.5
+          "x": 36.5,
+          "y": 61.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#3",
         "pos": {
           "x": 4.0,
@@ -133,16 +147,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 36.5,
-          "y": 61.5
+          "x": 4.0,
+          "y": 41.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#5",
         "pos": {
           "x": 31.5,
@@ -151,48 +165,87 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 4.0,
-          "y": 41.5
+          "x": 31.5,
+          "y": 11.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#7",
         "pos": {
           "x": 34.0,
           "y": 36.5
         },
         "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
-        "pos": {
-          "x": 31.5,
-          "y": 11.5
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
         "pin2": {
-          "compName": "GUIand#1",
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 37.5,
-            "y": 32.5
+            "x": 32.5,
+            "y": 7.5
           }
         ]
       },
@@ -215,18 +268,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#2",
+          "compName": "GUIand#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 32.5,
-            "y": 57.5
+            "x": 37.5,
+            "y": 32.5
           }
         ]
       },
@@ -249,18 +302,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#3",
+          "compName": "GUIand#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 37.5,
-            "y": 82.5
+            "x": 32.5,
+            "y": 57.5
           }
         ]
       },
@@ -278,106 +331,98 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIand#3",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 32.5,
-            "y": 92.5
+            "x": 37.5,
+            "y": 82.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIand#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#19",
         "path": [
-          {
-            "x": 5.0,
-            "y": 67.5
-          },
           {
             "x": 32.5,
-            "y": 67.5
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#2",
         "path": [
           {
             "x": 7.5,
-            "y": 62.5
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y00"
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#20"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIand#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y01"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#21"
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "GUIand#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y10"
         },
-        "name": "unnamedWire#1",
-        "path": []
+        "name": "unnamedWire#22"
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S0"
+          "compName": "GUIand#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y11"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#23"
       },
       {
         "pin1": {
@@ -385,146 +430,107 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 32.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y01"
-        },
-        "name": "unnamedWire#21"
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y00"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#20"
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 32.5
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 32.5,
-            "y": 7.5
+            "x": 7.5,
+            "y": 62.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand#3",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y11"
-        },
-        "name": "unnamedWire#23"
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 7.5,
-            "y": 7.5
+            "x": 5.0,
+            "y": 67.5
+          },
+          {
+            "x": 32.5,
+            "y": 67.5
           }
         ]
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#11",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y10"
-        },
-        "name": "unnamedWire#22"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIdemux2",
     "centerTextHeight": 5.0,
@@ -532,5 +538,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 66af673..35eba16 100644 (file)
@@ -1,44 +1,56 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Q",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 15.0
       },
-      "name": "_Q",
-      "logicWidth": 1
+      "name": "D",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 15.0
       },
-      "name": "D",
-      "logicWidth": 1
+      "name": "_Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 120.0,
+          "y": 60.0
+        },
+        "params": 1
+      },
       {
         "id": "GUI_rsLatch",
         "name": "GUI_rsLatch#0",
@@ -47,6 +59,14 @@ mograsim version: 0.1.3
           "y": 10.0
         }
       },
+      {
+        "id": "GUI_rsLatch",
+        "name": "GUI_rsLatch#1",
+        "pos": {
+          "x": 120.0,
+          "y": 30.0
+        }
+      },
       {
         "id": "GUInand3",
         "name": "GUInand3#0",
@@ -56,24 +76,16 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 120.0,
-          "y": 60.0
+          "x": 9.0,
+          "y": 24.0
         },
         "params": 1
       },
       {
-        "id": "GUI_rsLatch",
-        "name": "GUI_rsLatch#1",
-        "pos": {
-          "x": 120.0,
-          "y": 30.0
-        }
-      },
-      {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#1",
         "pos": {
           "x": 19.0,
@@ -82,169 +94,139 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 9.0,
-          "y": 24.0
+          "x": 99.0,
+          "y": 34.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#3",
         "pos": {
           "x": 99.0,
           "y": 44.0
         },
         "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 99.0,
-          "y": 34.0
-        },
-        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUI_rsLatch#1",
-          "pinName": "_Q"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Q"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#14"
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUI_rsLatch#1",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_R"
         },
-        "name": "unnamedWire#13"
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUInand3#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUI_rsLatch#1",
-          "pinName": "_S"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUInand3#0",
-          "pinName": "A"
+          "compName": "GUI_rsLatch#1",
+          "pinName": "_R"
         },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 35.0
-          },
-          {
-            "x": 30.0,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_Q"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#12",
         "path": [
           {
             "x": 100.0,
-            "y": 25.0
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUI_rsLatch#1",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUInand3#0",
-          "pinName": "C"
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#13"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUI_rsLatch#1",
+          "pinName": "_Q"
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_R"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "pinName": "_Q"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_S"
+          "compName": "GUInand3#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 20.0,
-            "y": 15.0
+            "x": 10.0,
+            "y": 55.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUInand3#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "D"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -274,65 +256,87 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_S"
         },
-        "name": "unnamedWire#3",
-        "path": []
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 15.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUInand3#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 100.0,
-            "y": 65.0
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUInand3#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 10.0,
-            "y": 55.0
+            "x": 30.0,
+            "y": 35.0
+          },
+          {
+            "x": 30.0,
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUI_rsLatch#1",
-          "pinName": "_R"
+          "pinName": "_S"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIdff",
     "centerTextHeight": 5.0,
@@ -340,18 +344,19 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {
       "q": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUI_rsLatch#1",
           "subStateID": "q"
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index d03fafe..23edb9a 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
@@ -6,87 +5,113 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 5.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "WE",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 35.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 15.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 55.0,
+          "y": 70.0
+        }
+      },
+      {
+        "id": "GUIdff",
+        "name": "GUIdff#0",
+        "pos": {
+          "x": 115.0,
+          "y": 20.0
+        }
+      },
       {
         "id": "GUIdff",
         "name": "GUIdff#1",
@@ -97,23 +122,22 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIdff",
-        "name": "GUIdff#0",
+        "name": "GUIdff#2",
         "pos": {
           "x": 115.0,
-          "y": 20.0
+          "y": 120.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIdff",
+        "name": "GUIdff#3",
         "pos": {
-          "x": 104.0,
-          "y": 74.0
-        },
-        "params": 1
+          "x": 115.0,
+          "y": 170.0
+        }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 104.0,
@@ -122,16 +146,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 169.0,
-          "y": 24.0
+          "x": 104.0,
+          "y": 74.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 104.0,
@@ -140,16 +164,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 159.0,
-          "y": 124.0
+          "x": 169.0,
+          "y": 24.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 164.0,
@@ -158,51 +182,111 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 159.0,
+          "y": 124.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#6",
         "pos": {
           "x": 154.0,
           "y": 174.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 55.0,
-          "y": 70.0
-        }
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#3",
-        "pos": {
-          "x": 115.0,
-          "y": 170.0
-        }
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIdff#0",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 100.0,
+            "y": 75.0
+          },
+          {
+            "x": 100.0,
+            "y": 35.0
+          }
+        ]
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#2",
-        "pos": {
-          "x": 115.0,
-          "y": 120.0
-        }
-      }
-    ],
-    "innerWires": [
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 175.0
+          },
+          {
+            "x": 5.0,
+            "y": 135.0
+          }
+        ]
+      },
+      {
+        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q1"
+          "pinName": "D3"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_3"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 225.0
+          },
+          {
+            "x": 10.0,
+            "y": 145.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -218,14 +302,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
@@ -242,14 +326,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIdff#2",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIdff#1",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
@@ -273,6 +357,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "GUIdff#2",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#5",
@@ -287,14 +383,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "Q"
+          "compName": "GUIdff#1",
+          "pinName": "D"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -311,24 +407,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIdff#3",
-          "pinName": "D"
+          "pinName": "Q"
         },
-        "name": "unnamedWire#23",
-        "path": [
-          {
-            "x": 95.0,
-            "y": 105.0
-          },
-          {
-            "x": 95.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
@@ -353,26 +440,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
+          "compName": "GUIdff#3",
+          "pinName": "D"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 165.0,
-            "y": 200.0
-          },
-          {
-            "x": 45.0,
-            "y": 200.0
+            "x": 95.0,
+            "y": 105.0
           },
           {
-            "x": 45.0,
-            "y": 95.0
+            "x": 95.0,
+            "y": 185.0
           }
         ]
       },
@@ -403,15 +486,28 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#27",
-        "path": []
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 165.0,
+            "y": 200.0
+          },
+          {
+            "x": 45.0,
+            "y": 200.0
+          },
+          {
+            "x": 45.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -438,6 +534,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#6",
@@ -465,88 +573,26 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "WE"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#2",
+          "compName": "GUIdff#0",
           "pinName": "C"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compName": "GUIdff#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 100.0,
-            "y": 75.0
-          },
-          {
-            "x": 100.0,
-            "y": 35.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -563,97 +609,61 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#0",
+          "compName": "GUIdff#2",
           "pinName": "C"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_3"
+          "compName": "GUIdff#3",
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 10.0,
-            "y": 225.0
-          },
-          {
-            "x": 10.0,
-            "y": 145.0
+            "x": 105.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "WE"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
-        },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 175.0
-          },
-          {
-            "x": 5.0,
-            "y": 135.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "D"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "D flip flop\n4 bit",
     "centerTextHeight": 5.0,
@@ -661,27 +671,27 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {
       "q1": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#0",
           "subStateID": "q"
         }
       },
       "q2": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#1",
           "subStateID": "q"
         }
       },
       "q": {
-        "id": "bitVectorSplitting",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler",
         "params": {
           "vectorPartTargets": [
             "q1",
@@ -698,19 +708,20 @@ mograsim version: 0.1.3
         }
       },
       "q3": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#2",
           "subStateID": "q"
         }
       },
       "q4": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#3",
           "subStateID": "q"
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 3108cc5..89d09fb 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
@@ -6,87 +5,113 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 5.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "_WE",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 35.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 15.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "_WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 55.0,
+          "y": 70.0
+        }
+      },
+      {
+        "id": "GUIdff",
+        "name": "GUIdff#0",
+        "pos": {
+          "x": 115.0,
+          "y": 20.0
+        }
+      },
       {
         "id": "GUIdff",
         "name": "GUIdff#1",
@@ -97,23 +122,22 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIdff",
-        "name": "GUIdff#0",
+        "name": "GUIdff#2",
         "pos": {
           "x": 115.0,
-          "y": 20.0
+          "y": 120.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIdff",
+        "name": "GUIdff#3",
         "pos": {
-          "x": 104.0,
-          "y": 74.0
-        },
-        "params": 1
+          "x": 115.0,
+          "y": 170.0
+        }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 104.0,
@@ -122,16 +146,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 169.0,
-          "y": 24.0
+          "x": 104.0,
+          "y": 74.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 104.0,
@@ -140,16 +164,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 159.0,
-          "y": 124.0
+          "x": 169.0,
+          "y": 24.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 164.0,
@@ -158,51 +182,120 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 159.0,
+          "y": 124.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#6",
         "pos": {
           "x": 154.0,
           "y": 174.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 55.0,
-          "y": 70.0
-        }
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#3",
-        "pos": {
-          "x": 115.0,
-          "y": 170.0
-        }
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIdff#0",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 100.0,
+            "y": 75.0
+          },
+          {
+            "x": 100.0,
+            "y": 35.0
+          }
+        ]
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#2",
-        "pos": {
-          "x": 115.0,
-          "y": 120.0
-        }
-      }
-    ],
-    "innerWires": [
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 125.0
+          },
+          {
+            "x": 10.0,
+            "y": 85.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 175.0
+          },
+          {
+            "x": 15.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q1"
+          "pinName": "D3"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_3"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 225.0
+          },
+          {
+            "x": 20.0,
+            "y": 105.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -218,14 +311,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
@@ -242,14 +335,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIdff#2",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIdff#1",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
@@ -273,6 +366,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "GUIdff#2",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#5",
@@ -287,14 +392,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "Q"
+          "compName": "GUIdff#1",
+          "pinName": "D"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -311,24 +416,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIdff#3",
-          "pinName": "D"
+          "pinName": "Q"
         },
-        "name": "unnamedWire#23",
-        "path": [
-          {
-            "x": 95.0,
-            "y": 105.0
-          },
-          {
-            "x": 95.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
@@ -353,26 +449,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
+          "compName": "GUIdff#3",
+          "pinName": "D"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 165.0,
-            "y": 210.0
-          },
-          {
-            "x": 45.0,
-            "y": 210.0
+            "x": 95.0,
+            "y": 105.0
           },
           {
-            "x": 45.0,
-            "y": 135.0
+            "x": 95.0,
+            "y": 185.0
           }
         ]
       },
@@ -403,15 +495,28 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#27",
-        "path": []
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 165.0,
+            "y": 210.0
+          },
+          {
+            "x": 45.0,
+            "y": 210.0
+          },
+          {
+            "x": 45.0,
+            "y": 135.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -438,6 +543,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#6",
@@ -465,88 +582,26 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_WE"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#2",
+          "compName": "GUIdff#0",
           "pinName": "C"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compName": "GUIdff#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 100.0,
-            "y": 75.0
-          },
-          {
-            "x": 100.0,
-            "y": 35.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -563,106 +618,61 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 125.0
-          },
-          {
-            "x": 10.0,
-            "y": 85.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#0",
+          "compName": "GUIdff#2",
           "pinName": "C"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_3"
+          "compName": "GUIdff#3",
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 20.0,
-            "y": 225.0
-          },
-          {
-            "x": 20.0,
-            "y": 105.0
+            "x": 105.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "_WE"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
-        },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 175.0
-          },
-          {
-            "x": 15.0,
-            "y": 95.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "D"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "D flip flop\n4 bit",
     "centerTextHeight": 5.0,
@@ -670,27 +680,27 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {
       "q1": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#0",
           "subStateID": "q"
         }
       },
       "q2": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#1",
           "subStateID": "q"
         }
       },
       "q": {
-        "id": "bitVectorSplitting",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler",
         "params": {
           "vectorPartTargets": [
             "q1",
@@ -707,19 +717,20 @@ mograsim version: 0.1.3
         }
       },
       "q3": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#2",
           "subStateID": "q"
         }
       },
       "q4": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff#3",
           "subStateID": "q"
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 034ab79..9e01a2c 100644 (file)
@@ -1,46 +1,58 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Q",
-      "logicWidth": 1
+      "name": "D",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 15.0
       },
-      "name": "_Q",
-      "logicWidth": 1
+      "name": "E",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "D",
-      "logicWidth": 1
+      "name": "Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 15.0
       },
-      "name": "E",
-      "logicWidth": 1
+      "name": "_Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#1",
         "pos": {
           "x": 15.0,
@@ -57,113 +69,94 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 10.0,
-          "y": 2.5
+          "x": 4.0,
+          "y": 36.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#1",
         "pos": {
           "x": 34.0,
           "y": 11.5
         },
         "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 4.0,
-          "y": 36.5
-        },
-        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_Q"
+          "compName": "_submodelinterface",
+          "pinName": "D"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Q"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#0"
       },
       {
         "pin1": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "E"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_R"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 40.0,
-            "y": 37.5
-          },
-          {
-            "x": 40.0,
-            "y": 22.5
+            "x": 5.0,
+            "y": 17.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_S"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 42.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "E"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#4",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#0"
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#1",
@@ -191,53 +184,64 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "pin2": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_S"
+        },
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_R"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 5.0,
-            "y": 42.5
+            "x": 40.0,
+            "y": 37.5
+          },
+          {
+            "x": 40.0,
+            "y": 22.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUI_rsLatch#0",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 17.5
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_Q"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_Q"
+        },
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIdlatch",
     "centerTextHeight": 5.0,
@@ -245,18 +249,19 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {
       "q": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUI_rsLatch#0",
           "subStateID": "q"
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index d798d7f..7b72993 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 50.0,
@@ -6,105 +5,95 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 45.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 15.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 25.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 35.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 14.0,
-          "y": 71.5
-        },
-        "params": 1
-      },
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 14.0,
-          "y": 46.5
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUIdlatch",
+        "name": "GUIdlatch#0",
         "pos": {
-          "x": 14.0,
-          "y": 96.5
-        },
-        "params": 1
+          "x": 30.0,
+          "y": 7.5
+        }
       },
       {
         "id": "GUIdlatch",
@@ -116,10 +105,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIdlatch",
-        "name": "GUIdlatch#0",
+        "name": "GUIdlatch#2",
         "pos": {
           "x": 30.0,
-          "y": 7.5
+          "y": 57.5
         }
       },
       {
@@ -131,208 +120,228 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIdlatch",
-        "name": "GUIdlatch#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 30.0,
-          "y": 57.5
-        }
+          "x": 14.0,
+          "y": 46.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 14.0,
+          "y": 71.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 14.0,
+          "y": 96.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIdlatch#3",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q4"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 112.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch#2",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q3"
+          "compName": "GUIdlatch#3",
+          "pinName": "E"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D3"
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "GUIdlatch#2",
+          "compName": "GUIdlatch#3",
           "pinName": "D"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D2"
+          "compName": "GUIdlatch#0",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#1",
-          "pinName": "D"
+          "compName": "_submodelinterface",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
+          "compName": "GUIdlatch#1",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#0",
-          "pinName": "D"
+          "compName": "_submodelinterface",
+          "pinName": "Q2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdlatch#2",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#0",
-          "pinName": "E"
+          "compName": "_submodelinterface",
+          "pinName": "Q3"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 22.5
-          }
-        ]
+        "name": "unnamedWire#13",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIdlatch#3",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#3",
-          "pinName": "E"
+          "compName": "_submodelinterface",
+          "pinName": "Q4"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 112.5
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch#1",
+          "compName": "GUIdlatch#2",
           "pinName": "E"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch#3",
-          "pinName": "D"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdlatch#1",
+          "pinName": "E"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch#2",
+          "compName": "GUIdlatch#0",
           "pinName": "E"
         },
-        "name": "unnamedWire#3",
-        "path": []
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 22.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch#1",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q2"
+          "compName": "GUIdlatch#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIdlatch#1",
+          "pinName": "D"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch#0",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q1"
+          "compName": "GUIdlatch#2",
+          "pinName": "D"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIdlatch4",
     "centerTextHeight": 5.0,
@@ -340,27 +349,27 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {
       "q1": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch#0",
           "subStateID": "q"
         }
       },
       "q2": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch#1",
           "subStateID": "q"
         }
       },
       "q": {
-        "id": "bitVectorSplitting",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler",
         "params": {
           "vectorPartTargets": [
             "q1",
@@ -377,19 +386,20 @@ mograsim version: 0.1.3
         }
       },
       "q3": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch#2",
           "subStateID": "q"
         }
       },
       "q4": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch#3",
           "subStateID": "q"
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index d464701..c91f9be 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 30.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "C",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +35,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -41,14 +44,15 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Z",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 57.5,
@@ -73,46 +77,18 @@ mograsim version: 0.1.3
         }
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Z"
-        },
-        "name": "unnamedWire#7"
-      },
-      {
-        "pin1": {
-          "compName": "GUIhalfadder#1",
-          "pinName": "_Z"
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUIhalfadder#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 82.5,
-            "y": 22.5
-          },
-          {
-            "x": 82.5,
-            "y": 35.0
-          },
-          {
-            "x": 52.5,
-            "y": 35.0
-          },
-          {
-            "x": 52.5,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
@@ -128,26 +104,24 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A"
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "GUIhalfadder#1",
-          "pinName": "A"
+          "compName": "GUIhalfadder#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#2"
       },
       {
         "pin1": {
-          "compName": "GUIhalfadder#1",
+          "compName": "GUIhalfadder#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "GUIhalfadder#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#3"
       },
       {
         "pin1": {
@@ -163,29 +137,60 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIhalfadder#0",
+          "compName": "GUIhalfadder#1",
           "pinName": "Y"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUIhalfadder#1",
-          "pinName": "B"
+          "pinName": "_Z"
         },
-        "name": "unnamedWire#3"
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 82.5,
+            "y": 22.5
+          },
+          {
+            "x": 82.5,
+            "y": 35.0
+          },
+          {
+            "x": 52.5,
+            "y": 35.0
+          },
+          {
+            "x": 52.5,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIhalfadder#0",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Z"
         },
-        "name": "unnamedWire#2"
+        "name": "unnamedWire#7"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIfulladder",
     "centerTextHeight": 5.0,
@@ -193,5 +198,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index d0a0fa2..5475ded 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -33,14 +35,24 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "_Z",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#1",
         "pos": {
           "x": 40.0,
@@ -49,16 +61,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 10.0,
-          "y": 15.0
+          "x": 40.0,
+          "y": 27.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#3",
         "pos": {
           "x": 65.0,
@@ -67,34 +79,25 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 36.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
-        "pos": {
-          "x": 40.0,
-          "y": 27.5
+          "y": 11.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 36.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 34.0,
@@ -103,72 +106,88 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "_submodelinterface",
+          "pinName": "A"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 35.0,
-            "y": 32.5
+            "x": 5.0,
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 35.0,
-            "y": 17.5
+            "x": 62.5,
+            "y": 12.5
+          },
+          {
+            "x": 62.5,
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Z"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 80.0,
-            "y": 25.0
+            "x": 62.5,
+            "y": 37.5
           },
           {
-            "x": 80.0,
-            "y": 37.5
+            "x": 62.5,
+            "y": 17.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
@@ -177,27 +196,27 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#2",
         "path": [
           {
             "x": 5.0,
-            "y": 7.5
+            "y": 20.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A"
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -206,35 +225,14 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 5.0,
-            "y": 30.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 62.5,
-            "y": 12.5
-          },
-          {
-            "x": 62.5,
-            "y": 7.5
+            "y": 42.5
           }
         ]
       },
@@ -244,82 +242,88 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 5.0,
-            "y": 42.5
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y"
+          "pinName": "_Z"
         },
-        "name": "unnamedWire#12",
-        "path": []
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 80.0,
+            "y": 25.0
+          },
+          {
+            "x": 80.0,
+            "y": 37.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 5.0,
-            "y": 20.0
+            "x": 35.0,
+            "y": 17.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 62.5,
-            "y": 37.5
-          },
-          {
-            "x": 62.5,
-            "y": 17.5
+            "x": 35.0,
+            "y": 32.5
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIhalfadder",
     "centerTextHeight": 5.0,
@@ -327,5 +331,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index c0d53e5..978801d 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 30.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,30 +17,42 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "I1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Y",
-      "logicWidth": 1
+      "name": "S0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "S0",
-      "logicWidth": 1
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 7.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#1",
         "pos": {
           "x": 35.0,
@@ -49,16 +61,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 10.0,
-          "y": 7.5
+          "x": 35.0,
+          "y": 47.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#3",
         "pos": {
           "x": 60.0,
@@ -67,108 +79,94 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 21.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
-        "pos": {
-          "x": 35.0,
-          "y": 47.5
+          "y": 11.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 21.5
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#8"
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#10"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 52.5
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S0"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#4"
       },
       {
         "pin1": {
@@ -184,53 +182,59 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#10"
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 52.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#4"
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#3",
-        "path": []
+        "name": "unnamedWire#8"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
-        "path": []
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUImux1",
     "centerTextHeight": 5.0,
@@ -238,5 +242,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index c90cd3e..11216b0 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
@@ -9,23 +8,17 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I0_1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
-      },
-      "name": "Y1",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "Y2",
-      "logicWidth": 1
+      "name": "I0_2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,47 +26,44 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "I0_3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
-      },
-      "name": "I1_2",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 25.0
+        "y": 45.0
       },
-      "name": "Y3",
-      "logicWidth": 1
+      "name": "I0_4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 55.0
       },
-      "name": "I0_2",
-      "logicWidth": 1
+      "name": "I1_1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 65.0
       },
-      "name": "I1_1",
-      "logicWidth": 1
+      "name": "I1_2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "Y4",
-      "logicWidth": 1
+      "name": "I1_3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -81,7 +71,8 @@ mograsim version: 0.1.3
         "y": 85.0
       },
       "name": "I1_4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,99 +80,178 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 45.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "I0_4",
-      "logicWidth": 1
+      "name": "Y1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 75.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "I1_3",
-      "logicWidth": 1
+      "name": "Y2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "Y3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "Y4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
         "id": "GUImux1",
-        "name": "GUImux1#3",
+        "name": "GUImux1#0",
         "pos": {
           "x": 30.0,
-          "y": 112.5
+          "y": 7.5
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUImux1",
+        "name": "GUImux1#1",
         "pos": {
-          "x": 24.0,
-          "y": 46.5
-        },
-        "params": 1
+          "x": 30.0,
+          "y": 42.5
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUImux1",
+        "name": "GUImux1#2",
         "pos": {
-          "x": 24.0,
-          "y": 11.5
-        },
-        "params": 1
+          "x": 30.0,
+          "y": 77.5
+        }
       },
       {
         "id": "GUImux1",
-        "name": "GUImux1#0",
+        "name": "GUImux1#3",
         "pos": {
           "x": 30.0,
-          "y": 7.5
+          "y": 112.5
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 24.0,
-          "y": 81.5
+          "y": 11.5
         },
         "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "GUImux1#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 30.0,
-          "y": 77.5
-        }
+          "x": 24.0,
+          "y": 46.5
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "GUImux1#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 30.0,
-          "y": 42.5
-        }
+          "x": 24.0,
+          "y": 81.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUImux1#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUImux1#0",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUImux1#2",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#14"
+        "pin2": {
+          "compName": "GUImux1#2",
+          "pinName": "I0"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 87.5
+          },
+          {
+            "x": 5.0,
+            "y": 92.5
+          }
+        ]
       },
       {
         "pin1": {
@@ -206,24 +276,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0_4"
+          "compName": "GUImux1#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUImux1#3",
-          "pinName": "I0"
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 112.5
-          },
-          {
-            "x": 5.0,
-            "y": 127.5
-          }
-        ]
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
@@ -244,14 +304,24 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUImux1#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUImux1#3",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#18"
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 112.5
+          },
+          {
+            "x": 5.0,
+            "y": 127.5
+          }
+        ]
       },
       {
         "pin1": {
@@ -276,91 +346,67 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUImux1#1",
+          "compName": "GUImux1#3",
           "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#18"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I1_2"
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "GUImux1#1",
-          "pinName": "I1"
+          "compName": "GUImux1#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 15.0,
-            "y": 162.5
+            "x": 5.0,
+            "y": 37.5
           },
           {
-            "x": 15.0,
-            "y": 67.5
+            "x": 5.0,
+            "y": 22.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I0_2"
+          "pinName": "I1_1"
         },
         "pin2": {
-          "compName": "GUImux1#1",
-          "pinName": "I0"
+          "compName": "GUImux1#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 5.0,
-            "y": 62.5
+            "x": 10.0,
+            "y": 137.5
           },
           {
-            "x": 5.0,
-            "y": 57.5
+            "x": 10.0,
+            "y": 32.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUImux1#1",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "GUImux1#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S0"
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -381,102 +427,69 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUImux1#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUImux1#1",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I1_1"
-        },
-        "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I1"
-        },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 137.5
-          },
-          {
-            "x": 10.0,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0_3"
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUImux1#2",
+          "compName": "GUImux1#1",
           "pinName": "I0"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 5.0,
-            "y": 87.5
+            "y": 62.5
           },
           {
             "x": 5.0,
-            "y": 92.5
+            "y": 57.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I0_1"
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I0"
+          "compName": "GUImux1#1",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 5.0,
-            "y": 37.5
+            "x": 15.0,
+            "y": 162.5
           },
           {
-            "x": 5.0,
-            "y": 22.5
+            "x": 15.0,
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUImux1#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUImux1#2",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUImux1_4",
     "centerTextHeight": 5.0,
@@ -484,5 +497,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 2542ce0..a0b8dd3 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 70.0,
   "height": 70.0,
@@ -9,15 +8,17 @@ mograsim version: 0.1.3
         "y": 30.0
       },
       "name": "I00",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 60.0
+        "y": 40.0
       },
-      "name": "I11",
-      "logicWidth": 1
+      "name": "I01",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,23 +26,17 @@ mograsim version: 0.1.3
         "y": 50.0
       },
       "name": "I10",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 70.0,
-        "y": 10.0
-      },
-      "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 40.0
+        "y": 60.0
       },
-      "name": "I01",
-      "logicWidth": 1
+      "name": "I11",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +44,8 @@ mograsim version: 0.1.3
         "y": 10.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,14 +53,48 @@ mograsim version: 0.1.3
         "y": 20.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 70.0,
+        "y": 10.0
+      },
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUIsel1",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 60.0,
+          "y": 35.0
+        }
+      },
+      {
+        "id": "GUIsel1",
+        "name": "DeserializedSubmodelComponent#1",
+        "pos": {
+          "x": 60.0,
+          "y": 100.0
+        }
+      },
+      {
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 115.0,
+          "y": 20.0
+        }
+      },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 30.0,
@@ -73,7 +103,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 24.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#1",
         "pos": {
           "x": 24.0,
@@ -82,68 +121,88 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
           "x": 24.0,
-          "y": 24.0
+          "y": 49.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#3",
         "pos": {
           "x": 54.0,
           "y": 39.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 24.0,
-          "y": 49.0
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 20.0
+          }
+        ]
       },
       {
-        "id": "GUIsel1",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 60.0,
-          "y": 100.0
-        }
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUIsel1",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 60.0,
-          "y": 35.0
-        }
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": []
       },
-      {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#2",
-        "pos": {
-          "x": 115.0,
-          "y": 20.0
-        }
-      }
-    ],
-    "innerWires": [
       {
         "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S1"
+          "pinName": "S2"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
@@ -160,20 +219,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "S2"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 115.0
-          }
-        ]
+        "name": "unnamedWire#14",
+        "path": []
       },
       {
         "pin1": {
@@ -194,133 +248,92 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "S1"
+          "pinName": "S2"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 55.0,
-            "y": 105.0
+            "x": 25.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 15.0,
-            "y": 50.0
-          },
-          {
-            "x": 15.0,
-            "y": 10.0
-          },
-          {
-            "x": 85.0,
-            "y": 10.0
-          },
-          {
-            "x": 85.0,
-            "y": 25.0
+            "x": 55.0,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I00"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
+          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "I1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 105.0,
-            "y": 105.0
+            "x": 35.0,
+            "y": 75.0
           },
           {
-            "x": 105.0,
-            "y": 45.0
+            "x": 35.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I01"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 105.0,
-            "y": 40.0
+            "x": 40.0,
+            "y": 100.0
           },
           {
-            "x": 105.0,
-            "y": 35.0
+            "x": 40.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "pinName": "I10"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#4",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 20.0
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
@@ -344,97 +357,91 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I10"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I01"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 40.0,
-            "y": 100.0
+            "x": 105.0,
+            "y": 40.0
           },
           {
-            "x": 40.0,
-            "y": 70.0
+            "x": 105.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I00"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#2",
           "pinName": "I1"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 35.0,
-            "y": 75.0
+            "x": 105.0,
+            "y": 105.0
           },
           {
-            "x": 35.0,
-            "y": 60.0
+            "x": 105.0,
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 50.0
+          },
+          {
+            "x": 15.0,
+            "y": 10.0
+          },
+          {
+            "x": 85.0,
+            "y": 10.0
+          },
+          {
+            "x": 85.0,
+            "y": 25.0
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUImux2",
     "centerTextHeight": 5.0,
@@ -442,6 +449,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 042d9e1..e5d6932 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 62.0,
   "height": 90.0,
@@ -9,15 +8,17 @@ mograsim version: 0.1.3
         "y": 30.0
       },
       "name": "I00",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 60.0
+        "y": 40.0
       },
-      "name": "I11",
-      "logicWidth": 4
+      "name": "I01",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,23 +26,17 @@ mograsim version: 0.1.3
         "y": 50.0
       },
       "name": "I10",
-      "logicWidth": 4
-    },
-    {
-      "location": {
-        "x": 62.0,
-        "y": 16.0
-      },
-      "name": "Y",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 40.0
+        "y": 60.0
       },
-      "name": "I01",
-      "logicWidth": 4
+      "name": "I11",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +44,8 @@ mograsim version: 0.1.3
         "y": 10.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,32 +53,48 @@ mograsim version: 0.1.3
         "y": 20.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 62.0,
+        "y": 16.0
+      },
+      "name": "Y",
+      "logicWidth": 4,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
         "pos": {
-          "x": 19.0,
-          "y": 34.0
-        },
-        "params": 1
+          "x": 40.0,
+          "y": 30.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#1",
         "pos": {
-          "x": 25.0,
-          "y": 45.0
-        },
-        "params": 4
+          "x": 40.0,
+          "y": 125.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 100.0,
+          "y": 20.0
+        }
       },
       {
-        "id": "GUIMerger",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
         "name": "GUIMerger#0",
         "pos": {
           "x": 140.0,
@@ -91,98 +103,111 @@ mograsim version: 0.1.3
         "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#0",
         "pos": {
           "x": 25.0,
-          "y": 180.0
+          "y": 45.0
         },
         "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#1",
         "pos": {
           "x": 25.0,
-          "y": 140.0
+          "y": 85.0
         },
         "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#2",
         "pos": {
           "x": 25.0,
-          "y": 85.0
+          "y": 140.0
         },
         "params": 4
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 40.0,
-          "y": 125.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#3",
         "pos": {
-          "x": 40.0,
-          "y": 30.0
-        }
+          "x": 25.0,
+          "y": 180.0
+        },
+        "params": 4
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 100.0,
-          "y": 20.0
-        }
+          "x": 19.0,
+          "y": 34.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_1"
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#1",
           "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
+          "compName": "GUISplitter#2",
           "pinName": "O1"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 50.0
-          },
-          {
-            "x": 15.0,
-            "y": 20.0
-          },
-          {
-            "x": 60.0,
-            "y": 20.0
-          },
-          {
-            "x": 60.0,
-            "y": 25.0
-          }
-        ]
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_4"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_4"
+        },
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
+        },
+        "name": "unnamedWire#12",
+        "path": []
       },
       {
         "pin1": {
@@ -198,14 +223,26 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
+        },
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
+        },
+        "name": "unnamedWire#15",
         "path": []
       },
       {
@@ -227,14 +264,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
@@ -254,18 +291,6 @@ mograsim version: 0.1.3
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#17",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUISplitter#0",
@@ -290,23 +315,14 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUISplitter#2",
-          "pinName": "I"
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "I10"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#21",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 155.0
-          },
-          {
-            "x": 15.0,
-            "y": 125.0
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
@@ -322,15 +338,24 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_1"
+          "compName": "_submodelinterface",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 155.0
+          },
+          {
+            "x": 15.0,
+            "y": 125.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -356,13 +381,13 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_3"
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
@@ -379,24 +404,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#27",
-        "path": [
-          {
-            "x": 80.0,
-            "y": 75.0
-          },
-          {
-            "x": 80.0,
-            "y": 130.0
-          }
-        ]
+        "name": "unnamedWire#25",
+        "path": []
       },
       {
         "pin1": {
@@ -413,21 +429,21 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_3"
+          "pinName": "I1_1"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 90.0,
-            "y": 95.0
+            "x": 80.0,
+            "y": 75.0
           },
           {
-            "x": 90.0,
-            "y": 150.0
+            "x": 80.0,
+            "y": 130.0
           }
         ]
       },
@@ -454,74 +470,35 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#2",
           "pinName": "I1_3"
         },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O3"
-        },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_4"
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#29",
+        "path": [
+          {
+            "x": 90.0,
+            "y": 95.0
+          },
+          {
+            "x": 90.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_3"
-        },
-        "pin2": {
           "compName": "GUISplitter#3",
-          "pinName": "O2"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_2"
-        },
-        "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#2",
           "pinName": "O0"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_1"
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -547,26 +524,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_2"
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
@@ -583,103 +548,145 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "O3"
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIMerger#0",
-          "pinName": "O"
+          "pinName": "I2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_1"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "_submodelinterface",
+          "pinName": "S1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#36",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 50.0
+          },
+          {
+            "x": 15.0,
+            "y": 20.0
+          },
+          {
+            "x": 60.0,
+            "y": 20.0
+          },
+          {
+            "x": 60.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#1",
           "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
+          "compName": "GUISplitter#2",
           "pinName": "O3"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "GUISplitter#3",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y3"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_3"
+        },
+        "pin2": {
+          "compName": "GUISplitter#3",
           "pinName": "O2"
         },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
+        },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_3"
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "pinName": "O2"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_4"
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y2"
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUImux1_4",
     "centerTextHeight": 5.0,
@@ -687,6 +694,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 3f6a8bc..3058d7a 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 80.0,
   "height": 120.0,
@@ -9,23 +8,17 @@ mograsim version: 0.1.3
         "y": 40.0
       },
       "name": "I000",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 70.0
-      },
-      "name": "I011",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 100.0
+        "y": 50.0
       },
-      "name": "I110",
-      "logicWidth": 1
+      "name": "I001",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,15 +26,17 @@ mograsim version: 0.1.3
         "y": 60.0
       },
       "name": "I010",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 90.0
+        "y": 70.0
       },
-      "name": "I101",
-      "logicWidth": 1
+      "name": "I011",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,31 +44,35 @@ mograsim version: 0.1.3
         "y": 80.0
       },
       "name": "I100",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 110.0
+        "y": 90.0
       },
-      "name": "I111",
-      "logicWidth": 1
+      "name": "I101",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 80.0,
-        "y": 10.0
+        "x": 0.0,
+        "y": 100.0
       },
-      "name": "Y",
-      "logicWidth": 1
+      "name": "I110",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 50.0
+        "y": 110.0
       },
-      "name": "I001",
-      "logicWidth": 1
+      "name": "I111",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -81,7 +80,8 @@ mograsim version: 0.1.3
         "y": 10.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,7 +89,8 @@ mograsim version: 0.1.3
         "y": 20.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -97,30 +98,22 @@ mograsim version: 0.1.3
         "y": 30.0
       },
       "name": "S2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 80.0,
+        "y": 10.0
+      },
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 24.0,
-          "y": 94.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 19.0,
-          "y": 104.0
-        },
-        "params": 1
-      },
+    "components": [
       {
         "id": "GUImux2",
         "name": "DeserializedSubmodelComponent#0",
@@ -129,6 +122,14 @@ mograsim version: 0.1.3
           "y": 185.0
         }
       },
+      {
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 125.0,
+          "y": 20.0
+        }
+      },
       {
         "id": "GUImux2",
         "name": "DeserializedSubmodelComponent#3",
@@ -138,36 +139,113 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 125.0,
-          "y": 20.0
-        }
+          "x": 19.0,
+          "y": 104.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 24.0,
+          "y": 94.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I111"
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 50.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#3",
           "pinName": "I11"
         },
-        "name": "unnamedWire#14",
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "I011"
+        },
+        "name": "unnamedWire#10",
         "path": [
           {
             "x": 15.0,
-            "y": 275.0
+            "y": 145.0
           },
           {
             "x": 15.0,
-            "y": 245.0
+            "y": 175.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I00"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "I100"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 215.0
+          },
+          {
+            "x": 10.0,
+            "y": 200.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I101"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I01"
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#0",
@@ -191,22 +269,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I111"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 110.0,
-            "y": 95.0
+            "x": 15.0,
+            "y": 275.0
           },
           {
-            "x": 110.0,
-            "y": 35.0
+            "x": 15.0,
+            "y": 245.0
           }
         ]
       },
@@ -233,89 +311,56 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "S2"
-        },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 70.0,
-            "y": 25.0
-          },
-          {
-            "x": 70.0,
-            "y": 75.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I010"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I10"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 10.0,
-            "y": 150.0
+            "x": 110.0,
+            "y": 95.0
           },
           {
-            "x": 10.0,
-            "y": 135.0
+            "x": 110.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I01"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "I001"
-        },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I000"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I00"
+          "pinName": "S2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 10.0,
-            "y": 100.0
+            "x": 70.0,
+            "y": 25.0
           },
           {
-            "x": 10.0,
-            "y": 115.0
+            "x": 70.0,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -324,31 +369,26 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
+          "compName": "DeserializedSubmodelComponent#3",
           "pinName": "S1"
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 50.0
-          }
-        ]
+        "name": "unnamedWire#3",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
+          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "S0"
         },
         "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 25.0,
-            "y": 25.0
+            "y": 195.0
           }
         ]
       },
@@ -371,102 +411,74 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I11"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "I011"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 145.0
-          },
-          {
-            "x": 15.0,
-            "y": 175.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "I000"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 25.0,
-            "y": 195.0
+            "x": 10.0,
+            "y": 100.0
+          },
+          {
+            "x": 10.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "S1"
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I101"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "I01"
         },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "I001"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I00"
+          "compName": "_submodelinterface",
+          "pinName": "I010"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "I100"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
             "x": 10.0,
-            "y": 215.0
+            "y": 150.0
           },
           {
             "x": 10.0,
-            "y": 200.0
+            "y": 135.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUImux3",
     "centerTextHeight": 5.0,
@@ -474,6 +486,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index e57eefe..d88e3e8 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 30.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "C",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,32 +35,33 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 35.0,
+          "x": 10.0,
           "y": 15.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 10.0,
+          "x": 35.0,
           "y": 15.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#2",
         "pos": {
           "x": 62.5,
@@ -67,7 +70,7 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 31.5,
@@ -76,39 +79,17 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 60.0,
-            "y": 62.5
-          },
-          {
-            "x": 60.0,
-            "y": 17.5
-          }
-        ]
+        "name": "unnamedWire#0"
       },
       {
         "pin1": {
@@ -123,33 +104,30 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#0"
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 57.5,
-            "y": 25.0
-          },
-          {
-            "x": 57.5,
-            "y": 7.5
+            "x": 32.5,
+            "y": 20.0
           }
         ]
       },
@@ -172,36 +150,62 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 32.5,
-            "y": 20.0
+            "x": 57.5,
+            "y": 25.0
+          },
+          {
+            "x": 57.5,
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 62.5
+          },
+          {
+            "x": 60.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUInand3",
     "centerTextHeight": 5.0,
@@ -209,5 +213,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index a7e95a3..536a38d 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "A2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "A3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +35,8 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "A4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,7 +44,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -49,7 +53,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -57,7 +62,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,23 +71,15 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 30.0,
-          "y": 27.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 30.0,
@@ -90,34 +88,34 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 30.0,
-          "y": 77.5
+          "y": 27.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 14.0,
-          "y": 36.5
+          "x": 30.0,
+          "y": 52.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
           "x": 30.0,
-          "y": 52.5
+          "y": 77.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 14.0,
@@ -126,260 +124,270 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 14.0,
-          "y": 86.5
+          "y": 36.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 14.0,
           "y": 61.5
         },
         "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 14.0,
+          "y": 86.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y3"
-        },
-        "name": "unnamedWire#14",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#10",
         "path": [
           {
             "x": 15.0,
-            "y": 42.5
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#11",
         "path": [
           {
             "x": 15.0,
-            "y": 17.5
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#7",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 82.5
-          }
-        ]
+        "name": "unnamedWire#12",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUINandGate#2",
-          "pinName": "A"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 57.5
-          }
-        ]
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#15",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 15.0,
-            "y": 32.5
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 15.0,
-            "y": 67.5
+            "y": 32.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": [
           {
             "x": 15.0,
-            "y": 7.5
+            "y": 57.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#12",
-        "path": []
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 82.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
-        "path": []
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 17.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
             "x": 15.0,
-            "y": 92.5
+            "y": 42.5
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUInot4",
     "centerTextHeight": 5.0,
@@ -387,5 +395,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 5b09418..59ce75b 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "A2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "A3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +35,8 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "A4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,14 +44,24 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 20.0,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#1",
         "pos": {
           "x": 20.0,
@@ -57,16 +70,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
           "x": 20.0,
-          "y": 15.0
+          "y": 115.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#3",
         "pos": {
           "x": 20.0,
@@ -75,25 +88,52 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 20.0,
-          "y": 115.0
+          "x": 50.0,
+          "y": 40.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 14.0,
-          "y": 74.0
+          "x": 50.0,
+          "y": 140.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#6",
+        "pos": {
+          "x": 110.0,
+          "y": 40.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#7",
+        "pos": {
+          "x": 110.0,
+          "y": 140.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#8",
+        "pos": {
+          "x": 140.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 14.0,
@@ -102,16 +142,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 14.0,
-          "y": 174.0
+          "y": 74.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 14.0,
@@ -120,16 +160,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 104.0,
-          "y": 149.0
+          "x": 14.0,
+          "y": 174.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 104.0,
@@ -138,62 +178,84 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 140.0,
-          "y": 90.0
+          "x": 104.0,
+          "y": 149.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
-        "pos": {
-          "x": 50.0,
-          "y": 140.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 50.0,
-          "y": 40.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
-        "pos": {
-          "x": 110.0,
-          "y": 140.0
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "params": 1
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 130.0
+          }
+        ]
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
-        "pos": {
-          "x": 110.0,
-          "y": 40.0
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 180.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#14"
+        "name": "unnamedWire#12"
       },
       {
         "pin1": {
@@ -208,15 +270,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "A"
         },
-        "name": "unnamedWire#16",
-        "path": []
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
@@ -231,20 +292,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#16",
+        "path": []
       },
       {
         "pin1": {
@@ -265,33 +321,45 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#6",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 105.0,
-            "y": 55.0
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#19",
         "path": [
           {
             "x": 105.0,
-            "y": 155.0
+            "y": 55.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#5",
@@ -311,14 +379,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#23"
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 155.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -331,6 +405,17 @@ mograsim version: 0.1.3
         },
         "name": "unnamedWire#22"
       },
+      {
+        "pin1": {
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#23"
+      },
       {
         "pin1": {
           "compName": "GUINandGate#8",
@@ -344,20 +429,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 80.0
-          }
-        ]
+        "name": "unnamedWire#3",
+        "path": []
       },
       {
         "pin1": {
@@ -366,30 +446,30 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 15.0,
-            "y": 30.0
+            "y": 20.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 15.0,
-            "y": 170.0
+            "y": 70.0
           }
         ]
       },
@@ -412,59 +492,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#5",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 70.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 15.0,
-            "y": 130.0
+            "y": 170.0
           }
         ]
       },
@@ -475,71 +514,37 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 15.0,
-            "y": 20.0
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#12"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#2",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
             "x": 15.0,
-            "y": 180.0
+            "y": 80.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIor4",
     "centerTextHeight": 5.0,
@@ -547,5 +552,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index ed484c9..6701045 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 80.0,
@@ -9,55 +8,71 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 25.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 35.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 45.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 55.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 65.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -65,7 +80,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -73,7 +89,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -81,7 +98,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -89,31 +107,15 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 45.0
-      },
-      "name": "B1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 15.0,
-          "y": 27.5
-        },
-        "params": 1
-      },
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 15.0,
@@ -122,25 +124,25 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 15.0,
-          "y": 77.5
+          "y": 27.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 15.0,
+          "x": 65.0,
           "y": 52.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#11",
         "pos": {
           "x": 65.0,
@@ -149,70 +151,70 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 65.0,
+          "x": 15.0,
           "y": 52.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 6.5,
-          "y": 36.5
+          "x": 15.0,
+          "y": 77.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 6.5,
-          "y": 11.5
+          "x": 15.0,
+          "y": 102.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 6.5,
-          "y": 86.5
+          "x": 15.0,
+          "y": 127.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 6.5,
-          "y": 61.5
+          "x": 15.0,
+          "y": 152.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 6.5,
-          "y": 136.5
+          "x": 15.0,
+          "y": 177.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 6.5,
-          "y": 111.5
+          "x": 65.0,
+          "y": 2.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#9",
         "pos": {
           "x": 65.0,
@@ -221,84 +223,134 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 6.5,
-          "y": 186.5
+          "y": 11.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 65.0,
-          "y": 2.5
+          "x": 6.5,
+          "y": 36.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
           "x": 6.5,
-          "y": 161.5
+          "y": 61.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 15.0,
-          "y": 127.5
+          "x": 6.5,
+          "y": 86.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 15.0,
-          "y": 102.5
+          "x": 6.5,
+          "y": 111.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 15.0,
-          "y": 177.5
+          "x": 6.5,
+          "y": 136.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 15.0,
-          "y": 152.5
+          "x": 6.5,
+          "y": 161.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 6.5,
+          "y": 186.5
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#10",
         "path": [
           {
             "x": 7.5,
-            "y": 82.5
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 42.5
           }
         ]
       },
@@ -309,42 +361,47 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#2",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#12",
         "path": [
           {
             "x": 7.5,
-            "y": 67.5
+            "y": 57.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#35",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 67.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
             "x": 7.5,
-            "y": 107.5
+            "y": 82.5
           }
         ]
       },
@@ -367,18 +424,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": [
           {
             "x": 7.5,
-            "y": 132.5
+            "y": 107.5
           }
         ]
       },
@@ -406,33 +463,45 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#5",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 7.5,
-            "y": 142.5
+            "y": 132.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#19",
         "path": [
           {
             "x": 7.5,
-            "y": 167.5
+            "y": 142.5
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#6",
@@ -452,18 +521,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": [
           {
             "x": 7.5,
-            "y": 192.5
+            "y": 167.5
           }
         ]
       },
@@ -486,22 +555,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 45.0,
-            "y": 112.5
-          },
-          {
-            "x": 45.0,
-            "y": 17.5
+            "x": 7.5,
+            "y": 192.5
           }
         ]
       },
@@ -528,22 +593,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 50.0,
-            "y": 137.5
+            "x": 45.0,
+            "y": 112.5
           },
           {
-            "x": 50.0,
-            "y": 42.5
+            "x": 45.0,
+            "y": 17.5
           }
         ]
       },
@@ -570,22 +635,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 55.0,
-            "y": 162.5
+            "x": 50.0,
+            "y": 137.5
           },
           {
-            "x": 55.0,
-            "y": 67.5
+            "x": 50.0,
+            "y": 42.5
           }
         ]
       },
@@ -612,84 +677,35 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#10",
           "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 7.5,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#8",
-        "path": [
+            "x": 55.0,
+            "y": 162.5
+          },
           {
-            "x": 7.5,
-            "y": 7.5
+            "x": 55.0,
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -715,30 +731,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "GUINandGate#11",
+          "pinName": "B"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 7.5,
-            "y": 32.5
+            "x": 60.0,
+            "y": 187.5
+          },
+          {
+            "x": 60.0,
+            "y": 92.5
           }
         ]
       },
@@ -756,122 +764,126 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#10",
           "pinName": "Y"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUINandGate#11",
-          "pinName": "B"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#31",
-        "path": [
-          {
-            "x": 60.0,
-            "y": 187.5
-          },
-          {
-            "x": 60.0,
-            "y": 92.5
-          }
-        ]
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#35",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 7.5,
-            "y": 57.5
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A3"
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 7.5,
-            "y": 42.5
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#33",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 17.5
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIor_4",
     "centerTextHeight": 5.0,
@@ -879,5 +891,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index ea3eff9..a5637f1 100644 (file)
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "QA1",
-      "logicWidth": 1
+      "name": "A0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "QB2",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "QB1",
-      "logicWidth": 1
+      "name": "B0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "QA3",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 75.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "QB4",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 65.0
       },
-      "name": "QA2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 65.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "QB3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 85.0
       },
-      "name": "QA4",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 55.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "QA1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "B0",
-      "logicWidth": 1
+      "name": "QA2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 45.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "WE",
-      "logicWidth": 1
+      "name": "QA3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 65.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "QA4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "A0",
-      "logicWidth": 1
+      "name": "QB1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 35.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "QB2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 75.0
+        "x": 35.0,
+        "y": 65.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "QB3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 75.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "QB4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 45.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUIand41",
+        "name": "GUIand41#0",
         "pos": {
-          "x": 44.0,
-          "y": 649.0
-        },
-        "params": 1
+          "x": 130.0,
+          "y": 150.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUIand41",
+        "name": "GUIand41#1",
         "pos": {
-          "x": 39.0,
-          "y": 639.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 375.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "GUIand41",
+        "name": "GUIand41#2",
         "pos": {
-          "x": 129.0,
-          "y": 329.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 325.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUIandor414",
+        "name": "GUIandor414#0",
         "pos": {
-          "x": 49.0,
-          "y": 659.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 485.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUIandor414",
+        "name": "GUIandor414#1",
         "pos": {
-          "x": 119.0,
-          "y": 349.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 635.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "GUIandor414",
+        "name": "GUIandor414#2",
         "pos": {
-          "x": 124.0,
-          "y": 339.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 785.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "id": "GUIandor414",
+        "name": "GUIandor414#3",
         "pos": {
-          "x": 114.0,
-          "y": 359.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 435.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIandor414",
+        "name": "GUIandor414#4",
         "pos": {
-          "x": 104.0,
-          "y": 164.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 585.0
+        }
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#5",
+        "pos": {
+          "x": 135.0,
+          "y": 735.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#0",
+        "pos": {
+          "x": 55.0,
+          "y": 45.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#1",
+        "pos": {
+          "x": 55.0,
+          "y": 150.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#0",
+        "pos": {
+          "x": 55.0,
+          "y": 325.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#1",
+        "pos": {
+          "x": 55.0,
+          "y": 475.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#2",
+        "pos": {
+          "x": 55.0,
+          "y": 625.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#3",
+        "pos": {
+          "x": 55.0,
+          "y": 775.0
+        }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 109.0,
@@ -225,228 +289,160 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 94.0,
-          "y": 184.0
+          "x": 104.0,
+          "y": 164.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 99.0,
-          "y": 174.0
+          "x": 44.0,
+          "y": 499.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 39.0,
-          "y": 649.0
+          "x": 49.0,
+          "y": 509.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
           "x": 34.0,
-          "y": 549.0
+          "y": 629.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 49.0,
-          "y": 809.0
+          "x": 39.0,
+          "y": 639.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
           "x": 44.0,
-          "y": 749.0
+          "y": 649.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 39.0,
-          "y": 489.0
+          "x": 49.0,
+          "y": 659.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 34.0,
-          "y": 479.0
+          "x": 129.0,
+          "y": 329.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 44.0,
-          "y": 499.0
+          "x": 124.0,
+          "y": 339.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 34.0,
-          "y": 629.0
+          "x": 119.0,
+          "y": 349.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 49.0,
-          "y": 509.0
+          "x": 114.0,
+          "y": 359.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#5",
-        "pos": {
-          "x": 135.0,
-          "y": 735.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#3",
-        "pos": {
-          "x": 135.0,
-          "y": 435.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#4",
-        "pos": {
-          "x": 135.0,
-          "y": 585.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#1",
-        "pos": {
-          "x": 235.0,
-          "y": 635.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#2",
-        "pos": {
-          "x": 235.0,
-          "y": 785.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#0",
-        "pos": {
-          "x": 235.0,
-          "y": 485.0
-        }
-      },
-      {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#1",
-        "pos": {
-          "x": 55.0,
-          "y": 475.0
-        }
-      },
-      {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#0",
-        "pos": {
-          "x": 55.0,
-          "y": 325.0
-        }
-      },
-      {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 55.0,
-          "y": 775.0
-        }
+          "x": 99.0,
+          "y": 174.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 55.0,
-          "y": 625.0
-        }
+          "x": 129.0,
+          "y": 479.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 135.0,
-          "y": 325.0
-        }
+          "x": 124.0,
+          "y": 489.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#30",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "pos": {
           "x": 119.0,
-          "y": 799.0
+          "y": 499.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#31",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#23",
         "pos": {
           "x": 114.0,
-          "y": 809.0
+          "y": 509.0
         },
         "params": 1
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#0",
-        "pos": {
-          "x": 130.0,
-          "y": 150.0
-        }
-      },
-      {
-        "id": "GUIand41",
-        "name": "GUIand41#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 235.0,
-          "y": 375.0
-        }
+          "x": 129.0,
+          "y": 629.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#25",
         "pos": {
           "x": 124.0,
@@ -455,16 +451,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 129.0,
-          "y": 629.0
+          "x": 119.0,
+          "y": 649.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#27",
         "pos": {
           "x": 114.0,
@@ -473,16 +469,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#28",
         "pos": {
-          "x": 119.0,
-          "y": 649.0
+          "x": 129.0,
+          "y": 779.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#29",
         "pos": {
           "x": 124.0,
@@ -491,877 +487,1110 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#28",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 129.0,
-          "y": 779.0
+          "x": 94.0,
+          "y": 184.0
         },
         "params": 1
       },
       {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#30",
         "pos": {
-          "x": 55.0,
-          "y": 150.0
-        }
+          "x": 119.0,
+          "y": 799.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#31",
         "pos": {
-          "x": 55.0,
-          "y": 45.0
-        }
+          "x": 114.0,
+          "y": 809.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 124.0,
-          "y": 489.0
+          "x": 34.0,
+          "y": 549.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 129.0,
-          "y": 479.0
+          "x": 39.0,
+          "y": 649.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 114.0,
-          "y": 509.0
+          "x": 44.0,
+          "y": 749.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 119.0,
-          "y": 499.0
+          "x": 49.0,
+          "y": 809.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
+        "pos": {
+          "x": 34.0,
+          "y": 479.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
+        "pos": {
+          "x": 39.0,
+          "y": 489.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A0"
         },
         "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D3"
+          "compName": "GUIdemux2#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D2"
+          "compName": "GUIdemux2#0",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#35",
-        "path": []
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 150.0
+          },
+          {
+            "x": 10.0,
+            "y": 60.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIand41#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D4"
+          "compName": "GUIandor414#5",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#100",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIand41#1",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#39",
-        "path": []
+        "name": "unnamedWire#101",
+        "path": [
+          {
+            "x": 290.0,
+            "y": 380.0
+          },
+          {
+            "x": 290.0,
+            "y": 445.0
+          },
+          {
+            "x": 230.0,
+            "y": 445.0
+          },
+          {
+            "x": 230.0,
+            "y": 490.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIand41#1",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
+          "compName": "GUIandor414#0",
           "pinName": "C2"
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#102",
         "path": [
           {
             "x": 285.0,
-            "y": 650.0
+            "y": 390.0
           },
           {
             "x": 285.0,
-            "y": 740.0
+            "y": 440.0
           },
           {
             "x": 225.0,
-            "y": 740.0
+            "y": 440.0
           },
           {
             "x": 225.0,
-            "y": 800.0
+            "y": 500.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIand41#1",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
+          "compName": "GUIandor414#0",
           "pinName": "C3"
         },
-        "name": "unnamedWire#111",
+        "name": "unnamedWire#103",
         "path": [
           {
             "x": 280.0,
-            "y": 660.0
+            "y": 400.0
           },
           {
             "x": 280.0,
-            "y": 735.0
+            "y": 435.0
           },
           {
             "x": 220.0,
-            "y": 735.0
+            "y": 435.0
           },
           {
             "x": 220.0,
-            "y": 810.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA2"
-        },
-        "name": "unnamedWire#114",
-        "path": [
-          {
-            "x": 305.0,
-            "y": 800.0
-          },
-          {
-            "x": 305.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA3"
-        },
-        "name": "unnamedWire#115",
-        "path": [
-          {
-            "x": 310.0,
-            "y": 810.0
-          },
-          {
-            "x": 310.0,
-            "y": 250.0
+            "y": 510.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIand41#1",
           "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
+          "compName": "GUIandor414#0",
           "pinName": "C4"
         },
-        "name": "unnamedWire#112",
+        "name": "unnamedWire#104",
         "path": [
           {
             "x": 275.0,
-            "y": 670.0
+            "y": 410.0
           },
           {
             "x": 275.0,
-            "y": 730.0
+            "y": 430.0
           },
           {
             "x": 215.0,
-            "y": 730.0
+            "y": 430.0
           },
           {
             "x": 215.0,
-            "y": 820.0
+            "y": 520.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
+          "compName": "GUIandor414#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA1"
+          "compName": "GUIandor414#1",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#113",
+        "name": "unnamedWire#105",
         "path": [
           {
-            "x": 300.0,
-            "y": 790.0
+            "x": 290.0,
+            "y": 490.0
           },
           {
-            "x": 300.0,
-            "y": 50.0
+            "x": 290.0,
+            "y": 595.0
+          },
+          {
+            "x": 230.0,
+            "y": 595.0
+          },
+          {
+            "x": 230.0,
+            "y": 640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
+          "compName": "GUIandor414#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
+          "compName": "GUIandor414#1",
           "pinName": "C2"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#106",
         "path": [
           {
-            "x": 185.0,
-            "y": 340.0
+            "x": 285.0,
+            "y": 500.0
           },
           {
-            "x": 185.0,
-            "y": 425.0
+            "x": 285.0,
+            "y": 590.0
           },
           {
-            "x": 125.0,
-            "y": 425.0
+            "x": 225.0,
+            "y": 590.0
           },
           {
-            "x": 125.0,
-            "y": 450.0
+            "x": 225.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
+          "compName": "GUIandor414#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
+          "compName": "GUIandor414#1",
           "pinName": "C3"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#107",
         "path": [
           {
-            "x": 180.0,
-            "y": 350.0
+            "x": 280.0,
+            "y": 510.0
           },
           {
-            "x": 180.0,
-            "y": 420.0
+            "x": 280.0,
+            "y": 585.0
           },
           {
-            "x": 120.0,
-            "y": 420.0
+            "x": 220.0,
+            "y": 585.0
           },
           {
-            "x": 120.0,
-            "y": 460.0
+            "x": 220.0,
+            "y": 660.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D1"
+          "compName": "GUIandor414#1",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#108",
         "path": [
           {
-            "x": 35.0,
-            "y": 780.0
+            "x": 275.0,
+            "y": 520.0
+          },
+          {
+            "x": 275.0,
+            "y": 580.0
+          },
+          {
+            "x": 215.0,
+            "y": 580.0
+          },
+          {
+            "x": 215.0,
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y4"
+          "compName": "GUIandor414#1",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA4"
+          "compName": "GUIandor414#2",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#116",
+        "name": "unnamedWire#109",
         "path": [
           {
-            "x": 315.0,
-            "y": 820.0
+            "x": 290.0,
+            "y": 640.0
           },
           {
-            "x": 315.0,
-            "y": 350.0
-          }
-        ]
-      },
-      {
+            "x": 290.0,
+            "y": 745.0
+          },
+          {
+            "x": 230.0,
+            "y": 745.0
+          },
+          {
+            "x": 230.0,
+            "y": 790.0
+          }
+        ]
+      },
+      {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIand41#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y1"
+          "compName": "GUIandor414#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C1"
+          "compName": "GUIandor414#2",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#110",
         "path": [
           {
-            "x": 190.0,
-            "y": 330.0
+            "x": 285.0,
+            "y": 650.0
           },
           {
-            "x": 190.0,
-            "y": 430.0
+            "x": 285.0,
+            "y": 740.0
           },
           {
-            "x": 130.0,
-            "y": 430.0
+            "x": 225.0,
+            "y": 740.0
           },
           {
-            "x": 130.0,
-            "y": 440.0
+            "x": 225.0,
+            "y": 800.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D3"
+          "compName": "GUIandor414#2",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#111",
         "path": [
           {
-            "x": 45.0,
-            "y": 800.0
+            "x": 280.0,
+            "y": 660.0
+          },
+          {
+            "x": 280.0,
+            "y": 735.0
+          },
+          {
+            "x": 220.0,
+            "y": 735.0
+          },
+          {
+            "x": 220.0,
+            "y": 810.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D2"
+          "compName": "GUIandor414#2",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#112",
         "path": [
           {
-            "x": 40.0,
+            "x": 275.0,
+            "y": 670.0
+          },
+          {
+            "x": 275.0,
+            "y": 730.0
+          },
+          {
+            "x": 215.0,
+            "y": 730.0
+          },
+          {
+            "x": 215.0,
+            "y": 820.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#2",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA1"
+        },
+        "name": "unnamedWire#113",
+        "path": [
+          {
+            "x": 300.0,
             "y": 790.0
+          },
+          {
+            "x": 300.0,
+            "y": 50.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q1"
+          "compName": "GUIandor414#2",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "QA2"
         },
-        "name": "unnamedWire#45",
-        "path": []
+        "name": "unnamedWire#114",
+        "path": [
+          {
+            "x": 305.0,
+            "y": 800.0
+          },
+          {
+            "x": 305.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIandor414#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D4"
+          "compName": "_submodelinterface",
+          "pinName": "QA3"
         },
-        "name": "unnamedWire#44",
-        "path": []
+        "name": "unnamedWire#115",
+        "path": [
+          {
+            "x": 310.0,
+            "y": 810.0
+          },
+          {
+            "x": 310.0,
+            "y": 250.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q3"
+          "compName": "GUIandor414#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "QA4"
         },
-        "name": "unnamedWire#47",
-        "path": []
+        "name": "unnamedWire#116",
+        "path": [
+          {
+            "x": 315.0,
+            "y": 820.0
+          },
+          {
+            "x": 315.0,
+            "y": 350.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#117",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 330.0
+          },
+          {
+            "x": 190.0,
+            "y": 430.0
+          },
+          {
+            "x": 130.0,
+            "y": 430.0
+          },
+          {
+            "x": 130.0,
+            "y": 440.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#118",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 340.0
+          },
+          {
+            "x": 185.0,
+            "y": 425.0
+          },
+          {
+            "x": 125.0,
+            "y": 425.0
+          },
+          {
+            "x": 125.0,
+            "y": 450.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#119",
+        "path": [
+          {
+            "x": 180.0,
+            "y": 350.0
+          },
+          {
+            "x": 180.0,
+            "y": 420.0
+          },
+          {
+            "x": 120.0,
+            "y": 420.0
+          },
+          {
+            "x": 120.0,
+            "y": 460.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q2"
+          "compName": "_submodelinterface",
+          "pinName": "WE"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUIand41#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#46",
-        "path": []
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 450.0
+          },
+          {
+            "x": 5.0,
+            "y": 300.0
+          },
+          {
+            "x": 125.0,
+            "y": 300.0
+          },
+          {
+            "x": 125.0,
+            "y": 195.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q1"
+          "compName": "GUIand41#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#49",
-        "path": []
+        "name": "unnamedWire#120",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 360.0
+          },
+          {
+            "x": 175.0,
+            "y": 415.0
+          },
+          {
+            "x": 115.0,
+            "y": 415.0
+          },
+          {
+            "x": 115.0,
+            "y": 470.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q4"
+          "compName": "GUIandor414#3",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#48",
-        "path": []
+        "name": "unnamedWire#121",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 440.0
+          },
+          {
+            "x": 190.0,
+            "y": 580.0
+          },
+          {
+            "x": 130.0,
+            "y": 580.0
+          },
+          {
+            "x": 130.0,
+            "y": 590.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A4"
+          "compName": "GUIandor414#4",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#100",
-        "path": []
+        "name": "unnamedWire#122",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 450.0
+          },
+          {
+            "x": 185.0,
+            "y": 575.0
+          },
+          {
+            "x": 125.0,
+            "y": 575.0
+          },
+          {
+            "x": 125.0,
+            "y": 600.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#3",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#4",
           "pinName": "C3"
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#123",
         "path": [
           {
-            "x": 280.0,
-            "y": 400.0
+            "x": 180.0,
+            "y": 460.0
           },
           {
-            "x": 280.0,
-            "y": 435.0
+            "x": 180.0,
+            "y": 570.0
           },
           {
-            "x": 220.0,
-            "y": 435.0
+            "x": 120.0,
+            "y": 570.0
           },
           {
-            "x": 220.0,
-            "y": 510.0
+            "x": 120.0,
+            "y": 610.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#3",
           "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#4",
           "pinName": "C4"
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#124",
         "path": [
           {
-            "x": 275.0,
-            "y": 410.0
+            "x": 175.0,
+            "y": 470.0
           },
           {
-            "x": 275.0,
-            "y": 430.0
+            "x": 175.0,
+            "y": 565.0
           },
           {
-            "x": 215.0,
-            "y": 430.0
+            "x": 115.0,
+            "y": 565.0
           },
           {
-            "x": 215.0,
-            "y": 520.0
+            "x": 115.0,
+            "y": 620.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#4",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#5",
           "pinName": "C1"
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#125",
         "path": [
           {
-            "x": 290.0,
-            "y": 380.0
+            "x": 190.0,
+            "y": 590.0
           },
           {
-            "x": 290.0,
-            "y": 445.0
+            "x": 190.0,
+            "y": 730.0
           },
           {
-            "x": 230.0,
-            "y": 445.0
+            "x": 130.0,
+            "y": 730.0
           },
           {
-            "x": 230.0,
-            "y": 490.0
+            "x": 130.0,
+            "y": 740.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#4",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#5",
           "pinName": "C2"
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#126",
         "path": [
           {
-            "x": 285.0,
-            "y": 390.0
+            "x": 185.0,
+            "y": 600.0
           },
           {
-            "x": 285.0,
-            "y": 440.0
+            "x": 185.0,
+            "y": 725.0
           },
           {
-            "x": 225.0,
-            "y": 440.0
+            "x": 125.0,
+            "y": 725.0
           },
           {
-            "x": 225.0,
-            "y": 500.0
+            "x": 125.0,
+            "y": 750.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q2"
+          "compName": "GUIandor414#4",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#50",
-        "path": []
+        "name": "unnamedWire#127",
+        "path": [
+          {
+            "x": 180.0,
+            "y": 610.0
+          },
+          {
+            "x": 180.0,
+            "y": 720.0
+          },
+          {
+            "x": 120.0,
+            "y": 720.0
+          },
+          {
+            "x": 120.0,
+            "y": 760.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
-          "pinName": "Y3"
+          "compName": "GUIandor414#4",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C3"
+          "compName": "GUIandor414#5",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#128",
         "path": [
           {
-            "x": 280.0,
-            "y": 510.0
+            "x": 175.0,
+            "y": 620.0
           },
           {
-            "x": 280.0,
-            "y": 585.0
+            "x": 175.0,
+            "y": 715.0
           },
           {
-            "x": 220.0,
-            "y": 585.0
+            "x": 115.0,
+            "y": 715.0
           },
           {
-            "x": 220.0,
-            "y": 660.0
+            "x": 115.0,
+            "y": 770.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
-          "pinName": "Y4"
+          "compName": "GUIandor414#5",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C4"
+          "compName": "_submodelinterface",
+          "pinName": "QB1"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#129",
         "path": [
           {
-            "x": 275.0,
-            "y": 520.0
+            "x": 190.0,
+            "y": 740.0
           },
           {
-            "x": 275.0,
-            "y": 580.0
+            "x": 190.0,
+            "y": 880.0
           },
           {
-            "x": 215.0,
-            "y": 580.0
+            "x": 325.0,
+            "y": 880.0
           },
           {
-            "x": 215.0,
-            "y": 670.0
+            "x": 325.0,
+            "y": 450.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
-        },
-        "name": "unnamedWire#52",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIand41#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C1"
+          "compName": "GUIdlatch4#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 290.0,
-            "y": 490.0
+            "x": 185.0,
+            "y": 155.0
           },
           {
-            "x": 290.0,
-            "y": 595.0
+            "x": 185.0,
+            "y": 250.0
           },
           {
-            "x": 230.0,
-            "y": 595.0
+            "x": 30.0,
+            "y": 250.0
           },
           {
-            "x": 230.0,
-            "y": 640.0
+            "x": 30.0,
+            "y": 370.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
-        },
-        "name": "unnamedWire#51",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#5",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C2"
+          "compName": "_submodelinterface",
+          "pinName": "QB2"
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#130",
         "path": [
           {
-            "x": 285.0,
-            "y": 500.0
+            "x": 185.0,
+            "y": 750.0
           },
           {
-            "x": 285.0,
-            "y": 590.0
+            "x": 185.0,
+            "y": 885.0
           },
           {
-            "x": 225.0,
-            "y": 590.0
+            "x": 330.0,
+            "y": 885.0
           },
           {
-            "x": 225.0,
-            "y": 650.0
+            "x": 330.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
-        },
-        "name": "unnamedWire#54",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
-        },
-        "name": "unnamedWire#53",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
-        },
-        "name": "unnamedWire#56",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y1"
+          "compName": "GUIandor414#5",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C1"
+          "compName": "_submodelinterface",
+          "pinName": "QB3"
         },
-        "name": "unnamedWire#109",
+        "name": "unnamedWire#131",
         "path": [
           {
-            "x": 290.0,
-            "y": 640.0
+            "x": 180.0,
+            "y": 760.0
           },
           {
-            "x": 290.0,
-            "y": 745.0
+            "x": 180.0,
+            "y": 890.0
           },
           {
-            "x": 230.0,
-            "y": 745.0
+            "x": 335.0,
+            "y": 890.0
           },
           {
-            "x": 230.0,
-            "y": 790.0
+            "x": 335.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q3"
+          "compName": "GUIandor414#5",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "QB4"
         },
-        "name": "unnamedWire#55",
-        "path": []
+        "name": "unnamedWire#132",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 770.0
+          },
+          {
+            "x": 175.0,
+            "y": 895.0
+          },
+          {
+            "x": 340.0,
+            "y": 895.0
+          },
+          {
+            "x": 340.0,
+            "y": 750.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1395,29 +1624,29 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUIand41#0",
-          "pinName": "Y1"
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
+          "compName": "GUIdlatch4#2",
           "pinName": "C"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 185.0,
-            "y": 155.0
+            "x": 175.0,
+            "y": 175.0
           },
           {
-            "x": 185.0,
-            "y": 250.0
+            "x": 175.0,
+            "y": 240.0
           },
           {
-            "x": 30.0,
-            "y": 250.0
+            "x": 20.0,
+            "y": 240.0
           },
           {
-            "x": 30.0,
-            "y": 370.0
+            "x": 20.0,
+            "y": 670.0
           }
         ]
       },
@@ -1450,57 +1679,28 @@ mograsim version: 0.1.3
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 175.0,
-            "y": 175.0
-          },
-          {
-            "x": 175.0,
-            "y": 240.0
-          },
-          {
-            "x": 20.0,
-            "y": 240.0
-          },
-          {
-            "x": 20.0,
-            "y": 670.0
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D1"
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
@@ -1517,18 +1717,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B0"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D1"
+          "compName": "GUIdemux2#1",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 35.0,
-            "y": 330.0
+            "x": 5.0,
+            "y": 250.0
+          },
+          {
+            "x": 5.0,
+            "y": 155.0
           }
         ]
       },
@@ -1551,18 +1755,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIdlatch4#0",
-          "pinName": "D3"
+          "pinName": "D1"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": [
           {
-            "x": 45.0,
-            "y": 350.0
+            "x": 35.0,
+            "y": 330.0
           }
         ]
       },
@@ -1585,15 +1789,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D1"
+          "compName": "GUIdlatch4#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#25",
-        "path": []
+        "name": "unnamedWire#23",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 350.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1614,14 +1823,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIdlatch4#1",
-          "pinName": "D3"
+          "pinName": "D1"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
@@ -1638,14 +1847,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
@@ -1662,544 +1871,410 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "name": "unnamedWire#30",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "name": "unnamedWire#32",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "name": "unnamedWire#31",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D1"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A3"
+          "compName": "GUIdemux2#1",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#79",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 120.0,
-            "y": 700.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A1"
-        },
-        "name": "unnamedWire#81",
-        "path": [
+            "x": 10.0,
+            "y": 350.0
+          },
           {
-            "x": 130.0,
-            "y": 830.0
+            "x": 10.0,
+            "y": 165.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A4"
-        },
-        "name": "unnamedWire#80",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 710.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#83",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 850.0
-          }
-        ]
+        "name": "unnamedWire#30",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A2"
-        },
-        "name": "unnamedWire#82",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 840.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A1"
-        },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#84",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 860.0
-          }
-        ]
+        "name": "unnamedWire#32",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#87",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A2"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A1"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A4"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A2"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y11"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIdemux2#1",
-          "pinName": "Y10"
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A4"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#92",
-        "path": []
+        "name": "unnamedWire#41",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 780.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A3"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#91",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 790.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S1"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 10.0,
-            "y": 150.0
-          },
-          {
-            "x": 10.0,
-            "y": 60.0
+            "x": 45.0,
+            "y": 800.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A2"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#94",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A0"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#45",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
-        "name": "unnamedWire#96",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#95",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y01"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIdemux2#1",
+          "pinName": "Y01"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#98",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y00"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#97",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 350.0
-          },
-          {
-            "x": 10.0,
-            "y": 165.0
-          }
-        ]
+        "name": "unnamedWire#53",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "WE"
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 450.0
-          },
-          {
-            "x": 5.0,
-            "y": 300.0
-          },
-          {
-            "x": 125.0,
-            "y": 300.0
-          },
-          {
-            "x": 125.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#54",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B0"
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 250.0
-          },
-          {
-            "x": 5.0,
-            "y": 155.0
-          }
-        ]
+        "name": "unnamedWire#55",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "GUIdlatch4#3",
+          "pinName": "Q1"
         },
-        "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A3"
+        "pin2": {
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
-        "name": "unnamedWire#99",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
@@ -2217,514 +2292,522 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUIdlatch4#3",
-          "pinName": "Q1"
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#59",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#1",
+          "pinName": "Y10"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIdlatch4#3",
-          "pinName": "Q3"
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y4"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB4"
+          "compName": "GUIand41#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#132",
+        "name": "unnamedWire#61",
         "path": [
           {
-            "x": 175.0,
-            "y": 770.0
+            "x": 210.0,
+            "y": 50.0
           },
           {
-            "x": 175.0,
-            "y": 895.0
-          },
+            "x": 210.0,
+            "y": 420.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y01"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#62",
+        "path": [
           {
-            "x": 340.0,
-            "y": 895.0
+            "x": 205.0,
+            "y": 60.0
           },
           {
-            "x": 340.0,
-            "y": 750.0
+            "x": 205.0,
+            "y": 570.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y2"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y10"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB2"
+          "compName": "GUIandor414#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#130",
+        "name": "unnamedWire#63",
         "path": [
           {
-            "x": 185.0,
-            "y": 750.0
+            "x": 200.0,
+            "y": 70.0
           },
           {
-            "x": 185.0,
-            "y": 885.0
-          },
+            "x": 200.0,
+            "y": 720.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y11"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#64",
+        "path": [
           {
-            "x": 330.0,
-            "y": 885.0
+            "x": 195.0,
+            "y": 80.0
           },
           {
-            "x": 330.0,
-            "y": 550.0
+            "x": 195.0,
+            "y": 870.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB3"
+          "compName": "GUIand41#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#65",
         "path": [
           {
-            "x": 180.0,
-            "y": 760.0
-          },
-          {
-            "x": 180.0,
-            "y": 890.0
-          },
+            "x": 110.0,
+            "y": 370.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#66",
+        "path": [
           {
-            "x": 335.0,
-            "y": 890.0
-          },
+            "x": 105.0,
+            "y": 520.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#67",
+        "path": [
           {
-            "x": 335.0,
-            "y": 650.0
+            "x": 100.0,
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y00"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#68",
         "path": [
           {
-            "x": 210.0,
-            "y": 50.0
-          },
+            "x": 95.0,
+            "y": 820.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#69",
+        "path": [
           {
-            "x": 210.0,
-            "y": 420.0
+            "x": 130.0,
+            "y": 380.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "Q4"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y11"
         },
         "pin2": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y10"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "B"
+          "compName": "GUIand41#1",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#70",
         "path": [
           {
-            "x": 200.0,
-            "y": 70.0
-          },
-          {
-            "x": 200.0,
-            "y": 720.0
+            "x": 125.0,
+            "y": 390.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y01"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "B"
+          "compName": "GUIand41#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 205.0,
-            "y": 60.0
-          },
-          {
-            "x": 205.0,
-            "y": 570.0
+            "x": 120.0,
+            "y": 400.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#72",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 410.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#73",
         "path": [
           {
-            "x": 110.0,
-            "y": 370.0
+            "x": 130.0,
+            "y": 530.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y11"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#64",
+        "name": "unnamedWire#74",
         "path": [
           {
-            "x": 195.0,
-            "y": 80.0
-          },
-          {
-            "x": 195.0,
-            "y": 870.0
+            "x": 125.0,
+            "y": 540.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#75",
         "path": [
           {
-            "x": 100.0,
-            "y": 670.0
+            "x": 120.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#66",
+        "name": "unnamedWire#76",
         "path": [
           {
-            "x": 105.0,
-            "y": 520.0
+            "x": 115.0,
+            "y": 560.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#1",
           "pinName": "A1"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#77",
         "path": [
           {
             "x": 130.0,
-            "y": 380.0
+            "y": 680.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "B"
+          "compName": "GUIandor414#1",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#78",
         "path": [
           {
-            "x": 95.0,
-            "y": 820.0
+            "x": 125.0,
+            "y": 690.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C1"
+          "compName": "GUIandor414#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#121",
+        "name": "unnamedWire#79",
         "path": [
           {
-            "x": 190.0,
-            "y": 440.0
-          },
-          {
-            "x": 190.0,
-            "y": 580.0
-          },
-          {
-            "x": 130.0,
-            "y": 580.0
-          },
-          {
-            "x": 130.0,
-            "y": 590.0
+            "x": 120.0,
+            "y": 700.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C2"
+          "compName": "GUIand41#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#122",
-        "path": [
-          {
-            "x": 185.0,
-            "y": 450.0
-          },
-          {
-            "x": 185.0,
-            "y": 575.0
-          },
-          {
-            "x": 125.0,
-            "y": 575.0
-          },
-          {
-            "x": 125.0,
-            "y": 600.0
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C4"
+          "compName": "GUIandor414#1",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#120",
+        "name": "unnamedWire#80",
         "path": [
-          {
-            "x": 175.0,
-            "y": 360.0
-          },
-          {
-            "x": 175.0,
-            "y": 415.0
-          },
-          {
-            "x": 115.0,
-            "y": 415.0
-          },
           {
             "x": 115.0,
-            "y": 470.0
+            "y": 710.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C1"
+          "compName": "GUIandor414#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#81",
         "path": [
-          {
-            "x": 190.0,
-            "y": 590.0
-          },
-          {
-            "x": 190.0,
-            "y": 730.0
-          },
-          {
-            "x": 130.0,
-            "y": 730.0
-          },
           {
             "x": 130.0,
-            "y": 740.0
+            "y": 830.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C2"
+          "compName": "GUIandor414#2",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#82",
         "path": [
-          {
-            "x": 185.0,
-            "y": 600.0
-          },
-          {
-            "x": 185.0,
-            "y": 725.0
-          },
-          {
-            "x": 125.0,
-            "y": 725.0
-          },
           {
             "x": 125.0,
-            "y": 750.0
+            "y": 840.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A2"
+          "compName": "GUIandor414#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#83",
         "path": [
           {
-            "x": 125.0,
-            "y": 390.0
+            "x": 120.0,
+            "y": 850.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C3"
+          "compName": "GUIandor414#2",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#123",
+        "name": "unnamedWire#84",
         "path": [
           {
-            "x": 180.0,
-            "y": 460.0
-          },
-          {
-            "x": 180.0,
-            "y": 570.0
-          },
-          {
-            "x": 120.0,
-            "y": 570.0
-          },
-          {
-            "x": 120.0,
-            "y": 610.0
+            "x": 115.0,
+            "y": 860.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#85",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#86",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C4"
+          "compName": "GUIand41#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#124",
-        "path": [
-          {
-            "x": 175.0,
-            "y": 470.0
-          },
-          {
-            "x": 175.0,
-            "y": 565.0
-          },
-          {
-            "x": 115.0,
-            "y": 565.0
-          },
-          {
-            "x": 115.0,
-            "y": 620.0
-          }
-        ]
+        "name": "unnamedWire#87",
+        "path": []
       },
       {
         "pin1": {
@@ -2732,62 +2815,35 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
+          "compName": "GUIand41#2",
           "pinName": "A4"
         },
-        "name": "unnamedWire#72",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 410.0
-          }
-        ]
+        "name": "unnamedWire#88",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB1"
+          "compName": "GUIandor414#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#129",
-        "path": [
-          {
-            "x": 190.0,
-            "y": 740.0
-          },
-          {
-            "x": 190.0,
-            "y": 880.0
-          },
-          {
-            "x": 325.0,
-            "y": 880.0
-          },
-          {
-            "x": 325.0,
-            "y": 450.0
-          }
-        ]
+        "name": "unnamedWire#89",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A3"
+          "compName": "GUIand41#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#71",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 400.0
-          }
-        ]
+        "name": "unnamedWire#9",
+        "path": []
       },
       {
         "pin1": {
@@ -2795,163 +2851,124 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#3",
           "pinName": "A2"
         },
-        "name": "unnamedWire#74",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 540.0
-          }
-        ]
+        "name": "unnamedWire#90",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C3"
+          "compName": "GUIandor414#3",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#127",
-        "path": [
-          {
-            "x": 180.0,
-            "y": 610.0
-          },
-          {
-            "x": 180.0,
-            "y": 720.0
-          },
-          {
-            "x": 120.0,
-            "y": 720.0
-          },
-          {
-            "x": 120.0,
-            "y": 760.0
-          }
-        ]
+        "name": "unnamedWire#91",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#3",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#92",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
           "pinName": "A1"
         },
-        "name": "unnamedWire#73",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 530.0
-          }
-        ]
+        "name": "unnamedWire#93",
+        "path": []
       },
       {
         "pin1": {
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "GUIandor414#4",
-          "pinName": "Y4"
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#94",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C4"
+          "compName": "GUIandor414#4",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#128",
-        "path": [
-          {
-            "x": 175.0,
-            "y": 620.0
-          },
-          {
-            "x": 175.0,
-            "y": 715.0
-          },
-          {
-            "x": 115.0,
-            "y": 715.0
-          },
-          {
-            "x": 115.0,
-            "y": 770.0
-          }
-        ]
+        "name": "unnamedWire#95",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#4",
           "pinName": "A4"
         },
-        "name": "unnamedWire#76",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 560.0
-          }
-        ]
+        "name": "unnamedWire#96",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A3"
+          "compName": "GUIandor414#5",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#75",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 550.0
-          }
-        ]
+        "name": "unnamedWire#97",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#29",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIandor414#5",
           "pinName": "A2"
         },
-        "name": "unnamedWire#78",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 690.0
-          }
-        ]
+        "name": "unnamedWire#98",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A1"
+          "compName": "GUIandor414#5",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#77",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 680.0
-          }
-        ]
+        "name": "unnamedWire#99",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIram2",
     "centerTextHeight": 5.0,
@@ -2959,30 +2976,30 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {
       "c00": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch4#0"
         }
       },
       "c11": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch4#3"
         }
       },
       "c10": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch4#2"
         }
       },
       "c01": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdlatch4#1"
         }
@@ -2990,7 +3007,7 @@ mograsim version: 0.1.3
     },
     "atomicHighLevelStates": {
       "q": {
-        "id": "bitVectorSplitting",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler",
         "params": {
           "vectorPartTargets": [
             "c11.q",
@@ -3007,5 +3024,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index e5e71cc..527fc35 100644 (file)
@@ -1,71 +1,78 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 130.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "QA1",
-      "logicWidth": 1
+      "name": "A0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "QB2",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "QB1",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "QA3",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 75.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "QB4",
-      "logicWidth": 1
+      "name": "B0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "QA2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 65.0
       },
-      "name": "QB3",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "QA4",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -73,271 +80,261 @@ mograsim version: 0.1.3
         "y": 95.0
       },
       "name": "D1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 105.0
       },
-      "name": "B0",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 115.0
       },
-      "name": "WE",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 105.0
+        "y": 125.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "A0",
-      "logicWidth": 1
+      "name": "QA1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 55.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "QA2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 115.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "QA3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "QA4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 65.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "QB1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 125.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "QB2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 65.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "QB3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 75.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "QB4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 85.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUIand41",
+        "name": "GUIand41#0",
         "pos": {
-          "x": 69.0,
-          "y": 854.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 150.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUIand41",
+        "name": "GUIand41#1",
         "pos": {
-          "x": 64.0,
-          "y": 844.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 375.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "GUIand41",
+        "name": "GUIand41#2",
         "pos": {
-          "x": 39.0,
-          "y": 484.0
-        },
-        "params": 1
+          "x": 155.0,
+          "y": 325.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUIandor414",
+        "name": "GUIandor414#0",
         "pos": {
-          "x": 74.0,
-          "y": 864.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 485.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUIandor414",
+        "name": "GUIandor414#1",
         "pos": {
-          "x": 49.0,
-          "y": 504.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 635.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "GUIandor414",
+        "name": "GUIandor414#2",
         "pos": {
-          "x": 44.0,
-          "y": 494.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 785.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "id": "GUIandor414",
+        "name": "GUIandor414#3",
         "pos": {
-          "x": 54.0,
-          "y": 514.0
-        },
-        "params": 1
+          "x": 155.0,
+          "y": 435.0
+        }
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#2",
+        "id": "GUIandor414",
+        "name": "GUIandor414#4",
         "pos": {
           "x": 155.0,
-          "y": 325.0
+          "y": 585.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIandor414",
+        "name": "GUIandor414#5",
         "pos": {
-          "x": 224.0,
-          "y": 164.0
-        },
-        "params": 1
+          "x": 155.0,
+          "y": 735.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#0",
         "pos": {
-          "x": 229.0,
-          "y": 154.0
-        },
-        "params": 1
+          "x": 55.0,
+          "y": 45.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#1",
         "pos": {
-          "x": 214.0,
-          "y": 184.0
-        },
-        "params": 1
+          "x": 55.0,
+          "y": 150.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUIram2",
+        "name": "GUIram2#0",
         "pos": {
-          "x": 219.0,
-          "y": 174.0
-        },
-        "params": 1
+          "x": 80.0,
+          "y": 330.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "GUIram2",
+        "name": "GUIram2#1",
         "pos": {
-          "x": 64.0,
-          "y": 544.0
-        },
-        "params": 1
+          "x": 80.0,
+          "y": 480.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "GUIram2",
+        "name": "GUIram2#2",
         "pos": {
-          "x": 59.0,
-          "y": 534.0
-        },
-        "params": 1
+          "x": 80.0,
+          "y": 630.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "GUIram2",
+        "name": "GUIram2#3",
         "pos": {
-          "x": 74.0,
-          "y": 564.0
-        },
-        "params": 1
+          "x": 80.0,
+          "y": 780.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 69.0,
-          "y": 554.0
+          "x": 229.0,
+          "y": 154.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
-        "pos": {
-          "x": 64.0,
-          "y": 694.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 59.0,
-          "y": 684.0
+          "x": 224.0,
+          "y": 164.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#10",
         "pos": {
           "x": 69.0,
@@ -346,15 +343,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 235.0,
-          "y": 150.0
-        }
+          "x": 74.0,
+          "y": 714.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#12",
         "pos": {
           "x": 59.0,
@@ -363,364 +361,520 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 250.0,
-          "y": 375.0
-        }
+          "x": 64.0,
+          "y": 844.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
+        "pos": {
+          "x": 69.0,
+          "y": 854.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
           "x": 74.0,
-          "y": 714.0
+          "y": 864.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 155.0,
-          "y": 735.0
-        }
+          "x": 39.0,
+          "y": 484.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#25",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#17",
         "pos": {
           "x": 44.0,
-          "y": 349.0
+          "y": 494.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 39.0,
-          "y": 334.0
+          "x": 49.0,
+          "y": 504.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 155.0,
-          "y": 435.0
-        }
+          "x": 54.0,
+          "y": 514.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#27",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 54.0,
-          "y": 749.0
+          "x": 219.0,
+          "y": 174.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 155.0,
-          "y": 585.0
-        }
+          "x": 39.0,
+          "y": 634.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 49.0,
-          "y": 649.0
+          "x": 44.0,
+          "y": 644.0
         },
         "params": 1
       },
       {
-        "id": "GUIram2",
-        "name": "GUIram2#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "pos": {
-          "x": 80.0,
-          "y": 780.0
-        }
+          "x": 49.0,
+          "y": 654.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIram2",
-        "name": "GUIram2#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#23",
         "pos": {
-          "x": 80.0,
-          "y": 630.0
-        }
+          "x": 54.0,
+          "y": 664.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 55.0,
-          "y": 150.0
-        }
+          "x": 39.0,
+          "y": 334.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIram2",
-        "name": "GUIram2#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "pos": {
-          "x": 80.0,
-          "y": 480.0
-        }
+          "x": 44.0,
+          "y": 349.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIram2",
-        "name": "GUIram2#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 80.0,
-          "y": 330.0
-        }
+          "x": 49.0,
+          "y": 649.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#27",
         "pos": {
-          "x": 250.0,
-          "y": 635.0
-        }
+          "x": 54.0,
+          "y": 749.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 55.0,
-          "y": 45.0
-        }
+          "x": 214.0,
+          "y": 184.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 250.0,
-          "y": 785.0
-        }
+          "x": 59.0,
+          "y": 534.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 250.0,
-          "y": 485.0
-        }
+          "x": 64.0,
+          "y": 544.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 44.0,
-          "y": 644.0
+          "x": 69.0,
+          "y": 554.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 39.0,
-          "y": 634.0
+          "x": 74.0,
+          "y": 564.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 54.0,
-          "y": 664.0
+          "x": 59.0,
+          "y": 684.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 49.0,
-          "y": 654.0
+          "x": 64.0,
+          "y": 694.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "B1"
-        },
-        "name": "unnamedWire#36",
-        "path": []
-      },
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A0"
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "B0"
+          "compName": "GUIdemux2#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "A1"
+          "compName": "GUIdemux2#0",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 45.0,
-            "y": 795.0
+            "x": 10.0,
+            "y": 150.0
+          },
+          {
+            "x": 10.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "A0"
+          "compName": "GUIand41#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#0",
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#100",
         "path": [
           {
-            "x": 40.0,
-            "y": 785.0
+            "x": 140.0,
+            "y": 365.0
+          },
+          {
+            "x": 140.0,
+            "y": 360.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUIram2#1",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "B0"
+          "compName": "GUIandor414#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#101",
         "path": [
           {
-            "x": 50.0,
-            "y": 805.0
+            "x": 140.0,
+            "y": 485.0
+          },
+          {
+            "x": 140.0,
+            "y": 480.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
+          "compName": "GUIram2#1",
           "pinName": "QA2"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
+          "compName": "GUIandor414#3",
           "pinName": "A2"
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#102",
         "path": [
           {
             "x": 140.0,
-            "y": 795.0
+            "y": 495.0
           },
           {
             "x": 140.0,
-            "y": 790.0
+            "y": 490.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
+          "compName": "GUIram2#1",
           "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
+          "compName": "GUIandor414#3",
           "pinName": "A3"
         },
-        "name": "unnamedWire#111",
+        "name": "unnamedWire#103",
         "path": [
           {
             "x": 140.0,
-            "y": 805.0
+            "y": 505.0
           },
           {
             "x": 140.0,
-            "y": 800.0
+            "y": 500.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
-          "pinName": "Y2"
+          "compName": "GUIram2#1",
+          "pinName": "QA4"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C2"
+          "compName": "GUIandor414#3",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#114",
+        "name": "unnamedWire#104",
         "path": [
           {
-            "x": 300.0,
-            "y": 390.0
+            "x": 140.0,
+            "y": 515.0
           },
           {
-            "x": 300.0,
-            "y": 440.0
+            "x": 140.0,
+            "y": 510.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QA1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#105",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 635.0
           },
           {
-            "x": 240.0,
-            "y": 440.0
+            "x": 140.0,
+            "y": 630.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QA2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#106",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 645.0
           },
           {
-            "x": 240.0,
-            "y": 500.0
+            "x": 140.0,
+            "y": 640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
-          "pinName": "Y3"
+          "compName": "GUIram2#2",
+          "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C3"
+          "compName": "GUIandor414#4",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#115",
+        "name": "unnamedWire#107",
         "path": [
           {
-            "x": 295.0,
-            "y": 400.0
+            "x": 140.0,
+            "y": 655.0
           },
           {
-            "x": 295.0,
-            "y": 435.0
+            "x": 140.0,
+            "y": 650.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#108",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 665.0
           },
           {
-            "x": 235.0,
-            "y": 435.0
+            "x": 140.0,
+            "y": 660.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#3",
+          "pinName": "QA1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#109",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 785.0
           },
           {
-            "x": 235.0,
-            "y": 510.0
+            "x": 140.0,
+            "y": 780.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#3",
+          "pinName": "QA2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#110",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 795.0
+          },
+          {
+            "x": 140.0,
+            "y": 790.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#3",
+          "pinName": "QA3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#111",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 805.0
+          },
+          {
+            "x": 140.0,
+            "y": 800.0
           }
         ]
       },
@@ -776,76 +930,59 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIand41#1",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIandor414#0",
           "pinName": "C2"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#114",
         "path": [
           {
             "x": 300.0,
-            "y": 500.0
+            "y": 390.0
           },
           {
             "x": 300.0,
-            "y": 590.0
+            "y": 440.0
           },
           {
             "x": 240.0,
-            "y": 590.0
+            "y": 440.0
           },
           {
             "x": 240.0,
-            "y": 650.0
+            "y": 500.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIand41#1",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIandor414#0",
           "pinName": "C3"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#115",
         "path": [
           {
             "x": 295.0,
-            "y": 510.0
+            "y": 400.0
           },
           {
             "x": 295.0,
-            "y": 585.0
+            "y": 435.0
           },
           {
             "x": 235.0,
-            "y": 585.0
+            "y": 435.0
           },
           {
             "x": 235.0,
-            "y": 660.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "B1"
-        },
-        "name": "unnamedWire#41",
-        "path": [
-          {
-            "x": 55.0,
-            "y": 815.0
+            "y": 510.0
           }
         ]
       },
@@ -878,18 +1015,6 @@ mograsim version: 0.1.3
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
-        },
-        "name": "unnamedWire#40",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUIandor414#0",
@@ -921,445 +1046,338 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
-        },
-        "name": "unnamedWire#43",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
+          "compName": "GUIandor414#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#118",
         "path": [
           {
-            "x": 40.0,
-            "y": 250.0
+            "x": 300.0,
+            "y": 500.0
+          },
+          {
+            "x": 300.0,
+            "y": 590.0
+          },
+          {
+            "x": 240.0,
+            "y": 590.0
+          },
+          {
+            "x": 240.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D1"
+          "compName": "GUIandor414#1",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#119",
         "path": [
           {
-            "x": 60.0,
-            "y": 385.0
+            "x": 295.0,
+            "y": 510.0
+          },
+          {
+            "x": 295.0,
+            "y": 585.0
+          },
+          {
+            "x": 235.0,
+            "y": 585.0
+          },
+          {
+            "x": 235.0,
+            "y": 660.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
-        },
-        "name": "unnamedWire#44",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "pinName": "WE"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D3"
+          "compName": "GUIand41#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 70.0,
-            "y": 405.0
+            "x": 15.0,
+            "y": 850.0
+          },
+          {
+            "x": 15.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D2"
+          "compName": "GUIandor414#1",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#120",
         "path": [
           {
-            "x": 65.0,
-            "y": 395.0
+            "x": 290.0,
+            "y": 520.0
+          },
+          {
+            "x": 290.0,
+            "y": 580.0
+          },
+          {
+            "x": 230.0,
+            "y": 580.0
+          },
+          {
+            "x": 230.0,
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D1"
-        },
-        "name": "unnamedWire#49",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D4"
+          "compName": "GUIandor414#2",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#121",
         "path": [
           {
-            "x": 75.0,
-            "y": 415.0
+            "x": 305.0,
+            "y": 640.0
+          },
+          {
+            "x": 305.0,
+            "y": 745.0
+          },
+          {
+            "x": 245.0,
+            "y": 745.0
+          },
+          {
+            "x": 245.0,
+            "y": 790.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA4"
+          "compName": "GUIandor414#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A4"
+          "compName": "GUIandor414#2",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#100",
+        "name": "unnamedWire#122",
         "path": [
           {
-            "x": 140.0,
-            "y": 365.0
+            "x": 300.0,
+            "y": 650.0
           },
           {
-            "x": 140.0,
-            "y": 360.0
+            "x": 300.0,
+            "y": 740.0
+          },
+          {
+            "x": 240.0,
+            "y": 740.0
+          },
+          {
+            "x": 240.0,
+            "y": 800.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA3"
+          "compName": "GUIandor414#1",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A3"
+          "compName": "GUIandor414#2",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#123",
         "path": [
           {
-            "x": 140.0,
-            "y": 505.0
+            "x": 295.0,
+            "y": 660.0
           },
           {
-            "x": 140.0,
-            "y": 500.0
+            "x": 295.0,
+            "y": 735.0
+          },
+          {
+            "x": 235.0,
+            "y": 735.0
+          },
+          {
+            "x": 235.0,
+            "y": 810.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA4"
+          "compName": "GUIandor414#1",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A4"
+          "compName": "GUIandor414#2",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#124",
         "path": [
           {
-            "x": 140.0,
-            "y": 515.0
-          },
-          {
-            "x": 140.0,
-            "y": 510.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA1"
-        },
-        "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A1"
-        },
-        "name": "unnamedWire#101",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 485.0
+            "x": 290.0,
+            "y": 670.0
           },
           {
-            "x": 140.0,
-            "y": 480.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA2"
-        },
-        "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A2"
-        },
-        "name": "unnamedWire#102",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 495.0
+            "x": 290.0,
+            "y": 730.0
           },
           {
-            "x": 140.0,
-            "y": 490.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D2"
-        },
-        "name": "unnamedWire#50",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA3"
-        },
-        "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#107",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 655.0
+            "x": 230.0,
+            "y": 730.0
           },
           {
-            "x": 140.0,
-            "y": 650.0
+            "x": 230.0,
+            "y": 820.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA4"
+          "compName": "GUIandor414#2",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A4"
+          "compName": "_submodelinterface",
+          "pinName": "QB1"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#125",
         "path": [
           {
-            "x": 140.0,
-            "y": 665.0
+            "x": 330.0,
+            "y": 790.0
           },
           {
-            "x": 140.0,
-            "y": 660.0
+            "x": 330.0,
+            "y": 450.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D4"
-        },
-        "name": "unnamedWire#52",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA1"
+          "compName": "GUIandor414#2",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "QB2"
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#126",
         "path": [
           {
-            "x": 140.0,
-            "y": 635.0
+            "x": 335.0,
+            "y": 800.0
           },
           {
-            "x": 140.0,
-            "y": 630.0
+            "x": 335.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D3"
-        },
-        "name": "unnamedWire#51",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA2"
+          "compName": "GUIandor414#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A2"
+          "compName": "_submodelinterface",
+          "pinName": "QB3"
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#127",
         "path": [
           {
-            "x": 140.0,
-            "y": 645.0
+            "x": 340.0,
+            "y": 810.0
           },
           {
-            "x": 140.0,
-            "y": 640.0
+            "x": 340.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "name": "unnamedWire#54",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "name": "unnamedWire#53",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
-        },
-        "name": "unnamedWire#56",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QA1"
+          "compName": "GUIandor414#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "QB4"
         },
-        "name": "unnamedWire#109",
+        "name": "unnamedWire#128",
         "path": [
           {
-            "x": 140.0,
-            "y": 785.0
+            "x": 345.0,
+            "y": 820.0
           },
           {
-            "x": 140.0,
-            "y": 780.0
+            "x": 345.0,
+            "y": 750.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "name": "unnamedWire#55",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y2"
+          "compName": "GUIand41#2",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "WE"
+          "compName": "GUIandor414#3",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#129",
         "path": [
           {
-            "x": 285.0,
-            "y": 165.0
+            "x": 210.0,
+            "y": 330.0
           },
           {
-            "x": 285.0,
-            "y": 225.0
+            "x": 210.0,
+            "y": 430.0
           },
           {
-            "x": 30.0,
-            "y": 225.0
+            "x": 150.0,
+            "y": 430.0
           },
           {
-            "x": 30.0,
-            "y": 525.0
+            "x": 150.0,
+            "y": 440.0
           }
         ]
       },
@@ -1394,219 +1412,548 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y4"
+          "compName": "GUIand41#2",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "WE"
+          "compName": "GUIandor414#3",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#130",
         "path": [
           {
-            "x": 275.0,
-            "y": 185.0
+            "x": 205.0,
+            "y": 340.0
           },
           {
-            "x": 275.0,
-            "y": 215.0
+            "x": 205.0,
+            "y": 425.0
           },
           {
-            "x": 20.0,
-            "y": 215.0
+            "x": 145.0,
+            "y": 425.0
           },
           {
-            "x": 20.0,
-            "y": 825.0
+            "x": 145.0,
+            "y": 450.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#0",
+          "compName": "GUIand41#2",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "WE"
+          "compName": "GUIandor414#3",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#131",
         "path": [
           {
-            "x": 280.0,
-            "y": 175.0
+            "x": 200.0,
+            "y": 350.0
           },
           {
-            "x": 280.0,
-            "y": 220.0
+            "x": 200.0,
+            "y": 420.0
           },
           {
-            "x": 25.0,
-            "y": 220.0
+            "x": 140.0,
+            "y": 420.0
           },
           {
-            "x": 25.0,
-            "y": 675.0
+            "x": 140.0,
+            "y": 460.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIand41#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "A0"
+          "compName": "GUIandor414#3",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#18",
-        "path": []
+        "name": "unnamedWire#132",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 360.0
+          },
+          {
+            "x": 195.0,
+            "y": 415.0
+          },
+          {
+            "x": 135.0,
+            "y": 415.0
+          },
+          {
+            "x": 135.0,
+            "y": 470.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#17",
-        "path": []
+        "name": "unnamedWire#133",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 440.0
+          },
+          {
+            "x": 210.0,
+            "y": 580.0
+          },
+          {
+            "x": 150.0,
+            "y": 580.0
+          },
+          {
+            "x": 150.0,
+            "y": 590.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#19",
-        "path": []
+        "name": "unnamedWire#134",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 450.0
+          },
+          {
+            "x": 205.0,
+            "y": 575.0
+          },
+          {
+            "x": 145.0,
+            "y": 575.0
+          },
+          {
+            "x": 145.0,
+            "y": 600.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "B0"
+          "compName": "GUIandor414#4",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#135",
         "path": [
           {
-            "x": 50.0,
-            "y": 355.0
+            "x": 200.0,
+            "y": 460.0
+          },
+          {
+            "x": 200.0,
+            "y": 570.0
+          },
+          {
+            "x": 140.0,
+            "y": 570.0
+          },
+          {
+            "x": 140.0,
+            "y": 610.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "A1"
+          "compName": "GUIandor414#4",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#136",
         "path": [
           {
-            "x": 45.0,
-            "y": 345.0
+            "x": 195.0,
+            "y": 470.0
+          },
+          {
+            "x": 195.0,
+            "y": 565.0
+          },
+          {
+            "x": 135.0,
+            "y": 565.0
+          },
+          {
+            "x": 135.0,
+            "y": 620.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "A0"
+          "compName": "GUIandor414#5",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#137",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 590.0
+          },
+          {
+            "x": 210.0,
+            "y": 730.0
+          },
+          {
+            "x": 150.0,
+            "y": 730.0
+          },
+          {
+            "x": 150.0,
+            "y": 740.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "B1"
+          "compName": "GUIandor414#5",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#138",
         "path": [
           {
-            "x": 55.0,
-            "y": 365.0
+            "x": 205.0,
+            "y": 600.0
+          },
+          {
+            "x": 205.0,
+            "y": 725.0
+          },
+          {
+            "x": 145.0,
+            "y": 725.0
+          },
+          {
+            "x": 145.0,
+            "y": 750.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "B0"
-        },
-        "name": "unnamedWire#25",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#139",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 610.0
+          },
+          {
+            "x": 200.0,
+            "y": 720.0
+          },
+          {
+            "x": 140.0,
+            "y": 720.0
+          },
+          {
+            "x": 140.0,
+            "y": 760.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y2"
         },
         "pin2": {
           "compName": "GUIram2#1",
-          "pinName": "A1"
+          "pinName": "WE"
         },
-        "name": "unnamedWire#24",
-        "path": []
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 285.0,
+            "y": 165.0
+          },
+          {
+            "x": 285.0,
+            "y": 225.0
+          },
+          {
+            "x": 30.0,
+            "y": 225.0
+          },
+          {
+            "x": 30.0,
+            "y": 525.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#27",
-        "path": []
+        "name": "unnamedWire#140",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 620.0
+          },
+          {
+            "x": 195.0,
+            "y": 715.0
+          },
+          {
+            "x": 135.0,
+            "y": 715.0
+          },
+          {
+            "x": 135.0,
+            "y": 770.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "GUIandor414#5",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA1"
+        },
+        "name": "unnamedWire#141",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 740.0
+          },
+          {
+            "x": 210.0,
+            "y": 880.0
+          },
+          {
+            "x": 310.0,
+            "y": 880.0
+          },
+          {
+            "x": 310.0,
+            "y": 50.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#5",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA2"
+        },
+        "name": "unnamedWire#142",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 750.0
+          },
+          {
+            "x": 205.0,
+            "y": 885.0
+          },
+          {
+            "x": 315.0,
+            "y": 885.0
+          },
+          {
+            "x": 315.0,
+            "y": 150.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#5",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA3"
+        },
+        "name": "unnamedWire#143",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 760.0
+          },
+          {
+            "x": 200.0,
+            "y": 890.0
+          },
+          {
+            "x": 320.0,
+            "y": 890.0
+          },
+          {
+            "x": 320.0,
+            "y": 250.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#5",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA4"
+        },
+        "name": "unnamedWire#144",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 770.0
+          },
+          {
+            "x": 195.0,
+            "y": 895.0
+          },
+          {
+            "x": 325.0,
+            "y": 895.0
+          },
+          {
+            "x": 325.0,
+            "y": 350.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIram2#2",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 280.0,
+            "y": 175.0
+          },
+          {
+            "x": 280.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 675.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIram2#3",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 275.0,
+            "y": 185.0
+          },
+          {
+            "x": 275.0,
+            "y": 215.0
+          },
+          {
+            "x": 20.0,
+            "y": 215.0
+          },
+          {
+            "x": 20.0,
+            "y": 825.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUIram2#0",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
@@ -1615,23 +1962,66 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B2"
+          "pinName": "B0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
+          "compName": "GUIdemux2#1",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 450.0
+          },
+          {
+            "x": 5.0,
+            "y": 155.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
-        "name": "unnamedWire#30",
-        "path": []
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 345.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "B0"
+        },
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 355.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1639,1699 +2029,1330 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
+          "compName": "GUIram2#0",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#22",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 365.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "A0"
+        },
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#22",
+          "compName": "GUIram2#1",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#24",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
-        "name": "unnamedWire#31",
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "B0"
+        },
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "A1"
+          "compName": "GUIram2#1",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "WireCrossPoint#20",
           "pinName": ""
         },
+        "name": "unnamedWire#27",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "A0"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "B"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#79",
-        "path": [
-          {
-            "x": 220.0,
-            "y": 720.0
-          }
-        ]
+        "name": "unnamedWire#29",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB1"
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A1"
+          "compName": "GUIdemux2#1",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 140.0,
-            "y": 375.0
+            "x": 10.0,
+            "y": 550.0
           },
           {
-            "x": 140.0,
-            "y": 380.0
+            "x": 10.0,
+            "y": 165.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#80",
-        "path": [
-          {
-            "x": 215.0,
-            "y": 870.0
-          }
-        ]
+        "name": "unnamedWire#30",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
-        "name": "unnamedWire#83",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 395.0
-          },
-          {
-            "x": 140.0,
-            "y": 400.0
-          }
-        ]
+        "name": "unnamedWire#31",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#82",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 385.0
-          },
-          {
-            "x": 140.0,
-            "y": 390.0
-          }
-        ]
+        "name": "unnamedWire#32",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB1"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A1"
+          "compName": "GUIram2#2",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#85",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 525.0
-          },
-          {
-            "x": 140.0,
-            "y": 530.0
-          }
-        ]
+        "name": "unnamedWire#33",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A4"
+          "compName": "GUIram2#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#84",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 405.0
-          },
-          {
-            "x": 140.0,
-            "y": 410.0
-          }
-        ]
+        "name": "unnamedWire#34",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A3"
+          "compName": "GUIram2#2",
+          "pinName": "B0"
         },
-        "name": "unnamedWire#87",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 545.0
-          },
-          {
-            "x": 140.0,
-            "y": 550.0
-          }
-        ]
+        "name": "unnamedWire#35",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A2"
+          "compName": "GUIram2#2",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#86",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 535.0
-          },
-          {
-            "x": 140.0,
-            "y": 540.0
-          }
-        ]
+        "name": "unnamedWire#36",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB1"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A1"
+          "compName": "GUIram2#3",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 140.0,
-            "y": 675.0
-          },
-          {
-            "x": 140.0,
-            "y": 680.0
+            "x": 40.0,
+            "y": 785.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A4"
+          "compName": "GUIram2#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#38",
         "path": [
           {
-            "x": 140.0,
-            "y": 555.0
-          },
-          {
-            "x": 140.0,
-            "y": 560.0
+            "x": 45.0,
+            "y": 795.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C4"
+          "compName": "GUIram2#3",
+          "pinName": "B0"
         },
-        "name": "unnamedWire#140",
+        "name": "unnamedWire#39",
         "path": [
           {
-            "x": 195.0,
-            "y": 620.0
-          },
-          {
-            "x": 195.0,
-            "y": 715.0
-          },
-          {
-            "x": 135.0,
-            "y": 715.0
-          },
-          {
-            "x": 135.0,
-            "y": 770.0
+            "x": 50.0,
+            "y": 805.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIdemux2#1",
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA3"
-        },
-        "name": "unnamedWire#143",
-        "path": [
-          {
-            "x": 200.0,
-            "y": 760.0
-          },
-          {
-            "x": 200.0,
-            "y": 890.0
-          },
-          {
-            "x": 320.0,
-            "y": 890.0
-          },
-          {
-            "x": 320.0,
-            "y": 250.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA4"
+          "compName": "GUIram2#3",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#144",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 195.0,
-            "y": 770.0
-          },
-          {
-            "x": 195.0,
-            "y": 895.0
-          },
-          {
-            "x": 325.0,
-            "y": 895.0
-          },
-          {
-            "x": 325.0,
-            "y": 350.0
+            "x": 55.0,
+            "y": 815.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y11"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 250.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA1"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#141",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 740.0
-          },
-          {
-            "x": 210.0,
-            "y": 880.0
-          },
-          {
-            "x": 310.0,
-            "y": 880.0
-          },
-          {
-            "x": 310.0,
-            "y": 50.0
-          }
-        ]
+        "name": "unnamedWire#43",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y10"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA2"
+          "compName": "GUIram2#0",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#142",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 205.0,
-            "y": 750.0
-          },
-          {
-            "x": 205.0,
-            "y": 885.0
-          },
-          {
-            "x": 315.0,
-            "y": 885.0
-          },
-          {
-            "x": 315.0,
-            "y": 150.0
+            "x": 60.0,
+            "y": 385.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A2"
+          "compName": "GUIram2#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#46",
         "path": [
           {
-            "x": 140.0,
-            "y": 685.0
-          },
-          {
-            "x": 140.0,
-            "y": 690.0
+            "x": 65.0,
+            "y": 395.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A4"
+          "compName": "GUIram2#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#92",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 140.0,
-            "y": 705.0
-          },
-          {
-            "x": 140.0,
-            "y": 710.0
+            "x": 70.0,
+            "y": 405.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A3"
+          "compName": "GUIram2#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#48",
         "path": [
           {
-            "x": 140.0,
-            "y": 695.0
-          },
-          {
-            "x": 140.0,
-            "y": 700.0
+            "x": 75.0,
+            "y": 415.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S1"
+          "compName": "GUIram2#1",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 150.0
-          },
-          {
-            "x": 10.0,
-            "y": 60.0
-          }
-        ]
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB2"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y01"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#94",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 835.0
-          },
-          {
-            "x": 140.0,
-            "y": 840.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A0"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S0"
+          "compName": "GUIram2#1",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB1"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A1"
+          "compName": "GUIram2#1",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#93",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 825.0
-          },
-          {
-            "x": 140.0,
-            "y": 830.0
-          }
-        ]
+        "name": "unnamedWire#51",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#52",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#53",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#96",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 855.0
-          },
-          {
-            "x": 140.0,
-            "y": 860.0
-          }
-        ]
+        "name": "unnamedWire#54",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#95",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 845.0
-          },
-          {
-            "x": 140.0,
-            "y": 850.0
-          }
-        ]
+        "name": "unnamedWire#55",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y01"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A3"
+          "compName": "GUIram2#2",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA2"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A2"
+          "compName": "GUIram2#2",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#98",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 345.0
-          },
-          {
-            "x": 140.0,
-            "y": 340.0
-          }
-        ]
+        "name": "unnamedWire#58",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y00"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIram2#2",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#59",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA1"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y10"
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#97",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 335.0
-          },
-          {
-            "x": 140.0,
-            "y": 330.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S1"
+          "compName": "GUIram2#2",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 550.0
-          },
-          {
-            "x": 10.0,
-            "y": 165.0
-          }
-        ]
+        "name": "unnamedWire#60",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "WE"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 850.0
-          },
-          {
-            "x": 15.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#61",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B0"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 450.0
-          },
-          {
-            "x": 5.0,
-            "y": 155.0
-          }
-        ]
+        "name": "unnamedWire#62",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA3"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#99",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 355.0
-          },
-          {
-            "x": 140.0,
-            "y": 350.0
-          }
-        ]
+        "name": "unnamedWire#64",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "D2"
+          "compName": "GUIram2#3",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "D1"
+          "compName": "GUIram2#3",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
+          "compName": "GUIram2#3",
           "pinName": "D3"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#67",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C4"
+          "compName": "GUIram2#3",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#132",
-        "path": [
-          {
-            "x": 195.0,
-            "y": 360.0
-          },
-          {
-            "x": 195.0,
-            "y": 415.0
-          },
-          {
-            "x": 135.0,
-            "y": 415.0
-          },
-          {
-            "x": 135.0,
-            "y": 470.0
-          }
-        ]
+        "name": "unnamedWire#68",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#133",
+        "name": "unnamedWire#69",
         "path": [
           {
-            "x": 210.0,
-            "y": 440.0
-          },
-          {
-            "x": 210.0,
-            "y": 580.0
-          },
-          {
-            "x": 150.0,
-            "y": 580.0
-          },
-          {
-            "x": 150.0,
-            "y": 590.0
+            "x": 60.0,
+            "y": 950.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y2"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y11"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C2"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#130",
-        "path": [
-          {
-            "x": 205.0,
-            "y": 340.0
-          },
-          {
-            "x": 205.0,
-            "y": 425.0
-          },
-          {
-            "x": 145.0,
-            "y": 425.0
-          },
-          {
-            "x": 145.0,
-            "y": 450.0
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C3"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#70",
         "path": [
           {
-            "x": 200.0,
-            "y": 350.0
-          },
-          {
-            "x": 200.0,
-            "y": 420.0
-          },
-          {
-            "x": 140.0,
-            "y": 420.0
-          },
-          {
-            "x": 140.0,
-            "y": 460.0
+            "x": 65.0,
+            "y": 1050.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y4"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C4"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#136",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 195.0,
-            "y": 470.0
-          },
-          {
-            "x": 195.0,
-            "y": 565.0
-          },
-          {
-            "x": 135.0,
-            "y": 565.0
-          },
-          {
-            "x": 135.0,
-            "y": 620.0
+            "x": 70.0,
+            "y": 1150.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#137",
+        "name": "unnamedWire#72",
         "path": [
           {
-            "x": 210.0,
-            "y": 590.0
-          },
-          {
-            "x": 210.0,
-            "y": 730.0
-          },
-          {
-            "x": 150.0,
-            "y": 730.0
-          },
-          {
-            "x": 150.0,
-            "y": 740.0
+            "x": 75.0,
+            "y": 1250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y2"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C2"
+          "compName": "GUIand41#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#134",
+        "name": "unnamedWire#73",
         "path": [
           {
-            "x": 205.0,
-            "y": 450.0
-          },
-          {
-            "x": 205.0,
-            "y": 575.0
-          },
-          {
-            "x": 145.0,
-            "y": 575.0
+            "x": 135.0,
+            "y": 50.0
           },
           {
-            "x": 145.0,
-            "y": 600.0
+            "x": 135.0,
+            "y": 370.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y3"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y01"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C3"
+          "compName": "GUIandor414#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#135",
+        "name": "unnamedWire#74",
         "path": [
           {
-            "x": 200.0,
-            "y": 460.0
-          },
-          {
-            "x": 200.0,
-            "y": 570.0
-          },
-          {
-            "x": 140.0,
-            "y": 570.0
+            "x": 130.0,
+            "y": 60.0
           },
           {
-            "x": 140.0,
-            "y": 610.0
+            "x": 130.0,
+            "y": 520.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "name": "unnamedWire#61",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "D4"
-        },
-        "name": "unnamedWire#60",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUIdemux2#0",
+          "pinName": "Y10"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "name": "unnamedWire#63",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "GUIandor414#4",
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C2"
+          "pinName": "B"
         },
-        "name": "unnamedWire#138",
+        "name": "unnamedWire#75",
         "path": [
           {
-            "x": 205.0,
-            "y": 600.0
-          },
-          {
-            "x": 205.0,
-            "y": 725.0
-          },
-          {
-            "x": 145.0,
-            "y": 725.0
+            "x": 125.0,
+            "y": 70.0
           },
           {
-            "x": 145.0,
-            "y": 750.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "name": "unnamedWire#62",
-        "path": []
+            "x": 125.0,
+            "y": 670.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y3"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y11"
         },
         "pin2": {
           "compName": "GUIandor414#5",
-          "pinName": "C3"
+          "pinName": "B"
         },
-        "name": "unnamedWire#139",
+        "name": "unnamedWire#76",
         "path": [
           {
-            "x": 200.0,
-            "y": 610.0
-          },
-          {
-            "x": 200.0,
-            "y": 720.0
-          },
-          {
-            "x": 140.0,
-            "y": 720.0
+            "x": 120.0,
+            "y": 80.0
           },
           {
-            "x": 140.0,
-            "y": 760.0
+            "x": 120.0,
+            "y": 820.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D1"
+          "compName": "GUIand41#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#65",
-        "path": []
+        "name": "unnamedWire#77",
+        "path": [
+          {
+            "x": 230.0,
+            "y": 420.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#64",
-        "path": []
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 225.0,
+            "y": 570.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D3"
+          "compName": "GUIandor414#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#67",
-        "path": []
+        "name": "unnamedWire#79",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 720.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D2"
+          "compName": "GUIand41#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#66",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIandor414#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#80",
         "path": [
           {
-            "x": 60.0,
-            "y": 950.0
+            "x": 215.0,
+            "y": 870.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D4"
-        },
-        "name": "unnamedWire#68",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y1"
+          "compName": "GUIram2#0",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C1"
+          "compName": "GUIand41#1",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#121",
+        "name": "unnamedWire#81",
         "path": [
           {
-            "x": 305.0,
-            "y": 640.0
-          },
-          {
-            "x": 305.0,
-            "y": 745.0
-          },
-          {
-            "x": 245.0,
-            "y": 745.0
+            "x": 140.0,
+            "y": 375.0
           },
           {
-            "x": 245.0,
-            "y": 790.0
+            "x": 140.0,
+            "y": 380.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y2"
+          "compName": "GUIram2#0",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C2"
+          "compName": "GUIand41#1",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#122",
+        "name": "unnamedWire#82",
         "path": [
           {
-            "x": 300.0,
-            "y": 650.0
-          },
-          {
-            "x": 300.0,
-            "y": 740.0
-          },
-          {
-            "x": 240.0,
-            "y": 740.0
+            "x": 140.0,
+            "y": 385.0
           },
           {
-            "x": 240.0,
-            "y": 800.0
+            "x": 140.0,
+            "y": 390.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
-          "pinName": "Y4"
+          "compName": "GUIram2#0",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C4"
+          "compName": "GUIand41#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#120",
+        "name": "unnamedWire#83",
         "path": [
           {
-            "x": 290.0,
-            "y": 520.0
-          },
-          {
-            "x": 290.0,
-            "y": 580.0
-          },
-          {
-            "x": 230.0,
-            "y": 580.0
+            "x": 140.0,
+            "y": 395.0
           },
           {
-            "x": 230.0,
-            "y": 670.0
+            "x": 140.0,
+            "y": 400.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y1"
+          "compName": "GUIram2#0",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB1"
+          "compName": "GUIand41#1",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#84",
         "path": [
           {
-            "x": 330.0,
-            "y": 790.0
+            "x": 140.0,
+            "y": 405.0
           },
           {
-            "x": 330.0,
-            "y": 450.0
+            "x": 140.0,
+            "y": 410.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y2"
+          "compName": "GUIram2#1",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB2"
+          "compName": "GUIandor414#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#85",
         "path": [
           {
-            "x": 335.0,
-            "y": 800.0
+            "x": 140.0,
+            "y": 525.0
           },
           {
-            "x": 335.0,
-            "y": 550.0
+            "x": 140.0,
+            "y": 530.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D2"
+          "compName": "GUIram2#1",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#86",
         "path": [
           {
-            "x": 65.0,
-            "y": 1050.0
+            "x": 140.0,
+            "y": 535.0
+          },
+          {
+            "x": 140.0,
+            "y": 540.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y3"
+          "compName": "GUIram2#1",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C3"
+          "compName": "GUIandor414#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#123",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 660.0
-          },
-          {
-            "x": 295.0,
-            "y": 735.0
-          },
+        "name": "unnamedWire#87",
+        "path": [
           {
-            "x": 235.0,
-            "y": 735.0
+            "x": 140.0,
+            "y": 545.0
           },
           {
-            "x": 235.0,
-            "y": 810.0
+            "x": 140.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y4"
+          "compName": "GUIram2#1",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C4"
+          "compName": "GUIandor414#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#124",
+        "name": "unnamedWire#88",
         "path": [
           {
-            "x": 290.0,
-            "y": 670.0
-          },
-          {
-            "x": 290.0,
-            "y": 730.0
-          },
-          {
-            "x": 230.0,
-            "y": 730.0
+            "x": 140.0,
+            "y": 555.0
           },
           {
-            "x": 230.0,
-            "y": 820.0
+            "x": 140.0,
+            "y": 560.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D4"
+          "compName": "GUIram2#2",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#89",
         "path": [
           {
-            "x": 75.0,
-            "y": 1250.0
+            "x": 140.0,
+            "y": 675.0
+          },
+          {
+            "x": 140.0,
+            "y": 680.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C1"
+          "compName": "GUIand41#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#129",
+        "name": "unnamedWire#9",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QB2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#90",
         "path": [
           {
-            "x": 210.0,
-            "y": 330.0
-          },
-          {
-            "x": 210.0,
-            "y": 430.0
-          },
-          {
-            "x": 150.0,
-            "y": 430.0
+            "x": 140.0,
+            "y": 685.0
           },
           {
-            "x": 150.0,
-            "y": 440.0
+            "x": 140.0,
+            "y": 690.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D3"
+          "compName": "GUIram2#2",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#91",
         "path": [
           {
-            "x": 70.0,
-            "y": 1150.0
+            "x": 140.0,
+            "y": 695.0
+          },
+          {
+            "x": 140.0,
+            "y": 700.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y01"
+          "compName": "GUIram2#2",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "B"
+          "compName": "GUIandor414#1",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#92",
         "path": [
           {
-            "x": 130.0,
-            "y": 60.0
+            "x": 140.0,
+            "y": 705.0
           },
           {
-            "x": 130.0,
-            "y": 520.0
+            "x": 140.0,
+            "y": 710.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y3"
+          "compName": "GUIram2#3",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB3"
+          "compName": "GUIandor414#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#127",
+        "name": "unnamedWire#93",
         "path": [
           {
-            "x": 340.0,
-            "y": 810.0
+            "x": 140.0,
+            "y": 825.0
           },
           {
-            "x": 340.0,
-            "y": 650.0
+            "x": 140.0,
+            "y": 830.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y00"
+          "compName": "GUIram2#3",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "B"
+          "compName": "GUIandor414#2",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#94",
         "path": [
           {
-            "x": 135.0,
-            "y": 50.0
+            "x": 140.0,
+            "y": 835.0
           },
           {
-            "x": 135.0,
-            "y": 370.0
+            "x": 140.0,
+            "y": 840.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y4"
+          "compName": "GUIram2#3",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB4"
+          "compName": "GUIandor414#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#128",
+        "name": "unnamedWire#95",
         "path": [
           {
-            "x": 345.0,
-            "y": 820.0
+            "x": 140.0,
+            "y": 845.0
           },
           {
-            "x": 345.0,
-            "y": 750.0
+            "x": 140.0,
+            "y": 850.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y11"
+          "compName": "GUIram2#3",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "B"
+          "compName": "GUIandor414#2",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#96",
         "path": [
           {
-            "x": 120.0,
-            "y": 80.0
+            "x": 140.0,
+            "y": 855.0
           },
           {
-            "x": 120.0,
-            "y": 820.0
+            "x": 140.0,
+            "y": 860.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y10"
+          "compName": "GUIram2#0",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "B"
+          "compName": "GUIand41#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#97",
         "path": [
           {
-            "x": 125.0,
-            "y": 70.0
+            "x": 140.0,
+            "y": 335.0
           },
           {
-            "x": 125.0,
-            "y": 670.0
+            "x": 140.0,
+            "y": 330.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIram2#0",
+          "pinName": "QA2"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "B"
+          "compName": "GUIand41#2",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#98",
         "path": [
           {
-            "x": 225.0,
-            "y": 570.0
+            "x": 140.0,
+            "y": 345.0
+          },
+          {
+            "x": 140.0,
+            "y": 340.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIram2#0",
+          "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "B"
+          "compName": "GUIand41#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#99",
         "path": [
           {
-            "x": 230.0,
-            "y": 420.0
+            "x": 140.0,
+            "y": 355.0
+          },
+          {
+            "x": 140.0,
+            "y": 350.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIram4",
     "centerTextHeight": 5.0,
@@ -3339,141 +3360,141 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {
       "c00": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#0"
         }
       },
       "c11": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#3"
         }
       },
       "c10": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#2"
         }
       },
       "c01": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#1"
         }
       },
       "c1000": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#0",
           "prefix": "c10"
         }
       },
       "c1011": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#3",
           "prefix": "c10"
         }
       },
       "c1110": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#2",
           "prefix": "c11"
         }
       },
       "c1001": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#1",
           "prefix": "c10"
         }
       },
       "c1100": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#0",
           "prefix": "c11"
         }
       },
       "c1111": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#3",
           "prefix": "c11"
         }
       },
       "c0000": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#0",
           "prefix": "c00"
         }
       },
       "c0011": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#3",
           "prefix": "c00"
         }
       },
       "c0110": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#2",
           "prefix": "c01"
         }
       },
       "c0010": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#2",
           "prefix": "c00"
         }
       },
       "c1010": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#2",
           "prefix": "c10"
         }
       },
       "c0101": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#1",
           "prefix": "c01"
         }
       },
       "c0001": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#1",
           "prefix": "c00"
         }
       },
       "c0100": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#0",
           "prefix": "c01"
         }
       },
       "c0111": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#3",
           "prefix": "c01"
         }
       },
       "c1101": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram2#1",
           "prefix": "c11"
@@ -3482,7 +3503,7 @@ mograsim version: 0.1.3
     },
     "atomicHighLevelStates": {
       "q": {
-        "id": "bitVectorSplitting",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler",
         "params": {
           "vectorPartTargets": [
             "c11.q",
@@ -3499,5 +3520,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 26a25cf..50c7005 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "I1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,15 +17,8 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "I2",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 5.0
-      },
-      "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +26,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,14 +35,24 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "S2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#1",
         "pos": {
           "x": 35.0,
@@ -57,65 +61,43 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 60.0,
-          "y": 40.0
+          "x": 35.0,
+          "y": 55.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 35.0,
-          "y": 55.0
+          "x": 60.0,
+          "y": 40.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#9"
-      },
-      {
-        "pin1": {
           "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#8"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I2"
-        },
-        "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 15.0,
-            "y": 87.5
+            "x": 25.0,
+            "y": 12.5
           },
           {
-            "x": 15.0,
-            "y": 70.0
+            "x": 25.0,
+            "y": 35.0
           }
         ]
       },
@@ -142,60 +124,83 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "S1"
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#10"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 25.0,
-            "y": 12.5
+            "y": 62.5
           },
           {
             "x": 25.0,
-            "y": 35.0
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I1"
+          "pinName": "I2"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 25.0,
-            "y": 62.5
+            "x": 15.0,
+            "y": 87.5
           },
           {
-            "x": 25.0,
-            "y": 45.0
+            "x": 15.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#8"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
-        "name": "unnamedWire#10"
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIsel1",
     "centerTextHeight": 5.0,
@@ -203,6 +208,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index ef71748..f84c205 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 100.0,
@@ -6,50 +5,56 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 25.0
       },
-      "name": "SA",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 35.0
       },
-      "name": "SB",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 45.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 55.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 65.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 75.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,31 +62,35 @@ mograsim version: 0.1.3
         "y": 85.0
       },
       "name": "B3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 95.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 5.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "SA",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "SB",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,7 +98,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -97,7 +107,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -105,7 +116,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -113,23 +125,15 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 20.0,
-          "y": 52.5
-        },
-        "params": 1
-      },
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 20.0,
@@ -138,25 +142,25 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 20.0,
-          "y": 152.5
+          "y": 52.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 20.0,
-          "y": 102.5
+          "x": 65.0,
+          "y": 52.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#11",
         "pos": {
           "x": 65.0,
@@ -165,70 +169,70 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 65.0,
-          "y": 52.5
+          "x": 20.0,
+          "y": 102.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 6.5,
-          "y": 66.5
+          "x": 20.0,
+          "y": 152.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 6.5,
-          "y": 16.5
+          "x": 20.0,
+          "y": 27.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 4.0,
-          "y": 41.5
+          "x": 20.0,
+          "y": 77.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 6.5,
-          "y": 116.5
+          "x": 20.0,
+          "y": 127.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 4.0,
-          "y": 141.5
+          "x": 20.0,
+          "y": 177.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 4.0,
-          "y": 91.5
+          "x": 65.0,
+          "y": 2.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#9",
         "pos": {
           "x": 65.0,
@@ -237,62 +241,135 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 65.0,
-          "y": 2.5
+          "x": 6.5,
+          "y": 16.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 20.0,
-          "y": 77.5
+          "x": 6.5,
+          "y": 66.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 20.0,
-          "y": 27.5
+          "x": 6.5,
+          "y": 116.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 20.0,
-          "y": 177.5
+          "x": 4.0,
+          "y": 41.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 20.0,
-          "y": 127.5
+          "x": 4.0,
+          "y": 91.5
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 4.0,
+          "y": 141.5
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 62.5
+          },
+          {
+            "x": 15.0,
+            "y": 7.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 17.5,
+            "y": 87.5
+          },
+          {
+            "x": 17.5,
+            "y": 57.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
-        "name": "unnamedWire#14"
+        "name": "unnamedWire#11"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#12"
       },
       {
         "pin1": {
@@ -307,14 +384,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16"
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
@@ -335,14 +412,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#18"
+        "name": "unnamedWire#16"
       },
       {
         "pin1": {
@@ -355,6 +432,17 @@ mograsim version: 0.1.3
         },
         "name": "unnamedWire#17"
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18"
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#4",
@@ -368,18 +456,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 5.0,
-            "y": 192.5
+            "x": 17.5,
+            "y": 112.5
+          },
+          {
+            "x": 17.5,
+            "y": 107.5
           }
         ]
       },
@@ -396,22 +488,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": [
           {
-            "x": 45.0,
-            "y": 37.5
-          },
-          {
-            "x": 45.0,
-            "y": 17.5
+            "x": 5.0,
+            "y": 192.5
           }
         ]
       },
@@ -438,22 +526,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 50.0,
-            "y": 87.5
+            "x": 45.0,
+            "y": 37.5
           },
           {
-            "x": 50.0,
-            "y": 42.5
+            "x": 45.0,
+            "y": 17.5
           }
         ]
       },
@@ -480,22 +568,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 55.0,
-            "y": 137.5
+            "x": 50.0,
+            "y": 87.5
           },
           {
-            "x": 55.0,
-            "y": 67.5
+            "x": 50.0,
+            "y": 42.5
           }
         ]
       },
@@ -522,22 +610,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#6",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#10",
           "pinName": "B"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 60.0,
-            "y": 187.5
+            "x": 55.0,
+            "y": 137.5
           },
           {
-            "x": 60.0,
-            "y": 92.5
+            "x": 55.0,
+            "y": 67.5
           }
         ]
       },
@@ -564,107 +652,43 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SB"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#9"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SA"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#8"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B4"
-        },
-        "pin2": {
           "compName": "GUINandGate#7",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#7",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 237.5
-          },
-          {
-            "x": 10.0,
-            "y": 182.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B3"
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "GUINandGate#11",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 15.0,
-            "y": 212.5
+            "x": 60.0,
+            "y": 187.5
           },
           {
-            "x": 15.0,
-            "y": 132.5
+            "x": 60.0,
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 17.5,
-            "y": 87.5
+            "y": 137.5
           },
           {
             "x": 17.5,
-            "y": 57.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 62.5
-          },
-          {
-            "x": 15.0,
-            "y": 7.5
+            "y": 157.5
           }
         ]
       },
@@ -682,46 +706,38 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#5",
-        "path": [
-          {
-            "x": 12.5,
-            "y": 187.5
-          },
-          {
-            "x": 12.5,
-            "y": 82.5
-          }
-        ]
+        "name": "unnamedWire#31",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#10"
+        "name": "unnamedWire#32",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
+          "compName": "GUINandGate#11",
           "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
@@ -745,97 +761,95 @@ mograsim version: 0.1.3
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
-        },
-        "name": "unnamedWire#31",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#5",
           "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 17.5,
-            "y": 137.5
+            "x": 12.5,
+            "y": 187.5
           },
           {
-            "x": 17.5,
-            "y": 157.5
+            "x": 12.5,
+            "y": 82.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#12"
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 212.5
+          },
+          {
+            "x": 15.0,
+            "y": 132.5
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A3"
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#7",
           "pinName": "A"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 17.5,
-            "y": 112.5
+            "x": 10.0,
+            "y": 237.5
           },
           {
-            "x": 17.5,
-            "y": 107.5
+            "x": 10.0,
+            "y": 182.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SA"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#11"
+        "name": "unnamedWire#8"
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "SB"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
-        "path": []
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIsel2_4",
     "centerTextHeight": 5.0,
@@ -843,5 +857,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 494332c..951c0e8 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 150.0,
@@ -6,90 +5,101 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 35.0
       },
-      "name": "SA",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 115.0
+        "y": 45.0
       },
-      "name": "C1",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 55.0
       },
-      "name": "SB",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 65.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 125.0
+        "y": 75.0
       },
-      "name": "C2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 85.0
       },
-      "name": "SC",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 95.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 105.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 135.0
+        "y": 115.0
       },
-      "name": "C3",
-      "logicWidth": 1
+      "name": "C1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 125.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "C2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 135.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "C3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -97,31 +107,35 @@ mograsim version: 0.1.3
         "y": 145.0
       },
       "name": "C4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 5.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "SA",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 105.0
+        "y": 15.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "SB",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 25.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "SC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -129,7 +143,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -137,7 +152,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -145,7 +161,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -153,23 +170,15 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 50.0,
-          "y": 620.0
-        },
-        "params": 1
-      },
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 50.0,
@@ -178,16 +187,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 50.0,
-          "y": 720.0
+          "y": 620.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#2",
         "pos": {
           "x": 50.0,
@@ -196,49 +205,58 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUInot4",
-        "name": "GUInot4#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 75.0,
-          "y": 250.0
-        }
+          "x": 50.0,
+          "y": 720.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 29.0,
-          "y": 634.0
+          "x": 152.5,
+          "y": 15.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 29.0,
-          "y": 584.0
+          "x": 152.5,
+          "y": 65.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 29.0,
-          "y": 684.0
+          "x": 152.5,
+          "y": 115.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
           "x": 152.5,
-          "y": 65.0
+          "y": 165.0
         },
         "params": 1
       },
+      {
+        "id": "GUInot4",
+        "name": "GUInot4#0",
+        "pos": {
+          "x": 75.0,
+          "y": 250.0
+        }
+      },
       {
         "id": "GUIsel2_4",
         "name": "GUIsel2_4#0",
@@ -248,97 +266,134 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 152.5,
-          "y": 15.0
+          "x": 29.0,
+          "y": 584.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 152.5,
-          "y": 165.0
+          "x": 29.0,
+          "y": 634.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 152.5,
-          "y": 115.0
+          "x": 29.0,
+          "y": 684.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "SC"
+          "pinName": "SA"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 30.0,
-            "y": 125.0
+            "x": 25.0,
+            "y": 25.0
+          },
+          {
+            "x": 25.0,
+            "y": 255.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "SB"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIsel2_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#36",
-        "path": []
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 75.0
+          },
+          {
+            "x": 20.0,
+            "y": 265.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "GUIsel2_4#0",
-          "pinName": "Y4"
+          "pinName": "Y1"
         },
         "pin2": {
           "compName": "GUInot4#0",
-          "pinName": "A4"
+          "pinName": "A1"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
+          "compName": "GUInot4#0",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel2_4#0",
           "pinName": "Y3"
         },
-        "name": "unnamedWire#35",
+        "pin2": {
+          "compName": "GUInot4#0",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "GUInot4#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "SC"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
             "x": 30.0,
@@ -360,14 +415,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": [
           {
             "x": 30.0,
@@ -387,6 +442,23 @@ mograsim version: 0.1.3
         "name": "unnamedWire#17",
         "path": []
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 125.0
+          }
+        ]
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#2",
@@ -402,14 +474,23 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C1"
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#21",
-        "path": []
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 175.0
+          },
+          {
+            "x": 15.0,
+            "y": 275.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -431,13 +512,13 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C3"
+          "pinName": "C1"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
@@ -454,24 +535,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUInot4#0",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "C3"
         },
         "pin2": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 255.0
-          },
-          {
-            "x": 115.0,
-            "y": 20.0
-          }
-        ]
+        "name": "unnamedWire#23",
+        "path": []
       },
       {
         "pin1": {
@@ -488,21 +560,21 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUInot4#0",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 125.0,
-            "y": 275.0
+            "x": 115.0,
+            "y": 255.0
           },
           {
-            "x": 125.0,
-            "y": 120.0
+            "x": 115.0,
+            "y": 20.0
           }
         ]
       },
@@ -529,22 +601,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUInot4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "B"
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 135.0,
-            "y": 580.0
+            "x": 125.0,
+            "y": 275.0
           },
           {
-            "x": 135.0,
-            "y": 30.0
+            "x": 125.0,
+            "y": 120.0
           }
         ]
       },
@@ -571,204 +643,156 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B4"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B4"
+          "compName": "GUINandGate#4",
+          "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 25.0,
-            "y": 525.0
+            "x": 135.0,
+            "y": 580.0
           },
           {
-            "x": 25.0,
-            "y": 345.0
+            "x": 135.0,
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B3"
+          "pinName": "A2"
         },
         "pin2": {
           "compName": "GUIsel2_4#0",
-          "pinName": "B3"
+          "pinName": "A2"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 20.0,
-            "y": 475.0
+            "x": 10.0,
+            "y": 225.0
           },
           {
-            "x": 20.0,
-            "y": 335.0
+            "x": 10.0,
+            "y": 285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B2"
+          "compName": "GUINandGate#5",
+          "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 15.0,
-            "y": 425.0
+            "x": 140.0,
+            "y": 630.0
           },
           {
-            "x": 15.0,
-            "y": 325.0
+            "x": 140.0,
+            "y": 80.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B1"
+          "compName": "GUINandGate#6",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 10.0,
-            "y": 375.0
+            "x": 145.0,
+            "y": 680.0
           },
           {
-            "x": 10.0,
-            "y": 315.0
+            "x": 145.0,
+            "y": 130.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SB"
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SB"
+          "compName": "GUINandGate#7",
+          "pinName": "B"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 20.0,
-            "y": 75.0
+            "x": 150.0,
+            "y": 730.0
           },
           {
-            "x": 20.0,
-            "y": 265.0
+            "x": 150.0,
+            "y": 180.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SA"
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SA"
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 25.0
-          },
-          {
-            "x": 25.0,
-            "y": 255.0
-          }
-        ]
+        "name": "unnamedWire#33",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#30",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 630.0
-          },
-          {
-            "x": 140.0,
-            "y": 80.0
-          }
-        ]
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A4"
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#5",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 325.0
-          },
-          {
-            "x": 5.0,
-            "y": 305.0
-          }
-        ]
+        "name": "unnamedWire#34",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y1"
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUInot4#0",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#7",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#32",
-        "path": [
-          {
-            "x": 150.0,
-            "y": 730.0
-          },
-          {
-            "x": 150.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#36",
+        "path": []
       },
       {
         "pin1": {
@@ -793,118 +817,113 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "B"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 145.0,
-            "y": 680.0
+            "x": 5.0,
+            "y": 325.0
           },
           {
-            "x": 145.0,
-            "y": 130.0
+            "x": 5.0,
+            "y": 305.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "B1"
         },
         "pin2": {
           "compName": "GUIsel2_4#0",
-          "pinName": "A2"
+          "pinName": "B1"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#6",
         "path": [
           {
             "x": 10.0,
-            "y": 225.0
+            "y": 375.0
           },
           {
             "x": 10.0,
-            "y": 285.0
+            "y": 315.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "GUInot4#0",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y2"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "B2"
         },
         "pin2": {
           "compName": "GUIsel2_4#0",
-          "pinName": "A1"
+          "pinName": "B2"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 15.0,
-            "y": 175.0
+            "y": 425.0
           },
           {
             "x": 15.0,
-            "y": 275.0
+            "y": 325.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "GUInot4#0",
-          "pinName": "A2"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 475.0
+          },
+          {
+            "x": 20.0,
+            "y": 335.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#33",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 525.0
+          },
+          {
+            "x": 25.0,
+            "y": 345.0
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIsel3_4",
     "centerTextHeight": 5.0,
@@ -912,5 +931,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 82b991e..d6c8de1 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,14 +26,24 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 7.5,
+          "y": 15.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#1",
         "pos": {
           "x": 35.0,
@@ -41,16 +52,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 7.5,
-          "y": 15.0
+          "x": 35.0,
+          "y": 27.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#3",
         "pos": {
           "x": 62.5,
@@ -59,34 +70,25 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 36.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
-        "pos": {
-          "x": 35.0,
-          "y": 27.5
+          "y": 11.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 36.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 29.0,
@@ -95,34 +97,52 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B"
+        },
+        "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "pin2": {
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 42.5
-          }
-        ]
+        "name": "unnamedWire#10"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#11"
       },
       {
         "pin1": {
@@ -130,57 +150,44 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#2",
         "path": [
           {
             "x": 5.0,
-            "y": 7.5
+            "y": 20.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 30.0,
-            "y": 32.5
+            "x": 5.0,
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#4"
       },
       {
         "pin1": {
@@ -201,74 +208,70 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#10"
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4"
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 32.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 5.0,
-            "y": 30.0
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 5.0,
-            "y": 20.0
+            "y": 42.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11"
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIxor",
     "centerTextHeight": 5.0,
@@ -276,5 +279,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 81536b1..ed2ced9 100644 (file)
@@ -1,87 +1,87 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 270.0,
   "interfacePins": [
-    {
-      "location": {
-        "x": 35.0,
-        "y": 85.0
-      },
-      "name": "ORAMn",
-      "logicWidth": 1
-    },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 155.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "A0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 265.0
+        "y": 165.0
       },
-      "name": "IQn+3",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 175.0
       },
-      "name": "I0",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 255.0
+        "y": 185.0
       },
-      "name": "IQn",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 195.0
       },
-      "name": "I1",
-      "logicWidth": 1
+      "name": "B0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 205.0
       },
-      "name": "I2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 215.0
       },
-      "name": "I3",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 65.0
+        "x": 0.0,
+        "y": 225.0
       },
-      "name": "OVR",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 95.0
       },
-      "name": "I4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,199 +89,233 @@ mograsim version: 0.1.3
         "y": 105.0
       },
       "name": "Cn",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 115.0
+        "y": 55.0
       },
-      "name": "OQn+3",
-      "logicWidth": 1
+      "name": "Cn+4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 115.0
       },
-      "name": "I5",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 125.0
       },
-      "name": "I6",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 105.0
+        "x": 0.0,
+        "y": 135.0
       },
-      "name": "OQn",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 145.0
       },
-      "name": "I7",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 75.0
       },
-      "name": "I8",
-      "logicWidth": 1
+      "name": "F3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 155.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "A0",
-      "logicWidth": 1
+      "name": "F\u003d0",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 165.0
+        "y": 85.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "I0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 175.0
+        "y": 75.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "I1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 185.0
+        "y": 65.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "I2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 235.0
+        "y": 55.0
       },
-      "name": "IRAMn",
-      "logicWidth": 1
+      "name": "I3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "Cn+4",
-      "logicWidth": 1
+      "name": "I4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 95.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "ORAMn+3",
-      "logicWidth": 1
+      "name": "I5",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "F\u003d0",
-      "logicWidth": 1
+      "name": "I6",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 115.0
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "I7",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 245.0
+        "y": 5.0
       },
-      "name": "IRAMn+3",
-      "logicWidth": 1
+      "name": "I8",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 75.0
+        "x": 0.0,
+        "y": 255.0
       },
-      "name": "F3",
-      "logicWidth": 1
+      "name": "IQn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 125.0
+        "y": 265.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "IQn+3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 195.0
+        "y": 235.0
       },
-      "name": "B0",
-      "logicWidth": 1
+      "name": "IRAMn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 135.0
+        "y": 245.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "IRAMn+3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 205.0
+        "x": 35.0,
+        "y": 105.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "OQn",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 145.0
+        "x": 35.0,
+        "y": 115.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "OQn+3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 215.0
+        "x": 35.0,
+        "y": 85.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "ORAMn",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 225.0
+        "x": 35.0,
+        "y": 95.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "ORAMn+3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 65.0
+      },
+      "name": "OVR",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -289,7 +323,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -297,7 +332,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -305,7 +341,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -313,330 +350,337 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "GUIsel3_4",
-        "name": "GUIsel3_4#0",
+        "id": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
+        "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
         "pos": {
-          "x": 45.0,
-          "y": 2310.0
+          "x": 240.0,
+          "y": 2110.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
-        "pos": {
-          "x": 144.0,
-          "y": 2524.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIsel3_4",
-        "name": "GUIsel3_4#1",
+        "id": "GUIAm2901DestDecode",
+        "name": "GUIAm2901DestDecode#0",
         "pos": {
-          "x": 45.0,
-          "y": 2510.0
+          "x": 15.0,
+          "y": 45.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 139.0,
-          "y": 2514.0
+          "x": 160.0,
+          "y": 75.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 234.0,
-          "y": 2524.0
+          "x": 320.0,
+          "y": 440.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUIand",
+        "name": "GUIand#0",
         "pos": {
-          "x": 219.0,
-          "y": 2494.0
-        },
-        "params": 1
+          "x": 190.0,
+          "y": 65.0
+        }
       },
       {
-        "id": "GUIAm2901DestDecode",
-        "name": "GUIAm2901DestDecode#0",
+        "id": "GUIdff4",
+        "name": "GUIdff4#0",
         "pos": {
-          "x": 15.0,
-          "y": 45.0
+          "x": 90.0,
+          "y": 2490.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#0",
         "pos": {
-          "x": 39.0,
-          "y": 2634.0
-        },
-        "params": 1
+          "x": 160.0,
+          "y": 2220.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#1",
         "pos": {
-          "x": 34.0,
-          "y": 2624.0
-        },
-        "params": 1
+          "x": 160.0,
+          "y": 2275.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "id": "GUImux1_4",
+        "name": "GUImux1_4#0",
         "pos": {
-          "x": 279.0,
-          "y": 2114.0
-        },
-        "params": 1
+          "x": 275.0,
+          "y": 135.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 154.0,
-          "y": 89.0
-        },
-        "params": 1
+        "id": "GUIor4",
+        "name": "GUIor4#0",
+        "pos": {
+          "x": 275.0,
+          "y": 445.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUIram4",
+        "name": "GUIram4#0",
         "pos": {
-          "x": 154.0,
-          "y": 949.0
-        },
-        "params": 1
+          "x": 95.0,
+          "y": 2220.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#0",
+        "pos": {
+          "x": 45.0,
+          "y": 2310.0
+        }
+      },
+      {
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#1",
+        "pos": {
+          "x": 45.0,
+          "y": 2510.0
+        }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 154.0,
-          "y": 2319.0
+          "y": 949.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 154.0,
-          "y": 2264.0
+          "y": 89.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 34.0,
-          "y": 2324.0
+          "x": 234.0,
+          "y": 2254.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 39.0,
-          "y": 2314.0
+          "x": 129.0,
+          "y": 2494.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 219.0,
-          "y": 2224.0
+          "x": 134.0,
+          "y": 2504.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 29.0,
-          "y": 2334.0
+          "x": 139.0,
+          "y": 2514.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 229.0,
-          "y": 2244.0
+          "x": 144.0,
+          "y": 2524.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 224.0,
-          "y": 2234.0
+          "x": 219.0,
+          "y": 2494.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
           "x": 234.0,
-          "y": 2254.0
+          "y": 2524.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 134.0,
-          "y": 2504.0
+          "x": 34.0,
+          "y": 2624.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 129.0,
-          "y": 2494.0
+          "x": 39.0,
+          "y": 2634.0
         },
         "params": 1
       },
       {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 160.0,
-          "y": 2275.0
-        }
+          "x": 279.0,
+          "y": 2114.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 160.0,
-          "y": 2220.0
-        }
+          "x": 154.0,
+          "y": 2264.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#40",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 314.0,
-          "y": 449.0
+          "x": 294.0,
+          "y": 2144.0
         },
         "params": 1
       },
       {
-        "id": "GUIdff4",
-        "name": "GUIdff4#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 90.0,
-          "y": 2490.0
-        }
+          "x": 329.0,
+          "y": 949.0
+        },
+        "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "pos": {
-          "x": 320.0,
-          "y": 440.0
+          "x": 254.0,
+          "y": 2089.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#36",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#23",
         "pos": {
-          "x": 9.0,
-          "y": 2384.0
+          "x": 259.0,
+          "y": 2094.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 160.0,
-          "y": 75.0
+          "x": 264.0,
+          "y": 2099.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#35",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "pos": {
-          "x": 24.0,
-          "y": 2414.0
+          "x": 269.0,
+          "y": 2104.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#38",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 19.0,
-          "y": 2434.0
+          "x": 254.0,
+          "y": 449.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#37",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#27",
         "pos": {
-          "x": 14.0,
-          "y": 2424.0
+          "x": 259.0,
+          "y": 459.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#39",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#28",
         "pos": {
-          "x": 24.0,
-          "y": 2444.0
+          "x": 264.0,
+          "y": 469.0
         },
         "params": 1
       },
       {
-        "id": "GUIand",
-        "name": "GUIand#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#29",
         "pos": {
-          "x": 190.0,
-          "y": 65.0
-        }
+          "x": 269.0,
+          "y": 479.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "GUImux1_4#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 275.0,
-          "y": 135.0
-        }
+          "x": 154.0,
+          "y": 2319.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#30",
         "pos": {
           "x": 9.0,
@@ -645,7 +689,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#31",
+        "pos": {
+          "x": 14.0,
+          "y": 2364.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#32",
         "pos": {
           "x": 19.0,
@@ -654,16 +707,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#31",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#33",
         "pos": {
           "x": 14.0,
-          "y": 2364.0
+          "y": 2394.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#34",
         "pos": {
           "x": 19.0,
@@ -672,790 +725,770 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#33",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#35",
         "pos": {
-          "x": 14.0,
-          "y": 2394.0
+          "x": 24.0,
+          "y": 2414.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#25",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#36",
         "pos": {
-          "x": 269.0,
-          "y": 2104.0
+          "x": 9.0,
+          "y": 2384.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#37",
         "pos": {
-          "x": 264.0,
-          "y": 2099.0
+          "x": 14.0,
+          "y": 2424.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#27",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#38",
         "pos": {
-          "x": 259.0,
-          "y": 459.0
+          "x": 19.0,
+          "y": 2434.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#39",
         "pos": {
-          "x": 254.0,
-          "y": 449.0
+          "x": 24.0,
+          "y": 2444.0
         },
         "params": 1
       },
       {
-        "id": "GUIor4",
-        "name": "GUIor4#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 275.0,
-          "y": 445.0
-        }
+          "x": 39.0,
+          "y": 2314.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#29",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#40",
         "pos": {
-          "x": 269.0,
-          "y": 479.0
+          "x": 314.0,
+          "y": 449.0
         },
         "params": 1
       },
       {
-        "id": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
-        "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 240.0,
-          "y": 2110.0
-        }
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#28",
-        "pos": {
-          "x": 264.0,
-          "y": 469.0
+          "x": 34.0,
+          "y": 2324.0
         },
         "params": 1
       },
       {
-        "id": "GUIram4",
-        "name": "GUIram4#0",
-        "pos": {
-          "x": 95.0,
-          "y": 2220.0
-        }
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 329.0,
-          "y": 949.0
+          "x": 29.0,
+          "y": 2334.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 294.0,
-          "y": 2144.0
+          "x": 219.0,
+          "y": 2224.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 259.0,
-          "y": 2094.0
+          "x": 224.0,
+          "y": 2234.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 254.0,
-          "y": 2089.0
+          "x": 229.0,
+          "y": 2244.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA2"
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D2"
-        },
-        "name": "unnamedWire#36",
-        "path": []
-      },
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA1"
+          "compName": "_submodelinterface",
+          "pinName": "I8"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D1"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "I8"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA4"
+          "compName": "_submodelinterface",
+          "pinName": "I7"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D4"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "I7"
         },
-        "name": "unnamedWire#38",
-        "path": []
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 150.0
+          },
+          {
+            "x": 5.0,
+            "y": 60.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB1"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F3"
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#100",
         "path": [
           {
-            "x": 150.0,
-            "y": 2265.0
+            "x": 290.0,
+            "y": 2135.0
           },
           {
-            "x": 150.0,
-            "y": 2280.0
+            "x": 290.0,
+            "y": 2100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#101",
         "path": [
           {
-            "x": 255.0,
-            "y": 190.0
+            "x": 295.0,
+            "y": 2105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_2"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#111",
-        "path": [
-          {
-            "x": 260.0,
-            "y": 200.0
-          }
-        ]
+        "name": "unnamedWire#102",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
-        "name": "unnamedWire#114",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 2090.0
-          }
-        ]
+        "name": "unnamedWire#103",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
-        "name": "unnamedWire#115",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 2095.0
-          }
-        ]
+        "name": "unnamedWire#104",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
-        "name": "unnamedWire#112",
-        "path": [
-          {
-            "x": 265.0,
-            "y": 210.0
-          }
-        ]
+        "name": "unnamedWire#105",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_4"
+          "compName": "GUIor4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#113",
-        "path": [
-          {
-            "x": 270.0,
-            "y": 220.0
-          }
-        ]
+        "name": "unnamedWire#106",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
+          "compName": "GUIor4#0",
           "pinName": "A2"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#107",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
+          "compName": "GUIor4#0",
           "pinName": "A3"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#108",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D3"
+          "compName": "GUIor4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#109",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 140.0,
-            "y": 2285.0
-          },
-          {
-            "x": 140.0,
-            "y": 2300.0
+            "x": 155.0,
+            "y": 80.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#116",
+        "name": "unnamedWire#110",
         "path": [
           {
-            "x": 20.0,
-            "y": 2100.0
+            "x": 255.0,
+            "y": 190.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D2"
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#111",
         "path": [
           {
-            "x": 145.0,
-            "y": 2275.0
-          },
-          {
-            "x": 145.0,
-            "y": 2290.0
+            "x": 260.0,
+            "y": 200.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IRAMn"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A1"
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#112",
         "path": [
           {
-            "x": 5.0,
-            "y": 2350.0
-          },
-          {
-            "x": 5.0,
-            "y": 2345.0
+            "x": 265.0,
+            "y": 210.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Cn"
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#113",
         "path": [
           {
-            "x": 100.0,
-            "y": 1050.0
-          },
-          {
-            "x": 100.0,
-            "y": 2175.0
+            "x": 270.0,
+            "y": 220.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D4"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#114",
         "path": [
           {
-            "x": 135.0,
-            "y": 2295.0
-          },
-          {
-            "x": 135.0,
-            "y": 2310.0
+            "x": 10.0,
+            "y": 2090.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D2"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D2"
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#115",
         "path": [
           {
-            "x": 175.0,
-            "y": 1250.0
-          },
-          {
-            "x": 175.0,
-            "y": 2195.0
+            "x": 15.0,
+            "y": 2095.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#116",
         "path": [
           {
-            "x": 180.0,
-            "y": 1150.0
-          },
-          {
-            "x": 180.0,
-            "y": 2185.0
+            "x": 20.0,
+            "y": 2100.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D4"
+          "pinName": "IRAMn"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#117",
         "path": [
           {
-            "x": 165.0,
-            "y": 1450.0
+            "x": 5.0,
+            "y": 2350.0
           },
           {
-            "x": 165.0,
-            "y": 2215.0
+            "x": 5.0,
+            "y": 2345.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D3"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#46",
-        "path": [
-          {
-            "x": 170.0,
-            "y": 1350.0
-          },
-          {
-            "x": 170.0,
-            "y": 2205.0
-          }
-        ]
+        "name": "unnamedWire#118",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q2"
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#119",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F3"
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#100",
-        "path": [
-          {
-            "x": 290.0,
-            "y": 2135.0
-          },
-          {
-            "x": 290.0,
-            "y": 2100.0
-          }
-        ]
+        "name": "unnamedWire#120",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#121",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#122",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#123",
         "path": [
           {
-            "x": 295.0,
+            "x": 25.0,
             "y": 2105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#36",
           "pinName": ""
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#124",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q3"
+          "compName": "WireCrossPoint#36",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#125",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#126",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#127",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#52",
-        "path": [
-          {
-            "x": 220.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#128",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#37",
           "pinName": ""
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#129",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q4"
-        },
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#38",
+          "pinName": ""
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#130",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_3"
+          "compName": "WireCrossPoint#39",
+          "pinName": ""
         },
-        "name": "unnamedWire#54",
+        "name": "unnamedWire#131",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#37",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#132",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#38",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#133",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#39",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#134",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "IRAMn+3"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#135",
         "path": [
           {
-            "x": 230.0,
-            "y": 170.0
+            "x": 5.0,
+            "y": 2450.0
+          },
+          {
+            "x": 5.0,
+            "y": 2455.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#36",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_2"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#136",
         "path": [
           {
-            "x": 225.0,
-            "y": 160.0
+            "x": 10.0,
+            "y": 2585.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#37",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A1"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#56",
-        "path": []
+        "name": "unnamedWire#137",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 2595.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#38",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A4"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#109",
-        "path": []
+        "name": "unnamedWire#138",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 2605.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#39",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_4"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#55",
+        "name": "unnamedWire#139",
         "path": [
           {
-            "x": 235.0,
-            "y": 180.0
+            "x": 25.0,
+            "y": 2615.0
           }
         ]
       },
@@ -1473,1925 +1506,1931 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIram4#0",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#140",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "C"
+          "compName": "GUIram4#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#141",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIram4#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#142",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIram4#0",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#143",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIAm2901DestDecode#0",
-          "pinName": "LSH"
+          "pinName": "RAMWE"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#144",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIand#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#145"
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIram4#0",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#146",
         "path": [
           {
-            "x": 55.0,
-            "y": 90.0
+            "x": 230.0,
+            "y": 70.0
           },
           {
-            "x": 55.0,
-            "y": 125.0
+            "x": 230.0,
+            "y": 105.0
           },
           {
-            "x": 40.0,
-            "y": 125.0
+            "x": 90.0,
+            "y": 105.0
+          },
+          {
+            "x": 90.0,
+            "y": 2305.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "QWE"
         },
         "pin2": {
           "compName": "GUIdff4#0",
-          "pinName": "C"
+          "pinName": "WE"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#147",
         "path": [
           {
-            "x": 155.0,
-            "y": 2485.0
-          },
-          {
-            "x": 80.0,
-            "y": 2485.0
+            "x": 85.0,
+            "y": 100.0
           },
           {
-            "x": 80.0,
-            "y": 2495.0
+            "x": 85.0,
+            "y": 2505.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "GUIAm2901DestDecode#0",
-          "pinName": "NSH"
+          "pinName": "YF"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#148",
         "path": [
           {
-            "x": 60.0,
-            "y": 50.0
+            "x": 70.0,
+            "y": 80.0
           },
           {
-            "x": 60.0,
-            "y": 120.0
-          },
-          {
-            "x": 35.0,
-            "y": 120.0
+            "x": 70.0,
+            "y": 140.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SA"
-        },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "RSH"
+          "compName": "GUImux1_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#149",
         "path": [
           {
-            "x": 65.0,
-            "y": 60.0
-          },
-          {
-            "x": 65.0,
-            "y": 115.0
+            "x": 335.0,
+            "y": 140.0
           },
           {
-            "x": 30.0,
-            "y": 115.0
+            "x": 335.0,
+            "y": 50.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SC"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SB"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#150",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "SB"
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#151",
         "path": [
           {
-            "x": 35.0,
-            "y": 2525.0
+            "x": 335.0,
+            "y": 160.0
+          },
+          {
+            "x": 335.0,
+            "y": 250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "SA"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#152",
         "path": [
           {
-            "x": 40.0,
-            "y": 2515.0
+            "x": 325.0,
+            "y": 170.0
+          },
+          {
+            "x": 325.0,
+            "y": 350.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A0"
+          "compName": "GUIor4#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A0"
+          "compName": "WireCrossPoint#40",
+          "pinName": ""
         },
-        "name": "unnamedWire#27",
-        "path": [
-          {
-            "x": 80.0,
-            "y": 1550.0
-          },
-          {
-            "x": 80.0,
-            "y": 2225.0
-          }
-        ]
+        "name": "unnamedWire#153",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#40",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "SC"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#154",
         "path": [
           {
-            "x": 30.0,
-            "y": 2535.0
+            "x": 315.0,
+            "y": 445.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#40",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A2"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#155",
         "path": [
           {
-            "x": 70.0,
-            "y": 1750.0
-          },
-          {
-            "x": 70.0,
-            "y": 2245.0
+            "x": 315.0,
+            "y": 455.0
           }
         ]
       },
       {
         "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "F\u003d0"
+        },
+        "name": "unnamedWire#156",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A1"
+          "compName": "GUIdlatch4#1",
+          "pinName": "C"
         },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 75.0,
-            "y": 1650.0
-          },
-          {
-            "x": 75.0,
-            "y": 2235.0
-          }
-        ]
+        "name": "unnamedWire#16",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A3"
+          "compName": "GUIdff4#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 65.0,
-            "y": 1850.0
+            "x": 155.0,
+            "y": 2485.0
           },
           {
-            "x": 65.0,
-            "y": 2255.0
+            "x": 80.0,
+            "y": 2485.0
+          },
+          {
+            "x": 80.0,
+            "y": 2495.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "LSH"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 55.0,
-            "y": 2050.0
+            "y": 90.0
           },
           {
             "x": 55.0,
-            "y": 2275.0
+            "y": 125.0
+          },
+          {
+            "x": 40.0,
+            "y": 125.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B0"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "NSH"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B0"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#19",
         "path": [
           {
             "x": 60.0,
-            "y": 1950.0
+            "y": 50.0
           },
           {
             "x": 60.0,
-            "y": 2265.0
+            "y": 120.0
+          },
+          {
+            "x": 35.0,
+            "y": 120.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B3"
+          "pinName": "I6"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B3"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "I6"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 45.0,
-            "y": 2250.0
+            "x": 10.0,
+            "y": 250.0
           },
           {
-            "x": 45.0,
-            "y": 2295.0
+            "x": 10.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "RSH"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B2"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 50.0,
-            "y": 2150.0
+            "x": 65.0,
+            "y": 60.0
           },
           {
-            "x": 50.0,
-            "y": 2285.0
+            "x": 65.0,
+            "y": 115.0
+          },
+          {
+            "x": 30.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#79",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 2665.0
-          },
-          {
-            "x": 25.0,
-            "y": 2665.0
-          },
-          {
-            "x": 25.0,
-            "y": 2630.0
-          },
-          {
-            "x": 30.0,
-            "y": 2630.0
-          },
-          {
-            "x": 30.0,
-            "y": 2555.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#150",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#151",
+        "name": "unnamedWire#23",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#1",
+          "pinName": "SA"
+        },
+        "name": "unnamedWire#24",
         "path": [
           {
-            "x": 335.0,
-            "y": 160.0
-          },
-          {
-            "x": 335.0,
-            "y": 250.0
+            "x": 40.0,
+            "y": 2515.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#40",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "GUIsel3_4#1",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#154",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 315.0,
-            "y": 445.0
+            "x": 35.0,
+            "y": 2525.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#40",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUIsel3_4#1",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#155",
+        "name": "unnamedWire#26",
         "path": [
           {
-            "x": 315.0,
-            "y": 455.0
+            "x": 30.0,
+            "y": 2535.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y4"
+          "compName": "_submodelinterface",
+          "pinName": "A0"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIram4#0",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#152",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 325.0,
-            "y": 170.0
+            "x": 80.0,
+            "y": 1550.0
           },
           {
-            "x": 325.0,
-            "y": 350.0
+            "x": 80.0,
+            "y": 2225.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor4#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#40",
-          "pinName": ""
+          "compName": "GUIram4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#153",
-        "path": []
+        "name": "unnamedWire#28",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 1650.0
+          },
+          {
+            "x": 75.0,
+            "y": 2235.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q2"
+          "compName": "GUIram4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 225.0,
-            "y": 2505.0
+            "x": 70.0,
+            "y": 1750.0
           },
           {
-            "x": 225.0,
-            "y": 2315.0
+            "x": 70.0,
+            "y": 2245.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "F\u003d0"
-        },
-        "name": "unnamedWire#156",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "pinName": "I5"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q1"
+          "pinName": "I5"
         },
-        "name": "unnamedWire#80",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 220.0,
-            "y": 2305.0
+            "x": 130.0,
+            "y": 350.0
+          },
+          {
+            "x": 130.0,
+            "y": 2115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q4"
+          "compName": "GUIram4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#83",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 235.0,
-            "y": 2335.0
+            "x": 65.0,
+            "y": 1850.0
+          },
+          {
+            "x": 65.0,
+            "y": 2255.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B0"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q3"
+          "compName": "GUIram4#0",
+          "pinName": "B0"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 230.0,
-            "y": 2515.0
+            "x": 60.0,
+            "y": 1950.0
           },
           {
-            "x": 230.0,
-            "y": 2325.0
+            "x": 60.0,
+            "y": 2265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A4"
+          "compName": "GUIram4#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 40.0,
-            "y": 2575.0
+            "x": 55.0,
+            "y": 2050.0
+          },
+          {
+            "x": 55.0,
+            "y": 2275.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A3"
+          "compName": "GUIram4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#84",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 35.0,
-            "y": 2565.0
+            "x": 50.0,
+            "y": 2150.0
+          },
+          {
+            "x": 50.0,
+            "y": 2285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
-          "pinName": "D2"
+          "compName": "GUIram4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#87",
-        "path": []
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 2250.0
+          },
+          {
+            "x": 45.0,
+            "y": 2295.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y1"
+          "compName": "GUIram4#0",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
+          "compName": "GUIdlatch4#0",
           "pinName": "D1"
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y4"
+          "compName": "GUIram4#0",
+          "pinName": "QA2"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
-          "pinName": "D4"
+          "compName": "GUIdlatch4#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y3"
+          "compName": "GUIram4#0",
+          "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
+          "compName": "GUIdlatch4#0",
           "pinName": "D3"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y1"
-        },
-        "pin2": {
           "compName": "GUIram4#0",
-          "pinName": "D1"
-        },
-        "name": "unnamedWire#140",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "QA4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y4"
+          "compName": "GUIram4#0",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "D4"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#143",
-        "path": []
+        "name": "unnamedWire#39",
+        "path": [
+          {
+            "x": 150.0,
+            "y": 2265.0
+          },
+          {
+            "x": 150.0,
+            "y": 2280.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I0"
+          "pinName": "I4"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I0"
+          "pinName": "I4"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#4",
         "path": [
           {
-            "x": 105.0,
-            "y": 850.0
+            "x": 125.0,
+            "y": 450.0
           },
           {
-            "x": 105.0,
-            "y": 2165.0
+            "x": 125.0,
+            "y": 2125.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "RAMWE"
+          "compName": "GUIram4#0",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "A"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#144",
-        "path": []
+        "name": "unnamedWire#40",
+        "path": [
+          {
+            "x": 145.0,
+            "y": 2275.0
+          },
+          {
+            "x": 145.0,
+            "y": 2290.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
+          "compName": "GUIram4#0",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I1"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 110.0,
-            "y": 750.0
+            "x": 140.0,
+            "y": 2285.0
           },
           {
-            "x": 110.0,
-            "y": 2155.0
+            "x": 140.0,
+            "y": 2300.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y2"
+          "compName": "GUIram4#0",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "D2"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#141",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 135.0,
+            "y": 2295.0
+          },
+          {
+            "x": 135.0,
+            "y": 2310.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I2"
+          "pinName": "Cn"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I2"
+          "pinName": "Cn"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 115.0,
-            "y": 650.0
+            "x": 100.0,
+            "y": 1050.0
           },
           {
-            "x": 115.0,
-            "y": 2145.0
+            "x": 100.0,
+            "y": 2175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "D3"
-        },
-        "name": "unnamedWire#142",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Cn+4"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn+4"
+          "pinName": "D1"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 315.0,
-            "y": 2155.0
+            "x": 180.0,
+            "y": 1150.0
           },
           {
-            "x": 315.0,
-            "y": 550.0
+            "x": 180.0,
+            "y": 2185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "QWE"
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
-          "pinName": "WE"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#147",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 85.0,
-            "y": 100.0
+            "x": 175.0,
+            "y": 1250.0
           },
           {
-            "x": 85.0,
-            "y": 2505.0
+            "x": 175.0,
+            "y": 2195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "YF"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "S0"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#148",
+        "name": "unnamedWire#46",
         "path": [
           {
-            "x": 70.0,
-            "y": 80.0
+            "x": 170.0,
+            "y": 1350.0
           },
           {
-            "x": 70.0,
-            "y": 140.0
+            "x": 170.0,
+            "y": 2205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F1"
+          "compName": "_submodelinterface",
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
-        },
-        "name": "unnamedWire#92",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#145"
-      },
-      {
-        "pin1": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "OVR"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "OVR"
+          "pinName": "D4"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 320.0,
-            "y": 2165.0
+            "x": 165.0,
+            "y": 1450.0
           },
           {
-            "x": 320.0,
-            "y": 650.0
+            "x": 165.0,
+            "y": 2215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "WE"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#146",
-        "path": [
-          {
-            "x": 230.0,
-            "y": 70.0
-          },
-          {
-            "x": 230.0,
-            "y": 105.0
-          },
-          {
-            "x": 90.0,
-            "y": 105.0
-          },
-          {
-            "x": 90.0,
-            "y": 2305.0
-          }
-        ]
+        "name": "unnamedWire#48",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I7"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "I7"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 150.0
-          },
-          {
-            "x": 5.0,
-            "y": 60.0
-          }
-        ]
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "ORAMn"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#94",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 325.0,
-            "y": 2115.0
+            "x": 120.0,
+            "y": 550.0
           },
           {
-            "x": 325.0,
-            "y": 850.0
+            "x": 120.0,
+            "y": 2135.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I8"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "I8"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F4"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "ORAMn+3"
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#96",
-        "path": []
+        "name": "unnamedWire#52",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#149",
+        "name": "unnamedWire#53",
         "path": [
           {
-            "x": 335.0,
-            "y": 140.0
-          },
-          {
-            "x": 335.0,
-            "y": 50.0
+            "x": 225.0,
+            "y": 160.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#95",
+        "name": "unnamedWire#54",
         "path": [
           {
-            "x": 330.0,
-            "y": 2145.0
+            "x": 230.0,
+            "y": 170.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I3"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I3"
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#55",
         "path": [
           {
-            "x": 120.0,
-            "y": 550.0
-          },
-          {
-            "x": 120.0,
-            "y": 2135.0
+            "x": 235.0,
+            "y": 180.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#98",
-        "path": [
-          {
-            "x": 280.0,
-            "y": 2090.0
-          }
-        ]
+        "name": "unnamedWire#57",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I4"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I4"
+          "pinName": "A3"
         },
-        "name": "unnamedWire#4",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 450.0
-          },
-          {
-            "x": 125.0,
-            "y": 2125.0
-          }
-        ]
+        "name": "unnamedWire#58",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F3"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#97",
-        "path": [
-          {
-            "x": 330.0,
-            "y": 750.0
-          }
-        ]
+        "name": "unnamedWire#59",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I5"
+          "pinName": "I2"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I5"
+          "pinName": "I2"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 130.0,
-            "y": 350.0
+            "x": 115.0,
+            "y": 650.0
           },
           {
-            "x": 130.0,
-            "y": 2115.0
+            "x": 115.0,
+            "y": 2145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I6"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "I6"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#60",
         "path": [
           {
-            "x": 10.0,
-            "y": 250.0
+            "x": 200.0,
+            "y": 2280.0
           },
           {
-            "x": 10.0,
-            "y": 70.0
+            "x": 200.0,
+            "y": 2265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#61",
         "path": [
           {
-            "x": 155.0,
-            "y": 80.0
+            "x": 205.0,
+            "y": 2290.0
+          },
+          {
+            "x": 205.0,
+            "y": 2275.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F2"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#99",
+        "name": "unnamedWire#62",
         "path": [
           {
-            "x": 285.0,
-            "y": 2125.0
+            "x": 210.0,
+            "y": 2300.0
           },
           {
-            "x": 285.0,
-            "y": 2095.0
+            "x": 210.0,
+            "y": 2285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q4"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A3"
+          "pinName": "B4"
         },
-        "name": "unnamedWire#58",
-        "path": []
+        "name": "unnamedWire#63",
+        "path": [
+          {
+            "x": 215.0,
+            "y": 2310.0
+          },
+          {
+            "x": 215.0,
+            "y": 2295.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A2"
-        },
-        "name": "unnamedWire#57",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A4"
-        },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#37",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#132",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#38",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C2"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#133",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#34",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#38",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
-        "name": "unnamedWire#130",
+        "name": "unnamedWire#67",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#35",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#39",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#68",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#36",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "B1"
+          "compName": "_submodelinterface",
+          "pinName": "OQn"
         },
-        "name": "unnamedWire#136",
+        "name": "unnamedWire#69",
         "path": [
           {
-            "x": 10.0,
-            "y": 2585.0
+            "x": 335.0,
+            "y": 2495.0
+          },
+          {
+            "x": 335.0,
+            "y": 1050.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#37",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "B2"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#137",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 15.0,
-            "y": 2595.0
+            "x": 110.0,
+            "y": 750.0
+          },
+          {
+            "x": 110.0,
+            "y": 2155.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#39",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C3"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#134",
+        "name": "unnamedWire#70",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IRAMn+3"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C4"
+          "compName": "_submodelinterface",
+          "pinName": "OQn+3"
         },
-        "name": "unnamedWire#135",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 5.0,
-            "y": 2450.0
+            "x": 340.0,
+            "y": 2525.0
           },
           {
-            "x": 5.0,
-            "y": 2455.0
+            "x": 340.0,
+            "y": 1150.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q2"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B2"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#72",
         "path": [
           {
-            "x": 205.0,
-            "y": 2290.0
+            "x": 135.0,
+            "y": 2670.0
           },
           {
-            "x": 205.0,
-            "y": 2275.0
+            "x": 30.0,
+            "y": 2670.0
+          },
+          {
+            "x": 30.0,
+            "y": 2635.0
+          },
+          {
+            "x": 35.0,
+            "y": 2635.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q1"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#73",
         "path": [
           {
-            "x": 200.0,
-            "y": 2280.0
+            "x": 140.0,
+            "y": 2675.0
           },
           {
-            "x": 200.0,
-            "y": 2265.0
+            "x": 35.0,
+            "y": 2675.0
+          },
+          {
+            "x": 35.0,
+            "y": 2640.0
+          },
+          {
+            "x": 40.0,
+            "y": 2640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q4"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B4"
+          "compName": "GUIsel3_4#1",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#63",
-        "path": [
-          {
-            "x": 215.0,
-            "y": 2310.0
-          },
-          {
-            "x": 215.0,
-            "y": 2295.0
-          }
-        ]
+        "name": "unnamedWire#74",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#38",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIsel3_4#1",
-          "pinName": "B3"
+          "pinName": "C2"
         },
-        "name": "unnamedWire#138",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 2605.0
-          }
-        ]
+        "name": "unnamedWire#75",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q3"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B3"
+          "compName": "GUIsel3_4#1",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#76",
         "path": [
           {
-            "x": 210.0,
-            "y": 2300.0
+            "x": 145.0,
+            "y": 2680.0
           },
           {
-            "x": 210.0,
-            "y": 2285.0
+            "x": 40.0,
+            "y": 2680.0
+          },
+          {
+            "x": 40.0,
+            "y": 2645.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#39",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "IQn+3"
         },
         "pin2": {
           "compName": "GUIsel3_4#1",
-          "pinName": "B4"
+          "pinName": "C4"
         },
-        "name": "unnamedWire#139",
+        "name": "unnamedWire#77",
         "path": [
           {
-            "x": 25.0,
-            "y": 2615.0
+            "x": 5.0,
+            "y": 2650.0
+          },
+          {
+            "x": 5.0,
+            "y": 2655.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q2"
+          "compName": "_submodelinterface",
+          "pinName": "IQn"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#65",
-        "path": []
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 2550.0
+          },
+          {
+            "x": 5.0,
+            "y": 2545.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q1"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#64",
-        "path": []
+        "pin2": {
+          "compName": "GUIsel3_4#1",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#79",
+        "path": [
+          {
+            "x": 130.0,
+            "y": 2665.0
+          },
+          {
+            "x": 25.0,
+            "y": 2665.0
+          },
+          {
+            "x": 25.0,
+            "y": 2630.0
+          },
+          {
+            "x": 30.0,
+            "y": 2630.0
+          },
+          {
+            "x": 30.0,
+            "y": 2555.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q4"
+          "compName": "_submodelinterface",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#67",
-        "path": []
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 850.0
+          },
+          {
+            "x": 105.0,
+            "y": 2165.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#66",
-        "path": []
+        "name": "unnamedWire#80",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 2305.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "OQn"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q2"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#81",
         "path": [
           {
-            "x": 335.0,
-            "y": 2495.0
+            "x": 225.0,
+            "y": 2505.0
           },
           {
-            "x": 335.0,
-            "y": 1050.0
+            "x": 225.0,
+            "y": 2315.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q3"
         },
-        "name": "unnamedWire#68",
-        "path": []
+        "name": "unnamedWire#82",
+        "path": [
+          {
+            "x": 230.0,
+            "y": 2515.0
+          },
+          {
+            "x": 230.0,
+            "y": 2325.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q4"
         },
-        "name": "unnamedWire#121",
-        "path": []
+        "name": "unnamedWire#83",
+        "path": [
+          {
+            "x": 235.0,
+            "y": 2335.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#34",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#122",
-        "path": []
+        "name": "unnamedWire#84",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 2565.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
+          "compName": "GUIsel3_4#1",
           "pinName": "A4"
         },
-        "name": "unnamedWire#120",
-        "path": []
+        "name": "unnamedWire#85",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 2575.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#36",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B1"
+          "compName": "GUIdff4#0",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#86",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B2"
+          "compName": "GUIdff4#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#87",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#88",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#35",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#123",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 2105.0
-          }
-        ]
+        "name": "unnamedWire#89",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "WireCrossPoint#36",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#124",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Cn+4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Cn+4"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#90",
         "path": [
           {
-            "x": 135.0,
-            "y": 2670.0
-          },
-          {
-            "x": 30.0,
-            "y": 2670.0
-          },
-          {
-            "x": 30.0,
-            "y": 2635.0
+            "x": 315.0,
+            "y": 2155.0
           },
           {
-            "x": 35.0,
-            "y": 2635.0
+            "x": 315.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#37",
-          "pinName": ""
-        },
-        "name": "unnamedWire#129",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "OVR"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "OQn+3"
+          "pinName": "OVR"
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#91",
         "path": [
           {
-            "x": 340.0,
-            "y": 2525.0
+            "x": 320.0,
+            "y": 2165.0
           },
           {
-            "x": 340.0,
-            "y": 1150.0
+            "x": 320.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#92",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#34",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B3"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#127",
+        "name": "unnamedWire#93",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "ORAMn"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#94",
         "path": [
           {
-            "x": 140.0,
-            "y": 2675.0
-          },
-          {
-            "x": 35.0,
-            "y": 2675.0
-          },
-          {
-            "x": 35.0,
-            "y": 2640.0
+            "x": 325.0,
+            "y": 2115.0
           },
           {
-            "x": 40.0,
-            "y": 2640.0
+            "x": 325.0,
+            "y": 850.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#35",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B4"
-        },
-        "name": "unnamedWire#128",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C3"
-        },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#95",
         "path": [
           {
-            "x": 145.0,
-            "y": 2680.0
-          },
-          {
-            "x": 40.0,
-            "y": 2680.0
-          },
-          {
-            "x": 40.0,
-            "y": 2645.0
+            "x": 330.0,
+            "y": 2145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C2"
+          "compName": "_submodelinterface",
+          "pinName": "ORAMn+3"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#96",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IQn"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "F3"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#97",
         "path": [
           {
-            "x": 5.0,
-            "y": 2550.0
-          },
+            "x": 330.0,
+            "y": 750.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
+        },
+        "name": "unnamedWire#98",
+        "path": [
           {
-            "x": 5.0,
-            "y": 2545.0
+            "x": 280.0,
+            "y": 2090.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IQn+3"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C4"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#99",
         "path": [
           {
-            "x": 5.0,
-            "y": 2650.0
+            "x": 285.0,
+            "y": 2125.0
           },
           {
-            "x": 5.0,
-            "y": 2655.0
+            "x": 285.0,
+            "y": 2095.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIAm2901",
     "centerTextHeight": 5.0,
@@ -3399,23 +3438,24 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {
       "qreg": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIdff4#0"
         }
       },
       "regs": {
-        "id": "delegating",
+        "id": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler",
         "params": {
           "delegateTarget": "GUIram4#0"
         }
       }
     },
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 006a46f..7e0ccc3 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
@@ -6,10 +5,11 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "SBE",
-      "logicWidth": 1
+      "name": "CinE",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 45.0
       },
       "name": "FN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "I3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,15 +35,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I4",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 25.0
-      },
-      "name": "SN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +44,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "I5",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,7 +53,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "L",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,48 +62,60 @@ mograsim version: 0.1.3
         "y": 55.0
       },
       "name": "RN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 35.0
       },
-      "name": "CinE",
-      "logicWidth": 1
+      "name": "SBE",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "SN",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 15.0,
-          "y": 50.0
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "GUInand3",
-        "name": "GUInand3#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 55.0,
-          "y": 10.0
-        }
+          "x": 15.0,
+          "y": 50.0
+        },
+        "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 15.0,
-          "y": 10.0
+          "x": 55.0,
+          "y": 45.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#3",
         "pos": {
           "x": 55.0,
@@ -115,11 +124,11 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 55.0,
-          "y": 45.0
+          "x": 100.0,
+          "y": 50.0
         },
         "params": 1
       },
@@ -132,34 +141,42 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUInand3",
+        "name": "GUInand3#0",
+        "pos": {
+          "x": 55.0,
+          "y": 10.0
+        }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 24.0
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 19.0
+          "y": 24.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 9.0,
-          "y": 59.0
+          "x": 39.0,
+          "y": 34.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 4.0,
@@ -168,16 +185,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
           "x": 9.0,
-          "y": 64.0
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 9.0,
@@ -186,16 +203,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 49.0,
-          "y": 99.0
+          "x": 9.0,
+          "y": 64.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#6",
         "pos": {
           "x": 9.0,
@@ -204,16 +221,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 39.0,
-          "y": 19.0
+          "x": 49.0,
+          "y": 99.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#8",
         "pos": {
           "x": 49.0,
@@ -222,35 +239,79 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
           "x": 39.0,
-          "y": 34.0
+          "y": 19.0
         },
         "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 100.0,
-          "y": 50.0
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 15.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
@@ -267,20 +328,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 50.0,
-            "y": 100.0
-          }
-        ]
+        "name": "unnamedWire#14",
+        "path": []
       },
       {
         "pin1": {
@@ -309,15 +365,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#18",
-        "path": []
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 100.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -336,6 +397,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#8",
@@ -355,14 +428,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -379,14 +452,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
@@ -416,20 +489,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 40.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#23",
+        "path": []
       },
       {
         "pin1": {
@@ -445,14 +513,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUInand3#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
+          "compName": "GUIand#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#27"
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -468,14 +542,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUInand3#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#29"
+        "name": "unnamedWire#27"
       },
       {
         "pin1": {
@@ -490,109 +564,61 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUInand3#0",
+          "compName": "GUIand#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#9",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 40.0
-          },
-          {
-            "x": 45.0,
-            "y": 40.0
-          },
-          {
-            "x": 45.0,
-            "y": 15.0
-          }
-        ]
+        "name": "unnamedWire#29"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I4"
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "L"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "FN"
+          "pinName": "SBE"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#31",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 15.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I5"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "L"
-        },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -618,91 +644,74 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
-        },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "SBE"
+          "pinName": "FN"
         },
-        "name": "unnamedWire#31",
-        "path": []
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 180.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I4"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUInand3#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 40.0
+          },
+          {
+            "x": 45.0,
+            "y": 40.0
+          },
+          {
+            "x": 45.0,
+            "y": 15.0
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIAm2901ALUFuncDecode",
     "centerTextHeight": 5.0,
@@ -710,5 +719,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 0f8ee57..1a8da52 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 120.0,
@@ -6,58 +5,65 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 35.0
       },
-      "name": "R2",
-      "logicWidth": 1
+      "name": "Cn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 105.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "S3",
-      "logicWidth": 1
+      "name": "Cn+4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 65.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "R3",
-      "logicWidth": 1
+      "name": "F1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 115.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "S4",
-      "logicWidth": 1
+      "name": "F2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 75.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "R4",
-      "logicWidth": 1
+      "name": "F3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "I3",
-      "logicWidth": 1
+      "name": "F4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "OVR",
-      "logicWidth": 1
+      "name": "I3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -65,208 +71,261 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Cn",
-      "logicWidth": 1
+      "name": "I5",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "F1",
-      "logicWidth": 1
+      "name": "OVR",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 45.0
       },
-      "name": "I5",
-      "logicWidth": 1
+      "name": "R1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "F2",
-      "logicWidth": 1
+      "name": "R2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 65.0
       },
-      "name": "F3",
-      "logicWidth": 1
+      "name": "R3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "F4",
-      "logicWidth": 1
+      "name": "R4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 85.0
       },
-      "name": "Cn+4",
-      "logicWidth": 1
+      "name": "S1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 95.0
       },
-      "name": "S1",
-      "logicWidth": 1
+      "name": "S2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 105.0
       },
-      "name": "R1",
-      "logicWidth": 1
+      "name": "S3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 115.0
       },
-      "name": "S2",
-      "logicWidth": 1
+      "name": "S4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUIAm2901ALUFuncDecode",
+        "name": "GUIAm2901ALUFuncDecode#0",
         "pos": {
-          "x": 34.0,
-          "y": 354.0
-        },
-        "params": 1
+          "x": 20.0,
+          "y": 2.5
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#0",
         "pos": {
-          "x": 34.0,
-          "y": 254.0
+          "x": 45.0,
+          "y": 80.0
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#1",
+        "pos": {
+          "x": 45.0,
+          "y": 180.0
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#2",
+        "pos": {
+          "x": 45.0,
+          "y": 280.0
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#3",
+        "pos": {
+          "x": 45.0,
+          "y": 380.0
+        }
+      },
+      {
+        "id": "GUIxor",
+        "name": "GUIxor#0",
+        "pos": {
+          "x": 95.0,
+          "y": 400.0
+        }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 94.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 36.5,
-          "y": 264.0
+          "x": 24.0,
+          "y": 194.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 36.5,
-          "y": 164.0
+          "x": 31.5,
+          "y": 244.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 84.0,
-          "y": 374.0
+          "x": 31.5,
+          "y": 344.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 36.5,
-          "y": 364.0
+          "x": 34.0,
+          "y": 154.0
         },
         "params": 1
       },
       {
-        "id": "GUIAm2901ALUFuncDecode",
-        "name": "GUIAm2901ALUFuncDecode#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 20.0,
-          "y": 2.5
-        }
+          "x": 34.0,
+          "y": 254.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 45.0,
-          "y": 80.0
-        }
+          "x": 34.0,
+          "y": 354.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 84.0,
-          "y": 384.0
+          "x": 36.5,
+          "y": 164.0
         },
         "params": 1
       },
       {
-        "id": "GUIxor",
-        "name": "GUIxor#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 95.0,
-          "y": 400.0
-        }
+          "x": 36.5,
+          "y": 264.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 24.0,
-          "y": 194.0
+          "x": 36.5,
+          "y": 364.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 24.0,
-          "y": 94.0
+          "x": 84.0,
+          "y": 374.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 26.5,
-          "y": 104.0
+          "x": 84.0,
+          "y": 384.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 24.0,
@@ -275,16 +334,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
           "x": 26.5,
-          "y": 304.0
+          "y": 104.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 26.5,
@@ -293,685 +352,891 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 45.0,
-          "y": 180.0
-        }
+          "x": 26.5,
+          "y": 304.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
           "x": 29.0,
-          "y": 224.0
+          "y": 124.0
         },
         "params": 1
       },
       {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 45.0,
-          "y": 280.0
-        }
+          "x": 29.0,
+          "y": 224.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
           "x": 29.0,
-          "y": 124.0
+          "y": 324.0
         },
         "params": 1
       },
       {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#3",
-        "pos": {
-          "x": 45.0,
-          "y": 380.0
-        }
-      },
-      {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#9",
         "pos": {
           "x": 31.5,
           "y": 144.0
         },
         "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I5"
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 20.0
+          },
+          {
+            "x": 5.0,
+            "y": 7.5
+          }
+        ]
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
-        "pos": {
-          "x": 29.0,
-          "y": 324.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I4"
         },
-        "params": 1
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I4"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 60.0
+          },
+          {
+            "x": 10.0,
+            "y": 17.5
+          }
+        ]
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
-        "pos": {
-          "x": 31.5,
-          "y": 244.0
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "CinE"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 70.0,
+            "y": 7.5
+          },
+          {
+            "x": 70.0,
+            "y": 77.5
+          },
+          {
+            "x": 27.5,
+            "y": 77.5
+          }
+        ]
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
-        "pos": {
-          "x": 34.0,
-          "y": 154.0
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
-        "pos": {
-          "x": 31.5,
-          "y": 344.0
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "FN"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "CinE"
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "FN"
+          "pinName": "CinE"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#14",
         "path": []
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "CinE"
+        },
+        "name": "unnamedWire#15",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "CinE"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 27.5,
+            "y": 405.0
+          }
+        ]
+      },
       {
         "pin1": {
           "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "L"
+          "pinName": "RN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 67.5,
-            "y": 17.5
+            "x": 57.5,
+            "y": 57.5
           },
           {
-            "x": 67.5,
-            "y": 75.0
+            "x": 57.5,
+            "y": 65.0
           },
           {
-            "x": 37.5,
-            "y": 75.0
+            "x": 30.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "FN"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#18",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#19",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I3"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 35.0,
-            "y": 455.0
+            "x": 15.0,
+            "y": 100.0
+          },
+          {
+            "x": 15.0,
+            "y": 27.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#20",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "L"
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "RN"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#23",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 425.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "SN"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#24",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 27.5
+          },
+          {
+            "x": 65.0,
+            "y": 72.5
+          },
+          {
+            "x": 32.5,
+            "y": 72.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "L"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "SN"
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "L"
+          "pinName": "SN"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R1"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "R"
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "SN"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#29",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "SBE"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 10.0,
-            "y": 180.0
+            "x": 62.5,
+            "y": 37.5
           },
           {
-            "x": 10.0,
-            "y": 115.0
+            "x": 62.5,
+            "y": 70.0
+          },
+          {
+            "x": 25.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "L"
+          "pinName": "SN"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 37.5,
-            "y": 465.0
+            "x": 32.5,
+            "y": 445.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "FN"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 47.5
+          },
+          {
+            "x": 60.0,
+            "y": 67.5
+          },
+          {
+            "x": 35.0,
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "name": "unnamedWire#32",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "name": "unnamedWire#33",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "FN"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "FN"
+        },
+        "name": "unnamedWire#35",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "R"
+          "pinName": "FN"
         },
-        "name": "unnamedWire#47",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 260.0
-          },
-          {
-            "x": 10.0,
-            "y": 315.0
-          }
-        ]
+        "name": "unnamedWire#36",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R2"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "R"
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "FN"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 10.0,
-            "y": 220.0
-          },
-          {
-            "x": 10.0,
-            "y": 215.0
+            "x": 35.0,
+            "y": 455.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "L"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "S"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#38",
         "path": [
           {
-            "x": 15.0,
-            "y": 340.0
+            "x": 67.5,
+            "y": 17.5
           },
           {
-            "x": 15.0,
-            "y": 135.0
+            "x": 67.5,
+            "y": 75.0
+          },
+          {
+            "x": 37.5,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R4"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "R"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#48",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 300.0
-          },
-          {
-            "x": 20.0,
-            "y": 415.0
-          }
-        ]
+        "name": "unnamedWire#39",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "CoutE"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 395.0
-          }
-        ]
+        "name": "unnamedWire#4",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "CoutE"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "CoutE"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "L"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "CoutE"
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "L"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#42",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I4"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "I4"
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "L"
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 60.0
-          },
-          {
-            "x": 10.0,
-            "y": 17.5
-          }
-        ]
+        "name": "unnamedWire#43",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S2"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "S"
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "L"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 5.0,
-            "y": 380.0
-          },
-          {
-            "x": 5.0,
-            "y": 235.0
+            "x": 37.5,
+            "y": 465.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I5"
+          "pinName": "R1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "I5"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "R"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 5.0,
-            "y": 20.0
+            "x": 10.0,
+            "y": 180.0
           },
           {
-            "x": 5.0,
-            "y": 7.5
+            "x": 10.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "S4"
+          "pinName": "R2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "S"
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "R"
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#46",
         "path": [
           {
             "x": 10.0,
-            "y": 460.0
+            "y": 220.0
           },
           {
             "x": 10.0,
-            "y": 435.0
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "S3"
+          "pinName": "R3"
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "S"
+          "pinName": "R"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#47",
         "path": [
           {
             "x": 10.0,
-            "y": 420.0
+            "y": 260.0
           },
           {
             "x": 10.0,
-            "y": 335.0
+            "y": 315.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "CinE"
+          "compName": "_submodelinterface",
+          "pinName": "R4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "R"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#48",
         "path": [
           {
-            "x": 70.0,
-            "y": 7.5
-          },
-          {
-            "x": 70.0,
-            "y": 77.5
+            "x": 20.0,
+            "y": 300.0
           },
           {
-            "x": 27.5,
-            "y": 77.5
+            "x": 20.0,
+            "y": 415.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "Cout"
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "Cin"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "S"
         },
-        "name": "unnamedWire#54",
+        "name": "unnamedWire#49",
         "path": [
           {
-            "x": 85.0,
-            "y": 85.0
-          },
-          {
-            "x": 85.0,
-            "y": 175.0
-          },
-          {
-            "x": 40.0,
-            "y": 175.0
+            "x": 15.0,
+            "y": 340.0
           },
           {
-            "x": 40.0,
-            "y": 185.0
+            "x": 15.0,
+            "y": 135.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Cn"
+          "pinName": "S2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "Cin"
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "S"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#50",
         "path": [
           {
             "x": 5.0,
-            "y": 140.0
+            "y": 380.0
           },
           {
             "x": 5.0,
-            "y": 85.0
+            "y": 235.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "SBE"
+          "compName": "_submodelinterface",
+          "pinName": "S3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "S"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#51",
         "path": [
           {
-            "x": 62.5,
-            "y": 37.5
-          },
-          {
-            "x": 62.5,
-            "y": 70.0
+            "x": 10.0,
+            "y": 420.0
           },
           {
-            "x": 25.0,
-            "y": 70.0
+            "x": 10.0,
+            "y": 335.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "Cout"
+          "compName": "_submodelinterface",
+          "pinName": "S4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "S"
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#52",
         "path": [
           {
-            "x": 85.0,
-            "y": 285.0
+            "x": 10.0,
+            "y": 460.0
+          },
+          {
+            "x": 10.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I3"
+          "pinName": "Cn"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "I3"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "Cin"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#53",
         "path": [
           {
-            "x": 15.0,
-            "y": 100.0
+            "x": 5.0,
+            "y": 140.0
           },
           {
-            "x": 15.0,
-            "y": 27.5
+            "x": 5.0,
+            "y": 85.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "Cout"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "Cin"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#54",
+        "path": [
+          {
+            "x": 85.0,
+            "y": 85.0
+          },
+          {
+            "x": 85.0,
+            "y": 175.0
+          },
+          {
+            "x": 40.0,
+            "y": 175.0
+          },
+          {
+            "x": 40.0,
+            "y": 185.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1004,39 +1269,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#14",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUOneBit#3",
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "Cout"
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
-        },
-        "name": "unnamedWire#58",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#13",
-        "path": []
+        "name": "unnamedWire#56",
+        "path": [
+          {
+            "x": 85.0,
+            "y": 285.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1061,124 +1307,49 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 27.5,
-            "y": 405.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#15",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "F"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F1"
-        },
-        "name": "unnamedWire#59",
-        "path": [
-          {
-            "x": 90.0,
-            "y": 95.0
-          },
-          {
-            "x": 90.0,
-            "y": 20.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#18",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "RN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 57.5,
-            "y": 57.5
-          },
-          {
-            "x": 57.5,
-            "y": 65.0
-          },
-          {
-            "x": 30.0,
-            "y": 65.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "pinName": "Cout"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#58",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUOneBit#2",
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "F"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "F3"
+          "pinName": "F1"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#59",
         "path": [
           {
-            "x": 100.0,
-            "y": 295.0
+            "x": 90.0,
+            "y": 95.0
           },
           {
-            "x": 100.0,
-            "y": 100.0
+            "x": 90.0,
+            "y": 20.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "CoutE"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "GUIAm2901ALUOneBit#1",
@@ -1202,22 +1373,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "F"
         },
         "pin2": {
-          "compName": "GUIxor#0",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "F3"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#61",
         "path": [
           {
-            "x": 90.0,
-            "y": 375.0
+            "x": 100.0,
+            "y": 295.0
           },
           {
-            "x": 90.0,
-            "y": 405.0
+            "x": 100.0,
+            "y": 100.0
           }
         ]
       },
@@ -1244,49 +1415,25 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "RN"
-        },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn+4"
+          "compName": "GUIxor#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#63",
         "path": [
           {
-            "x": 130.0,
-            "y": 385.0
+            "x": 90.0,
+            "y": 375.0
           },
           {
-            "x": 130.0,
-            "y": 180.0
+            "x": 90.0,
+            "y": 405.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "RN"
-        },
-        "name": "unnamedWire#20",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#19",
@@ -1306,33 +1453,25 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "RN"
+          "compName": "_submodelinterface",
+          "pinName": "Cn+4"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#65",
         "path": [
           {
-            "x": 30.0,
-            "y": 425.0
+            "x": 130.0,
+            "y": 385.0
+          },
+          {
+            "x": 130.0,
+            "y": 180.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "RN"
-        },
-        "name": "unnamedWire#22",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUIxor#0",
@@ -1346,170 +1485,49 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "name": "unnamedWire#25",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "SN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "name": "unnamedWire#24",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 27.5
-          },
-          {
-            "x": 65.0,
-            "y": 72.5
-          },
-          {
-            "x": 32.5,
-            "y": 72.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "SN"
-        },
-        "name": "unnamedWire#27",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "CoutE"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "SN"
-        },
-        "name": "unnamedWire#29",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "SN"
+          "pinName": "CoutE"
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "SN"
-        },
-        "name": "unnamedWire#30",
-        "path": [
-          {
-            "x": 32.5,
-            "y": 445.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "name": "unnamedWire#32",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "FN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "pinName": "CoutE"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 60.0,
-            "y": 47.5
-          },
-          {
-            "x": 60.0,
-            "y": 67.5
-          },
-          {
-            "x": 35.0,
-            "y": 67.5
+            "x": 25.0,
+            "y": 395.0
           }
         ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "FN"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "name": "unnamedWire#33",
-        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIAm2901ALUInclDecode",
     "centerTextHeight": 5.0,
@@ -1517,5 +1535,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 71d2d2d..4bfbadc 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 230.0,
@@ -6,258 +5,302 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 195.0
+        "y": 115.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 205.0
+        "y": 125.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 215.0
+        "y": 135.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 225.0
+        "y": 145.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 155.0
       },
-      "name": "I0",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 165.0
       },
-      "name": "I1",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 175.0
       },
-      "name": "I2",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 185.0
       },
-      "name": "I3",
-      "logicWidth": 1
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 65.0
       },
-      "name": "OVR",
-      "logicWidth": 1
+      "name": "Cn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "I4",
-      "logicWidth": 1
+      "name": "Cn+4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 75.0
       },
-      "name": "Cn",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 85.0
       },
-      "name": "I5",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 115.0
+        "y": 95.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 125.0
+        "y": 105.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 135.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "F1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 145.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "F2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 45.0
+        "y": 25.0
       },
-      "name": "Cn+4",
-      "logicWidth": 1
+      "name": "F3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 35.0
       },
-      "name": "F1",
-      "logicWidth": 1
+      "name": "F4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "F2",
-      "logicWidth": 1
+      "name": "I0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 45.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "I1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "F3",
-      "logicWidth": 1
+      "name": "I2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 25.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "I3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "F4",
-      "logicWidth": 1
+      "name": "I4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 5.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "I5",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 155.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "OVR",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 105.0
+        "y": 195.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 165.0
+        "y": 205.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 175.0
+        "y": 215.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 185.0
+        "y": 225.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
-        "id": "GUIsel3_4",
-        "name": "GUIsel3_4#0",
+        "id": "GUIAm2901ALUInclDecode",
+        "name": "GUIAm2901ALUInclDecode#0",
+        "pos": {
+          "x": 60.0,
+          "y": 15.0
+        }
+      },
+      {
+        "id": "GUIAm2901SourceDecode",
+        "name": "GUIAm2901SourceDecode#0",
+        "pos": {
+          "x": 15.0,
+          "y": 165.0
+        }
+      },
+      {
+        "id": "GUIsel2_4",
+        "name": "GUIsel2_4#0",
         "pos": {
           "x": 45.0,
-          "y": 575.0
+          "y": 365.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#0",
         "pos": {
-          "x": 14.0,
-          "y": 499.0
-        },
-        "params": 1
+          "x": 45.0,
+          "y": 575.0
+        }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 9.0,
@@ -266,24 +309,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIAm2901ALUInclDecode",
-        "name": "GUIAm2901ALUInclDecode#0",
-        "pos": {
-          "x": 60.0,
-          "y": 15.0
-        }
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 24.0,
-          "y": 579.0
+          "x": 14.0,
+          "y": 499.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 19.0,
@@ -292,1067 +327,1061 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIsel2_4",
-        "name": "GUIsel2_4#0",
-        "pos": {
-          "x": 45.0,
-          "y": 365.0
-        }
-      },
-      {
-        "id": "GUIAm2901SourceDecode",
-        "name": "GUIAm2901SourceDecode#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 15.0,
-          "y": 165.0
-        }
+          "x": 24.0,
+          "y": 579.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "I5"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R1"
+          "pinName": "I5"
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 82.5,
-            "y": 370.0
-          },
-          {
-            "x": 82.5,
-            "y": 162.5
-          },
-          {
-            "x": 20.0,
-            "y": 162.5
-          },
-          {
-            "x": 20.0,
-            "y": 60.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "RD"
+          "compName": "_submodelinterface",
+          "pinName": "I4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SA"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 55.0,
-            "y": 210.0
-          },
-          {
-            "x": 55.0,
-            "y": 220.0
-          },
-          {
-            "x": 25.0,
-            "y": 220.0
+            "x": 5.0,
+            "y": 60.0
           },
           {
-            "x": 25.0,
-            "y": 370.0
+            "x": 5.0,
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R3"
-        },
-        "name": "unnamedWire#38",
-        "path": [
-          {
-            "x": 87.5,
-            "y": 390.0
-          },
-          {
-            "x": 87.5,
-            "y": 157.5
-          },
-          {
-            "x": 25.0,
-            "y": 157.5
-          },
-          {
-            "x": 25.0,
-            "y": 80.0
-          }
-        ]
+          "compName": "GUIsel2_4#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#10",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
-        "path": [
-          {
-            "x": 85.0,
-            "y": 380.0
-          },
-          {
-            "x": 85.0,
-            "y": 160.0
-          },
-          {
-            "x": 22.5,
-            "y": 160.0
-          },
-          {
-            "x": 22.5,
-            "y": 70.0
-          }
-        ]
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y4"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 90.0,
-            "y": 400.0
-          },
-          {
-            "x": 90.0,
-            "y": 155.0
-          },
-          {
-            "x": 27.5,
-            "y": 155.0
-          },
-          {
-            "x": 27.5,
-            "y": 90.0
+            "x": 10.0,
+            "y": 430.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S2"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 95.0,
-            "y": 590.0
-          },
-          {
-            "x": 95.0,
-            "y": 150.0
-          },
-          {
-            "x": 32.5,
-            "y": 150.0
-          },
-          {
-            "x": 32.5,
-            "y": 110.0
+            "x": 15.0,
+            "y": 440.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S1"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 92.5,
-            "y": 580.0
-          },
-          {
-            "x": 92.5,
-            "y": 152.5
-          },
-          {
-            "x": 30.0,
-            "y": 152.5
-          },
-          {
-            "x": 30.0,
-            "y": 100.0
+            "x": 20.0,
+            "y": 450.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S4"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 100.0,
-            "y": 610.0
-          },
-          {
-            "x": 100.0,
-            "y": 145.0
-          },
-          {
-            "x": 37.5,
-            "y": 145.0
-          },
-          {
-            "x": 37.5,
-            "y": 130.0
+            "x": 25.0,
+            "y": 460.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#19",
         "path": [
           {
-            "x": 97.5,
-            "y": 600.0
-          },
-          {
-            "x": 97.5,
-            "y": 147.5
-          },
-          {
-            "x": 35.0,
-            "y": 147.5
-          },
-          {
-            "x": 35.0,
-            "y": 120.0
+            "x": 10.0,
+            "y": 610.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F2"
+          "compName": "_submodelinterface",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 135.0,
-            "y": 30.0
+            "x": 15.0,
+            "y": 100.0
           },
           {
-            "x": 135.0,
-            "y": 60.0
+            "x": 15.0,
+            "y": 40.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#44",
-        "path": []
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 620.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F4"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#21",
         "path": [
           {
-            "x": 125.0,
-            "y": 50.0
-          },
-          {
-            "x": 125.0,
-            "y": 140.0
+            "x": 20.0,
+            "y": 630.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F3"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#46",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 40.0
-          },
+        "name": "unnamedWire#22",
+        "path": [
           {
-            "x": 130.0,
-            "y": 100.0
+            "x": 25.0,
+            "y": 640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "OVR"
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "OVR"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 115.0,
-            "y": 70.0
+            "x": 5.0,
+            "y": 620.0
           },
           {
-            "x": 115.0,
-            "y": 220.0
+            "x": 5.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "Cn+4"
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn+4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#48",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 60.0
-          },
-          {
-            "x": 120.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#24",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D3"
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#25",
         "path": [
           {
             "x": 5.0,
-            "y": 380.0
+            "y": 700.0
           },
           {
             "x": 5.0,
-            "y": 410.0
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#26",
         "path": [
           {
             "x": 10.0,
-            "y": 340.0
+            "y": 740.0
           },
           {
             "x": 10.0,
-            "y": 400.0
+            "y": 680.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D1"
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#27",
         "path": [
           {
             "x": 15.0,
-            "y": 300.0
+            "y": 780.0
           },
           {
             "x": 15.0,
-            "y": 390.0
+            "y": 690.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Cn"
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "Cn"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#28",
         "path": [
           {
-            "x": 10.0,
-            "y": 260.0
+            "x": 20.0,
+            "y": 820.0
           },
           {
-            "x": 10.0,
-            "y": 50.0
+            "x": 20.0,
+            "y": 700.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I4"
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "I4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 5.0,
-            "y": 60.0
+            "x": 25.0,
+            "y": 860.0
           },
           {
-            "x": 5.0,
-            "y": 30.0
+            "x": 25.0,
+            "y": 710.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I5"
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "I5"
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0"
+          "pinName": "I2"
         },
         "pin2": {
           "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "I0"
+          "pinName": "I2"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 5.0,
-            "y": 220.0
+            "y": 140.0
           },
           {
             "x": 5.0,
-            "y": 190.0
+            "y": 170.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D4"
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#10",
-        "path": []
+        "name": "unnamedWire#30",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 900.0
+          },
+          {
+            "x": 30.0,
+            "y": 720.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
-        },
-        "pin2": {
           "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "I1"
-        },
-        "name": "unnamedWire#4",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I2"
+          "pinName": "SQ"
         },
         "pin2": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "I2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 5.0,
-            "y": 140.0
+            "x": 75.0,
+            "y": 170.0
           },
           {
-            "x": 5.0,
-            "y": 170.0
+            "x": 75.0,
+            "y": 240.0
+          },
+          {
+            "x": 30.0,
+            "y": 240.0
+          },
+          {
+            "x": 30.0,
+            "y": 600.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I3"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "RA"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "I3"
+          "compName": "GUIsel2_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 15.0,
-            "y": 100.0
+            "x": 70.0,
+            "y": 180.0
           },
           {
-            "x": 15.0,
-            "y": 40.0
+            "x": 70.0,
+            "y": 235.0
+          },
+          {
+            "x": 20.0,
+            "y": 235.0
+          },
+          {
+            "x": 20.0,
+            "y": 380.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "SB"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#33",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 190.0
+          },
+          {
+            "x": 65.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 590.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "SA"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 200.0
+          },
+          {
+            "x": 60.0,
+            "y": 225.0
+          },
+          {
+            "x": 40.0,
+            "y": 225.0
+          },
+          {
+            "x": 40.0,
+            "y": 580.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "RD"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#13",
-        "path": []
+        "name": "unnamedWire#35",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 210.0
+          },
+          {
+            "x": 55.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 370.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R1"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#36",
         "path": [
           {
-            "x": 15.0,
-            "y": 440.0
+            "x": 82.5,
+            "y": 370.0
+          },
+          {
+            "x": 82.5,
+            "y": 162.5
+          },
+          {
+            "x": 20.0,
+            "y": 162.5
+          },
+          {
+            "x": 20.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B1"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R2"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 10.0,
-            "y": 430.0
+            "x": 85.0,
+            "y": 380.0
+          },
+          {
+            "x": 85.0,
+            "y": 160.0
+          },
+          {
+            "x": 22.5,
+            "y": 160.0
+          },
+          {
+            "x": 22.5,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B4"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R3"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#38",
         "path": [
+          {
+            "x": 87.5,
+            "y": 390.0
+          },
+          {
+            "x": 87.5,
+            "y": 157.5
+          },
           {
             "x": 25.0,
-            "y": 460.0
+            "y": 157.5
+          },
+          {
+            "x": 25.0,
+            "y": 80.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R4"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#39",
         "path": [
           {
-            "x": 20.0,
-            "y": 450.0
+            "x": 90.0,
+            "y": 400.0
+          },
+          {
+            "x": 90.0,
+            "y": 155.0
+          },
+          {
+            "x": 27.5,
+            "y": 155.0
+          },
+          {
+            "x": 27.5,
+            "y": 90.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "I1"
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUIsel3_4#0",
-          "pinName": "A1"
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#19",
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 10.0,
-            "y": 610.0
+            "x": 92.5,
+            "y": 580.0
+          },
+          {
+            "x": 92.5,
+            "y": 152.5
+          },
+          {
+            "x": 30.0,
+            "y": 152.5
+          },
+          {
+            "x": 30.0,
+            "y": 100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 20.0,
-            "y": 630.0
+            "x": 95.0,
+            "y": 590.0
+          },
+          {
+            "x": 95.0,
+            "y": 150.0
+          },
+          {
+            "x": 32.5,
+            "y": 150.0
+          },
+          {
+            "x": 32.5,
+            "y": 110.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S3"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#42",
         "path": [
           {
-            "x": 15.0,
-            "y": 620.0
+            "x": 97.5,
+            "y": 600.0
+          },
+          {
+            "x": 97.5,
+            "y": 147.5
+          },
+          {
+            "x": 35.0,
+            "y": 147.5
+          },
+          {
+            "x": 35.0,
+            "y": 120.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B1"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S4"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 5.0,
-            "y": 620.0
+            "x": 100.0,
+            "y": 610.0
           },
           {
-            "x": 5.0,
-            "y": 650.0
+            "x": 100.0,
+            "y": 145.0
+          },
+          {
+            "x": 37.5,
+            "y": 145.0
+          },
+          {
+            "x": 37.5,
+            "y": 130.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A4"
+          "compName": "_submodelinterface",
+          "pinName": "F1"
         },
-        "name": "unnamedWire#22",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 640.0
-          }
-        ]
+        "name": "unnamedWire#44",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B3"
+          "compName": "_submodelinterface",
+          "pinName": "F2"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 5.0,
-            "y": 700.0
+            "x": 135.0,
+            "y": 30.0
           },
           {
-            "x": 5.0,
-            "y": 670.0
+            "x": 135.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B2"
-        },
-        "name": "unnamedWire#24",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C1"
+          "pinName": "F3"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#46",
         "path": [
           {
-            "x": 15.0,
-            "y": 780.0
+            "x": 130.0,
+            "y": 40.0
           },
           {
-            "x": 15.0,
-            "y": 690.0
+            "x": 130.0,
+            "y": 100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B4"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B4"
+          "compName": "_submodelinterface",
+          "pinName": "F4"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 10.0,
-            "y": 740.0
+            "x": 125.0,
+            "y": 50.0
           },
           {
-            "x": 10.0,
-            "y": 680.0
+            "x": 125.0,
+            "y": 140.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Q3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "Cn+4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C3"
+          "compName": "_submodelinterface",
+          "pinName": "Cn+4"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#48",
         "path": [
           {
-            "x": 25.0,
-            "y": 860.0
+            "x": 120.0,
+            "y": 60.0
           },
           {
-            "x": 25.0,
-            "y": 710.0
+            "x": 120.0,
+            "y": 180.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Q2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "OVR"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C2"
+          "compName": "_submodelinterface",
+          "pinName": "OVR"
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#49",
         "path": [
           {
-            "x": 20.0,
-            "y": 820.0
+            "x": 115.0,
+            "y": 70.0
           },
           {
-            "x": 20.0,
-            "y": 700.0
+            "x": 115.0,
+            "y": 220.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q4"
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C4"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 30.0,
-            "y": 900.0
+            "x": 5.0,
+            "y": 220.0
           },
           {
-            "x": 30.0,
-            "y": 720.0
+            "x": 5.0,
+            "y": 190.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "RA"
+          "compName": "_submodelinterface",
+          "pinName": "Cn"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SB"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "Cn"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 70.0,
-            "y": 180.0
-          },
-          {
-            "x": 70.0,
-            "y": 235.0
-          },
-          {
-            "x": 20.0,
-            "y": 235.0
+            "x": 10.0,
+            "y": 260.0
           },
           {
-            "x": 20.0,
-            "y": 380.0
+            "x": 10.0,
+            "y": 50.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "SQ"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SC"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 75.0,
-            "y": 170.0
-          },
-          {
-            "x": 75.0,
-            "y": 240.0
-          },
-          {
-            "x": 30.0,
-            "y": 240.0
+            "x": 15.0,
+            "y": 300.0
           },
           {
-            "x": 30.0,
-            "y": 600.0
+            "x": 15.0,
+            "y": 390.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "SA"
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SA"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 60.0,
-            "y": 200.0
-          },
-          {
-            "x": 60.0,
-            "y": 225.0
-          },
-          {
-            "x": 40.0,
-            "y": 225.0
+            "x": 10.0,
+            "y": 340.0
           },
           {
-            "x": 40.0,
-            "y": 580.0
+            "x": 10.0,
+            "y": 400.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "SB"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SB"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 65.0,
-            "y": 190.0
-          },
-          {
-            "x": 65.0,
-            "y": 230.0
-          },
-          {
-            "x": 35.0,
-            "y": 230.0
+            "x": 5.0,
+            "y": 380.0
           },
           {
-            "x": 35.0,
-            "y": 590.0
+            "x": 5.0,
+            "y": 410.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
     "centerTextHeight": 5.0,
@@ -1360,5 +1389,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index b32a2b1..afe676b 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
@@ -6,97 +5,108 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "R",
-      "logicWidth": 1
+      "name": "Cin",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 25.0
       },
-      "name": "S",
-      "logicWidth": 1
+      "name": "CinE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 15.0
+        "y": 5.0
       },
-      "name": "F",
-      "logicWidth": 1
+      "name": "Cout",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 15.0
       },
-      "name": "FN",
-      "logicWidth": 1
+      "name": "CoutE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "Cin",
-      "logicWidth": 1
+      "name": "F",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 75.0
       },
-      "name": "SN",
-      "logicWidth": 1
+      "name": "FN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 85.0
       },
-      "name": "Cout",
-      "logicWidth": 1
+      "name": "L",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 35.0
       },
-      "name": "RN",
-      "logicWidth": 1
+      "name": "R",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 45.0
       },
-      "name": "L",
-      "logicWidth": 1
+      "name": "RN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 55.0
       },
-      "name": "CinE",
-      "logicWidth": 1
+      "name": "S",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 65.0
       },
-      "name": "CoutE",
-      "logicWidth": 1
+      "name": "SN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 60.0,
@@ -105,22 +115,28 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIand",
+        "name": "GUIand#0",
         "pos": {
-          "x": 54.0,
-          "y": 69.0
-        },
-        "params": 1
+          "x": 10.0,
+          "y": 20.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUIand",
+        "name": "GUIand#1",
         "pos": {
-          "x": 49.0,
-          "y": 59.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 20.0
+        }
+      },
+      {
+        "id": "GUIfulladder",
+        "name": "GUIfulladder#0",
+        "pos": {
+          "x": 60.0,
+          "y": 20.0
+        }
       },
       {
         "id": "GUImux1",
@@ -131,11 +147,11 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIand",
-        "name": "GUIand#0",
+        "id": "GUIxor",
+        "name": "GUIxor#0",
         "pos": {
           "x": 10.0,
-          "y": 20.0
+          "y": 190.0
         }
       },
       {
@@ -155,284 +171,264 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIfulladder",
-        "name": "GUIfulladder#0",
-        "pos": {
-          "x": 60.0,
-          "y": 20.0
-        }
-      },
-      {
-        "id": "GUIxor",
-        "name": "GUIxor#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 10.0,
-          "y": 190.0
-        }
+          "x": 49.0,
+          "y": 59.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIand",
-        "name": "GUIand#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 135.0,
-          "y": 20.0
-        }
+          "x": 54.0,
+          "y": 69.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Cin"
         },
         "pin2": {
-          "compName": "GUIfulladder#0",
-          "pinName": "C"
+          "compName": "GUIand#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "CoutE"
+        },
+        "pin2": {
+          "compName": "GUIand#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 55.0,
-            "y": 45.0
+            "x": 5.0,
+            "y": 75.0
+          },
+          {
+            "x": 5.0,
+            "y": 10.0
+          },
+          {
+            "x": 130.0,
+            "y": 10.0
+          },
+          {
+            "x": 130.0,
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIxor#1",
+          "compName": "GUIxor#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 55.0,
-            "y": 295.0
+            "x": 50.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIfulladder#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I0"
+          "compName": "GUIfulladder#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 100.0,
-            "y": 25.0
-          },
-          {
-            "x": 100.0,
-            "y": 65.0
-          },
-          {
-            "x": 85.0,
-            "y": 65.0
-          },
-          {
-            "x": 85.0,
-            "y": 85.0
+            "x": 50.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "GUIxor#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 82.5,
-            "y": 65.0
-          },
-          {
-            "x": 82.5,
-            "y": 95.0
+            "x": 55.0,
+            "y": 295.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIfulladder#0",
-          "pinName": "Z"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#1",
-          "pinName": "B"
+          "compName": "GUIfulladder#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#17",
-        "path": []
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUImux1#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIxor#2",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "GUIfulladder#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "L"
+          "pinName": "Y"
         },
         "pin2": {
           "compName": "GUImux1#0",
-          "pinName": "S0"
+          "pinName": "I0"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 87.5,
-            "y": 425.0
+            "x": 100.0,
+            "y": 25.0
           },
           {
-            "x": 87.5,
-            "y": 75.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "FN"
-        },
-        "pin2": {
-          "compName": "GUIxor#2",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#7",
-        "path": [
+            "x": 100.0,
+            "y": 65.0
+          },
           {
-            "x": 130.0,
-            "y": 375.0
+            "x": 85.0,
+            "y": 65.0
           },
           {
-            "x": 130.0,
+            "x": 85.0,
             "y": 85.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SN"
+          "compName": "GUIfulladder#0",
+          "pinName": "Z"
         },
         "pin2": {
-          "compName": "GUIxor#1",
+          "compName": "GUIand#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#6"
+        "name": "unnamedWire#17",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "CoutE"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#1",
-          "pinName": "A"
+          "compName": "GUImux1#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 5.0,
-            "y": 75.0
-          },
-          {
-            "x": 5.0,
-            "y": 10.0
-          },
-          {
-            "x": 130.0,
-            "y": 10.0
+            "x": 82.5,
+            "y": 65.0
           },
           {
-            "x": 130.0,
-            "y": 25.0
+            "x": 82.5,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Cin"
+          "compName": "GUImux1#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUIxor#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "S"
+          "pinName": "CinE"
         },
         "pin2": {
-          "compName": "GUIxor#1",
-          "pinName": "A"
+          "compName": "GUIand#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5"
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 125.0
+          },
+          {
+            "x": 7.5,
+            "y": 35.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIxor#0",
+          "compName": "GUIand#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Cout"
         },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 50.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#20",
+        "path": []
       },
       {
         "pin1": {
@@ -449,90 +445,105 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "RN"
+          "pinName": "R"
         },
         "pin2": {
           "compName": "GUIxor#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#4"
+        "name": "unnamedWire#3"
       },
       {
         "pin1": {
-          "compName": "GUIand#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "RN"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cout"
+          "compName": "GUIxor#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#20",
-        "path": []
+        "name": "unnamedWire#4"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "R"
+          "pinName": "S"
         },
         "pin2": {
-          "compName": "GUIxor#0",
+          "compName": "GUIxor#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#3"
+        "name": "unnamedWire#5"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SN"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIxor#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#12",
-        "path": []
+        "name": "unnamedWire#6"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "CinE"
+          "pinName": "FN"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUIxor#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 7.5,
-            "y": 125.0
+            "x": 130.0,
+            "y": 375.0
           },
           {
-            "x": 7.5,
-            "y": 35.0
+            "x": 130.0,
+            "y": 85.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "L"
         },
         "pin2": {
-          "compName": "GUIfulladder#0",
-          "pinName": "B"
+          "compName": "GUImux1#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 50.0,
-            "y": 35.0
+            "x": 87.5,
+            "y": 425.0
+          },
+          {
+            "x": 87.5,
+            "y": 75.0
           }
         ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIfulladder#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIAm2901ALUOneBit",
     "centerTextHeight": 5.0,
@@ -540,5 +551,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 38f5fa6..b68379d 100644 (file)
@@ -1,55 +1,60 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "LSH",
-      "logicWidth": 1
+      "name": "I6",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "NSH",
-      "logicWidth": 1
+      "name": "I7",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 5.0
       },
-      "name": "RSH",
-      "logicWidth": 1
+      "name": "I8",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "I6",
-      "logicWidth": 1
+      "name": "LSH",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "YF",
-      "logicWidth": 1
+      "name": "NSH",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "I7",
-      "logicWidth": 1
+      "name": "QWE",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -57,75 +62,78 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "RAMWE",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "QWE",
-      "logicWidth": 1
+      "name": "RSH",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "I8",
-      "logicWidth": 1
+      "name": "YF",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 15.0,
-          "y": 50.0
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 74.0,
-          "y": 159.0
+          "x": 15.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 15.0,
-          "y": 10.0
+          "x": 80.0,
+          "y": 145.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#11",
         "pos": {
-          "x": 74.0,
-          "y": 104.0
+          "x": 110.0,
+          "y": 105.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#12",
         "pos": {
-          "x": 15.0,
-          "y": 150.0
+          "x": 115.0,
+          "y": 210.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#2",
         "pos": {
           "x": 15.0,
@@ -134,300 +142,313 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 109.0,
-          "y": 214.0
+          "x": 15.0,
+          "y": 150.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 4.0,
-          "y": 14.0
+          "x": 50.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 4.0,
-          "y": 19.0
+          "x": 50.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 9.0,
-          "y": 59.0
+          "x": 50.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 4.0,
-          "y": 24.0
+          "x": 50.0,
+          "y": 130.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 9.0,
-          "y": 104.0
+          "x": 80.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#9",
         "pos": {
-          "x": 9.0,
-          "y": 64.0
+          "x": 80.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 39.0,
-          "y": 59.0
+          "x": 4.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 154.0
+          "y": 14.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 44.0,
-          "y": 54.0
+          "x": 39.0,
+          "y": 134.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 44.0,
+          "x": 74.0,
           "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 39.0,
-          "y": 134.0
+          "x": 74.0,
+          "y": 99.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
           "x": 74.0,
-          "y": 99.0
+          "y": 104.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
           "x": 74.0,
-          "y": 19.0
+          "y": 159.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 115.0,
-          "y": 210.0
+          "x": 109.0,
+          "y": 214.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 110.0,
-          "y": 105.0
+          "x": 4.0,
+          "y": 24.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 80.0,
-          "y": 145.0
+          "x": 9.0,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 80.0,
-          "y": 90.0
+          "x": 9.0,
+          "y": 64.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 80.0,
-          "y": 10.0
+          "x": 9.0,
+          "y": 104.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 50.0,
-          "y": 50.0
+          "x": 4.0,
+          "y": 154.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 50.0,
-          "y": 10.0
+          "x": 39.0,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 50.0,
-          "y": 130.0
+          "x": 44.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 50.0,
-          "y": 90.0
+          "x": 44.0,
+          "y": 54.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I8"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#14",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 165.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "LSH"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 140.0
-          },
-          {
-            "x": 125.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "B"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#35",
-        "path": []
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I6"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
-        "path": []
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 100.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#13",
         "path": []
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 165.0
+          }
+        ]
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#1",
@@ -455,20 +476,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "A"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
-        "path": [
-          {
-            "x": 75.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#16",
+        "path": []
       },
       {
         "pin1": {
@@ -476,14 +492,14 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "B"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#17",
         "path": [
           {
             "x": 40.0,
-            "y": 65.0
+            "y": 25.0
           }
         ]
       },
@@ -493,29 +509,17 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 40.0,
-            "y": 25.0
+            "y": 65.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#39",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUINandGate#0",
@@ -530,65 +534,16 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#11",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#41"
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#8",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "RSH"
-        },
-        "name": "unnamedWire#40",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 20.0
-          },
-          {
-            "x": 130.0,
-            "y": 60.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
-        },
-        "name": "unnamedWire#43",
-        "path": [
-          {
-            "x": 110.0,
-            "y": 155.0
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#8",
@@ -616,62 +571,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#11",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#42",
-        "path": [
-          {
-            "x": 75.0,
-            "y": 170.0
-          },
-          {
-            "x": 105.0,
-            "y": 170.0
-          },
-          {
-            "x": 105.0,
-            "y": 120.0
-          }
-        ]
-      },
-      {
-        "pin1": {
           "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#23",
-        "path": [
-          {
-            "x": 45.0,
-            "y": 95.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#12",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#45",
-        "path": [
-          {
-            "x": 110.0,
-            "y": 225.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
@@ -687,45 +595,21 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
+          "compName": "GUINandGate#6",
           "pinName": "A"
         },
-        "name": "unnamedWire#44",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 40.0,
-            "y": 100.0
+            "x": 45.0,
+            "y": 95.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "GUINandGate#12",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QWE"
-        },
-        "name": "unnamedWire#47",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#5",
@@ -753,29 +637,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "YF"
-        },
-        "name": "unnamedWire#46"
-      },
-      {
-        "pin1": {
           "compName": "WireCrossPoint#10",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": [
           {
             "x": 40.0,
-            "y": 145.0
+            "y": 100.0
           }
         ]
       },
@@ -793,18 +666,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "A"
+          "compName": "GUINandGate#7",
+          "pinName": "B"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 75.0,
-            "y": 15.0
+            "x": 40.0,
+            "y": 145.0
           }
         ]
       },
@@ -822,132 +695,184 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "GUINandGate#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#29",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 15.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
-        "name": "unnamedWire#8",
-        "path": []
+        "name": "unnamedWire#30",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 25.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "_submodelinterface",
+          "pinName": "RAMWE"
+        },
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 125.0,
+            "y": 60.0
+          },
+          {
+            "x": 125.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#9",
           "pinName": "A"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 10.0,
-            "y": 55.0
+            "x": 75.0,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I8"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#9",
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "LSH"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#36",
         "path": [
           {
-            "x": 75.0,
-            "y": 25.0
+            "x": 125.0,
+            "y": 140.0
+          },
+          {
+            "x": 125.0,
+            "y": 180.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I7"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "B"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
@@ -964,115 +889,199 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#8",
           "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "RAMWE"
+          "pinName": "RSH"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 125.0,
-            "y": 60.0
+            "x": 130.0,
+            "y": 20.0
           },
           {
-            "x": 125.0,
-            "y": 100.0
+            "x": 130.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#11",
           "pinName": "A"
         },
-        "name": "unnamedWire#3",
-        "path": []
+        "name": "unnamedWire#41"
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I6"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUINandGate#11",
+          "pinName": "B"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#42",
         "path": [
           {
-            "x": 5.0,
-            "y": 100.0
+            "x": 75.0,
+            "y": 170.0
+          },
+          {
+            "x": 105.0,
+            "y": 170.0
+          },
+          {
+            "x": 105.0,
+            "y": 120.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
-        "name": "unnamedWire#34",
-        "path": []
+        "name": "unnamedWire#43",
+        "path": [
+          {
+            "x": 110.0,
+            "y": 155.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#12",
+          "pinName": "A"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#12",
+          "pinName": "B"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 5.0,
-            "y": 95.0
+            "x": 110.0,
+            "y": 225.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "GUINandGate#11",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "YF"
+        },
+        "name": "unnamedWire#46"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QWE"
+        },
+        "name": "unnamedWire#47",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I7"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#9",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 75.0,
-            "y": 95.0
+            "x": 10.0,
+            "y": 55.0
           }
         ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "GUIAm2901DestDecode",
     "centerTextHeight": 5.0,
@@ -1080,5 +1089,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index cb28db6..d9966e1 100644 (file)
@@ -1,23 +1,15 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 50.0,
   "interfacePins": [
-    {
-      "location": {
-        "x": 35.0,
-        "y": 45.0
-      },
-      "name": "RD",
-      "logicWidth": 1
-    },
     {
       "location": {
         "x": 0.0,
         "y": 25.0
       },
       "name": "I0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,31 +26,35 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "I2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 15.0
       },
-      "name": "SQ",
-      "logicWidth": 1
+      "name": "RA",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 45.0
       },
-      "name": "SA",
-      "logicWidth": 1
+      "name": "RD",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 15.0
+        "y": 35.0
       },
-      "name": "RA",
-      "logicWidth": 1
+      "name": "SA",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,167 +62,177 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "SB",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "SQ",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 10.0,
-          "y": 50.0
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 94.0,
-          "y": 19.0
+          "x": 10.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 10.0,
-          "y": 10.0
+          "x": 70.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#11",
         "pos": {
-          "x": 64.0,
-          "y": 139.0
+          "x": 70.0,
+          "y": 130.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#12",
         "pos": {
-          "x": 40.0,
-          "y": 10.0
+          "x": 70.0,
+          "y": 170.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#13",
         "pos": {
-          "x": 10.0,
-          "y": 90.0
+          "x": 100.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#14",
         "pos": {
-          "x": 94.0,
-          "y": 179.0
+          "x": 100.0,
+          "y": 170.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 6.5,
-          "y": 19.0
+          "x": 10.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 4.0,
-          "y": 19.0
+          "x": 40.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 6.5,
-          "y": 59.0
+          "x": 40.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 4.0,
-          "y": 144.0
+          "x": 40.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 6.5,
-          "y": 104.0
+          "x": 40.0,
+          "y": 130.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 6.5,
-          "y": 99.0
+          "x": 40.0,
+          "y": 170.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 34.0,
-          "y": 59.0
+          "x": 70.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#9",
         "pos": {
-          "x": 31.5,
-          "y": 54.0
+          "x": 70.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 34.0,
-          "y": 134.0
+          "x": 4.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 34.0,
-          "y": 64.0
+          "x": 6.5,
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#10",
         "pos": {
           "x": 36.5,
@@ -234,889 +241,890 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
           "x": 64.0,
-          "y": 99.0
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
           "x": 64.0,
-          "y": 59.0
+          "y": 99.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 70.0,
-          "y": 170.0
+          "x": 64.0,
+          "y": 139.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 70.0,
-          "y": 130.0
+          "x": 94.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#14",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 100.0,
-          "y": 170.0
+          "x": 94.0,
+          "y": 179.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#13",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 100.0,
-          "y": 10.0
+          "x": 4.0,
+          "y": 144.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 70.0,
-          "y": 90.0
+          "x": 6.5,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 70.0,
-          "y": 50.0
+          "x": 6.5,
+          "y": 99.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 70.0,
-          "y": 10.0
+          "x": 6.5,
+          "y": 104.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 40.0,
-          "y": 90.0
+          "x": 31.5,
+          "y": 54.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 40.0,
-          "y": 50.0
+          "x": 34.0,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 40.0,
-          "y": 170.0
+          "x": 34.0,
+          "y": 64.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 40.0,
-          "y": 130.0
+          "x": 34.0,
+          "y": 134.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "B"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 65.0,
-            "y": 105.0
+            "x": 5.0,
+            "y": 5.0
+          },
+          {
+            "x": 35.0,
+            "y": 5.0
+          },
+          {
+            "x": 35.0,
+            "y": 15.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 65.0,
-            "y": 145.0
+            "x": 7.5,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "_submodelinterface",
+          "pinName": "I0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 65.0,
-            "y": 135.0
+            "x": 7.5,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
-          "pinName": "A"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#39"
+        "name": "unnamedWire#13",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#13",
-          "pinName": "A"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#5",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 95.0,
-            "y": 15.0
+            "x": 7.5,
+            "y": 112.5
+          },
+          {
+            "x": 32.5,
+            "y": 112.5
+          },
+          {
+            "x": 32.5,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#40",
-        "path": []
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 32.5,
+            "y": 20.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "RA"
+          "compName": "GUINandGate#4",
+          "pinName": "A"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#13",
-          "pinName": "B"
+          "compName": "GUINandGate#5",
+          "pinName": "A"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 95.0,
-            "y": 25.0
+            "x": 32.5,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SA"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SB"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#14",
-          "pinName": "A"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 95.0,
-            "y": 175.0
+            "x": 35.0,
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#12",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#13",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SQ"
+          "compName": "GUINandGate#4",
+          "pinName": "B"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#14",
-          "pinName": "B"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#48",
-        "path": [
-          {
-            "x": 95.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#23",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#6",
           "pinName": "A"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#24",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 7.5,
-            "y": 55.0
+            "x": 35.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 5.0,
-            "y": 195.0
+            "x": 37.5,
+            "y": 35.0
           },
           {
             "x": 65.0,
-            "y": 195.0
+            "y": 35.0
           },
           {
             "x": 65.0,
-            "y": 185.0
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#28",
+        "path": [
+          {
+            "x": 37.5,
+            "y": 185.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#29"
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 5.0,
-            "y": 5.0
-          },
-          {
-            "x": 35.0,
-            "y": 5.0
-          },
-          {
-            "x": 35.0,
+            "x": 7.5,
             "y": 15.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#14",
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "RD"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I2"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#9",
+          "pinName": "A"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 55.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 7.5,
+            "x": 65.0,
             "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#4",
-        "path": [
-          {
-            "x": 7.5,
-            "y": 25.0
-          }
-        ]
+        "name": "unnamedWire#33",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#10",
           "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#34",
         "path": [
           {
-            "x": 7.5,
-            "y": 15.0
+            "x": 65.0,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#10",
+          "pinName": "B"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#35",
         "path": [
           {
-            "x": 7.5,
-            "y": 95.0
+            "x": 65.0,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#11",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 135.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#11",
           "pinName": "B"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "name": "unnamedWire#38",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 145.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUINandGate#12",
+          "pinName": "A"
         },
-        "name": "unnamedWire#13",
-        "path": []
+        "name": "unnamedWire#39"
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#4",
         "path": [
           {
-            "x": 32.5,
-            "y": 20.0
+            "x": 7.5,
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "B"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 7.5,
-            "y": 112.5
-          },
-          {
-            "x": 32.5,
-            "y": 112.5
-          },
-          {
-            "x": 32.5,
-            "y": 105.0
-          }
-        ]
+        "name": "unnamedWire#40",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#13",
           "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 32.5,
-            "y": 95.0
+            "x": 95.0,
+            "y": 15.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
+          "compName": "GUINandGate#13",
+          "pinName": "B"
         },
-        "name": "unnamedWire#17",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 25.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#9",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "RA"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#20",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 25.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUINandGate#11",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#45",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "B"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#14",
           "pinName": "A"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 35.0,
+            "x": 95.0,
             "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#24",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#14",
           "pinName": "B"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#48",
         "path": [
           {
-            "x": 37.5,
-            "y": 35.0
-          },
-          {
-            "x": 65.0,
-            "y": 35.0
-          },
-          {
-            "x": 65.0,
-            "y": 25.0
+            "x": 95.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#13",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SQ"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "A"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#29"
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUINandGate#14",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "RD"
         },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 37.5,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#50",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "B"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#9",
+          "compName": "GUINandGate#12",
           "pinName": "B"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#7",
         "path": [
+          {
+            "x": 5.0,
+            "y": 195.0
+          },
           {
             "x": 65.0,
-            "y": 65.0
+            "y": 195.0
+          },
+          {
+            "x": 65.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "A"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#31",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 55.0
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#10",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 65.0,
-            "y": 95.0
+            "x": 7.5,
+            "y": 55.0
           }
         ]
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "name": "unnamedWire#33",
-        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "Am2901SourceDecode",
     "centerTextHeight": 5.0,
@@ -1124,5 +1132,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+  "version": "0.1.5"
 }
\ No newline at end of file
index dd1723b..9b47e86 100644 (file)
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 5.0
       },
-      "name": "IOVR",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 30.0
+        "x": 120.0,
+        "y": 108.0
       },
-      "name": "_CEM",
-      "logicWidth": 1
+      "name": "C0",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 120.0,
+        "y": 60.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "CT",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 61.0
+        "y": 110.0
       },
-      "name": "I",
-      "logicWidth": 13
+      "name": "Cx",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 40.0
+        "y": 61.0
       },
-      "name": "_EN",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 13,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 17.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "YC",
-      "logicWidth": 1
+      "name": "IC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 108.0
+        "x": 0.0,
+        "y": 20.0
       },
-      "name": "C0",
-      "logicWidth": 1
+      "name": "IN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 36.0
+        "y": 25.0
       },
-      "name": "_EZ",
-      "logicWidth": 1
+      "name": "IOVR",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 110.0
+        "y": 10.0
       },
-      "name": "Cx",
-      "logicWidth": 1
+      "name": "IZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 120.0,
-        "y": 21.0
+        "y": 128.0
       },
-      "name": "YN",
-      "logicWidth": 1
+      "name": "QIO0",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 128.0
       },
-      "name": "IC",
-      "logicWidth": 1
+      "name": "QIOn",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 42.0
+        "x": 120.0,
+        "y": 118.0
       },
-      "name": "_EOVR",
-      "logicWidth": 1
+      "name": "SIO0",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 11.0
+        "x": 0.0,
+        "y": 119.0
       },
-      "name": "YZ",
-      "logicWidth": 1
+      "name": "SIOn",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 20.0
+        "x": 120.0,
+        "y": 17.0
       },
-      "name": "IN",
-      "logicWidth": 1
+      "name": "YC",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 61.0,
-        "y": 0.0
+        "x": 120.0,
+        "y": 21.0
       },
-      "name": "_OEY",
-      "logicWidth": 1
+      "name": "YN",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 83.0
+        "x": 120.0,
+        "y": 25.0
       },
-      "name": "_SE",
-      "logicWidth": 1
+      "name": "YOVR",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
         "x": 120.0,
-        "y": 118.0
+        "y": 11.0
       },
-      "name": "SIO0",
-      "logicWidth": 1
+      "name": "YZ",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 10.0
+        "y": 30.0
       },
-      "name": "IZ",
-      "logicWidth": 1
+      "name": "_CEM",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 60.0
+        "x": 0.0,
+        "y": 33.0
       },
-      "name": "CT",
-      "logicWidth": 1
+      "name": "_CEmu",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 128.0
+        "y": 38.0
       },
-      "name": "QIOn",
-      "logicWidth": 1
+      "name": "_EC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 119.0
+        "y": 40.0
       },
-      "name": "SIOn",
-      "logicWidth": 1
+      "name": "_EN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 33.0
+        "y": 42.0
       },
-      "name": "_CEmu",
-      "logicWidth": 1
+      "name": "_EOVR",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 51.0
+        "x": 0.0,
+        "y": 36.0
       },
-      "name": "_OECT",
-      "logicWidth": 1
+      "name": "_EZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 120.0,
-        "y": 25.0
+        "y": 51.0
       },
-      "name": "YOVR",
-      "logicWidth": 1
+      "name": "_OECT",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 128.0
+        "x": 61.0,
+        "y": 0.0
       },
-      "name": "QIO0",
-      "logicWidth": 1
+      "name": "_OEY",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 38.0
+        "y": 83.0
       },
-      "name": "_EC",
-      "logicWidth": 1
+      "name": "_SE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
   "innerScale": 0.2,
   "submodel": {
     "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "GUIAm2904MSR",
+        "name": "DeserializedSubmodelComponent#0",
         "pos": {
-          "x": 130.0,
-          "y": 5.0
-        },
-        "params": 1
+          "x": 225.0,
+          "y": 95.0
+        }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "GUIAm2904muSR",
+        "name": "DeserializedSubmodelComponent#1",
         "pos": {
-          "x": 340.0,
-          "y": 120.0
-        },
-        "params": 1
+          "x": 270.0,
+          "y": 250.0
+        }
       },
       {
         "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#21",
+        "name": "DeserializedSubmodelComponent#10",
         "pos": {
-          "x": 250.0,
-          "y": 820.0
+          "x": 455.0,
+          "y": 355.0
         }
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#15",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#11",
         "pos": {
-          "x": 435.0,
-          "y": 575.0
+          "x": 265.0,
+          "y": 515.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#12",
         "pos": {
-          "x": 330.0,
-          "y": 125.0
-        },
-        "params": 1
+          "x": 315.0,
+          "y": 505.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#27",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#13",
         "pos": {
-          "x": 440.0,
-          "y": 385.0
-        },
-        "params": 1
+          "x": 365.0,
+          "y": 485.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#14",
         "pos": {
-          "x": 120.0,
-          "y": 15.0
-        },
-        "params": 1
+          "x": 415.0,
+          "y": 465.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#15",
         "pos": {
-          "x": 35.0,
-          "y": 640.0
-        },
-        "params": 1
+          "x": 435.0,
+          "y": 575.0
+        }
       },
       {
-        "id": "GUIAm2904ShiftInstrDecode",
-        "name": "GUIAm2904ShiftInstrDecode#0",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#16",
         "pos": {
-          "x": 50.0,
-          "y": 360.0
+          "x": 435.0,
+          "y": 655.0
         }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#6",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#17",
         "pos": {
-          "x": 285.0,
-          "y": 320.0
-        },
-        "params": 3
+          "x": 190.0,
+          "y": 460.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#18",
         "pos": {
-          "x": 195.0,
-          "y": 35.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 470.0
+        }
+      },
+      {
+        "id": "GUIand",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 380.0,
+          "y": 125.0
+        }
       },
       {
         "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#12",
+        "name": "DeserializedSubmodelComponent#21",
         "pos": {
-          "x": 315.0,
-          "y": 505.0
+          "x": 250.0,
+          "y": 820.0
         }
       },
       {
-        "id": "GUIAm2904TestLogic",
-        "name": "DeserializedSubmodelComponent#6",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#22",
         "pos": {
-          "x": 225.0,
-          "y": 340.0
+          "x": 120.0,
+          "y": 720.0
         }
       },
       {
         "id": "GUImux3",
-        "name": "DeserializedSubmodelComponent#7",
+        "name": "DeserializedSubmodelComponent#23",
         "pos": {
           "x": 300.0,
-          "y": 310.0
+          "y": 715.0
         }
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#3",
         "pos": {
-          "x": 530.0,
-          "y": 70.0
-        },
-        "params": 4
+          "x": 470.0,
+          "y": 160.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "id": "GUInot4",
+        "name": "DeserializedSubmodelComponent#4",
         "pos": {
-          "x": 250.0,
-          "y": 540.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 40.0
+        }
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#14",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#5",
         "pos": {
           "x": 415.0,
-          "y": 465.0
+          "y": 210.0
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "GUIAm2904TestLogic",
+        "name": "DeserializedSubmodelComponent#6",
         "pos": {
-          "x": 205.0,
-          "y": 50.0
-        },
-        "params": 1
+          "x": 225.0,
+          "y": 340.0
+        }
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#17",
+        "id": "GUImux3",
+        "name": "DeserializedSubmodelComponent#7",
         "pos": {
-          "x": 190.0,
-          "y": 460.0
+          "x": 300.0,
+          "y": 310.0
         }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#11",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#8",
         "pos": {
-          "x": 405.0,
-          "y": 575.0
-        },
-        "params": 3
+          "x": 495.0,
+          "y": 295.0
+        }
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#10",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#9",
         "pos": {
-          "x": 455.0,
-          "y": 355.0
+          "x": 450.0,
+          "y": 310.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.am2900.components.am2904.GUIAm2904RegCTInstrDecode",
+        "name": "GUIAm2904RegCTInstrDecode#0",
         "pos": {
-          "x": 150.0,
-          "y": 160.0
-        },
-        "params": 1
+          "x": 50.0,
+          "y": 240.0
+        }
       },
       {
-        "id": "GUInot4",
-        "name": "DeserializedSubmodelComponent#4",
+        "id": "class:net.mograsim.logic.model.am2900.components.am2904.GUIAm2904ShiftInstrDecode",
+        "name": "GUIAm2904ShiftInstrDecode#0",
         "pos": {
-          "x": 135.0,
-          "y": 40.0
+          "x": 50.0,
+          "y": 360.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#30",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#0",
         "pos": {
-          "x": 550.0,
-          "y": 570.0
+          "x": 530.0,
+          "y": 70.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#1",
         "pos": {
-          "x": 10.0,
-          "y": 605.0
+          "x": 565.0,
+          "y": 180.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 4
       },
       {
-        "id": "GUIAm2904muSR",
-        "name": "DeserializedSubmodelComponent#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#2",
         "pos": {
-          "x": 270.0,
-          "y": 250.0
-        }
+          "x": 530.0,
+          "y": 200.0
+        },
+        "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#7",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#3",
         "pos": {
-          "x": 420.0,
-          "y": 325.0
+          "x": 560.0,
+          "y": 150.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
+        "name": "GUIMerger#0",
         "pos": {
-          "x": 255.0,
-          "y": 265.0
+          "x": 25.0,
+          "y": 245.0
         },
-        "params": 4
+        "params": 6
       },
       {
-        "id": "GUIAm2904RegCTInstrDecode",
-        "name": "GUIAm2904RegCTInstrDecode#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
+        "name": "GUIMerger#1",
         "pos": {
-          "x": 50.0,
-          "y": 240.0
-        }
+          "x": 25.0,
+          "y": 305.0
+        },
+        "params": 5
       },
       {
-        "id": "GUIMerger",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
+        "name": "GUIMerger#2",
+        "pos": {
+          "x": 15.0,
+          "y": 65.0
+        },
+        "params": 4
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
         "name": "GUIMerger#3",
         "pos": {
           "x": 510.0,
         "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#10",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
+        "name": "GUIMerger#4",
         "pos": {
-          "x": 420.0,
-          "y": 410.0
+          "x": 25.0,
+          "y": 355.0
         },
-        "params": 4
+        "params": 2
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#33",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 530.0,
-          "y": 270.0
+          "x": 190.0,
+          "y": 145.0
         },
         "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 560.0,
-          "y": 595.0
+          "x": 130.0,
+          "y": 5.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 195.0,
-          "y": 15.0
+          "x": 340.0,
+          "y": 120.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#12",
         "pos": {
-          "x": 10.0,
-          "y": 245.0
+          "x": 540.0,
+          "y": 265.0
         },
-        "params": 13
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 215.0,
-          "y": 180.0
+          "x": 225.0,
+          "y": 195.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
           "x": 225.0,
-          "y": 175.0
+          "y": 215.0
         },
         "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 565.0,
-          "y": 180.0
+          "x": 225.0,
+          "y": 155.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 530.0,
-          "y": 200.0
+          "x": 225.0,
+          "y": 175.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 585.0,
-          "y": 640.0
+          "x": 205.0,
+          "y": 70.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 255.0,
-          "y": 255.0
+          "x": 205.0,
+          "y": 50.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 560.0,
-          "y": 290.0
+          "x": 205.0,
+          "y": 30.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#14",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#9",
         "pos": {
-          "x": 90.0,
-          "y": 720.0
+          "x": 205.0,
+          "y": 10.0
         },
-        "params": 3
+        "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#0",
         "pos": {
-          "x": 555.0,
-          "y": 80.0
+          "x": 10.0,
+          "y": 245.0
         },
-        "params": 4
+        "params": 13
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#1",
         "pos": {
-          "x": 225.0,
-          "y": 195.0
+          "x": 555.0,
+          "y": 80.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#10",
         "pos": {
-          "x": 450.0,
-          "y": 175.0
+          "x": 420.0,
+          "y": 410.0
         },
         "params": 4
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#11",
         "pos": {
-          "x": 190.0,
-          "y": 145.0
+          "x": 405.0,
+          "y": 575.0
         },
-        "params": 1
+        "params": 3
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#9",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#12",
         "pos": {
-          "x": 240.0,
-          "y": 475.0
+          "x": 405.0,
+          "y": 655.0
         },
-        "params": 4
+        "params": 3
       },
       {
-        "id": "GUISplitter",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
         "name": "GUISplitter#13",
         "pos": {
           "x": 265.0,
         "params": 3
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#14",
         "pos": {
-          "x": 15.0,
-          "y": 65.0
+          "x": 90.0,
+          "y": 720.0
         },
-        "params": 4
+        "params": 3
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#15",
         "pos": {
-          "x": 285.0,
-          "y": 725.0
+          "x": 120.0,
+          "y": 455.0
         },
-        "params": 1
+        "params": 2
       },
       {
-        "id": "GUIAm2904MSR",
-        "name": "DeserializedSubmodelComponent#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#2",
         "pos": {
-          "x": 225.0,
-          "y": 95.0
-        }
+          "x": 395.0,
+          "y": 195.0
+        },
+        "params": 2
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#8",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#3",
         "pos": {
-          "x": 420.0,
-          "y": 365.0
+          "x": 450.0,
+          "y": 175.0
         },
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#4",
         "pos": {
-          "x": 215.0,
-          "y": 160.0
+          "x": 395.0,
+          "y": 225.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUImux3",
-        "name": "DeserializedSubmodelComponent#23",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#5",
         "pos": {
-          "x": 300.0,
-          "y": 715.0
-        }
+          "x": 395.0,
+          "y": 265.0
+        },
+        "params": 4
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#6",
         "pos": {
-          "x": 25.0,
-          "y": 355.0
+          "x": 285.0,
+          "y": 320.0
         },
-        "params": 2
+        "params": 3
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#7",
         "pos": {
-          "x": 335.0,
-          "y": 270.0
+          "x": 420.0,
+          "y": 325.0
         },
         "params": 4
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#8",
         "pos": {
-          "x": 25.0,
-          "y": 245.0
+          "x": 420.0,
+          "y": 365.0
         },
-        "params": 6
+        "params": 4
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#9",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#9",
         "pos": {
-          "x": 450.0,
-          "y": 310.0
+          "x": 240.0,
+          "y": 475.0
+        },
+        "params": 4
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#0",
+        "pos": {
+          "x": 535.0,
+          "y": 165.0
+        },
+        "params": {
+          "logicWidth": 4,
+          "orientation": "RIGHT"
         }
       },
       {
-        "id": "GUITriStateBuffer",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
         "name": "GUITriStateBuffer#1",
         "pos": {
           "x": 10.0,
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
-        "pos": {
-          "x": 530.0,
-          "y": 100.0
-        },
-        "params": 4
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 225.0,
-          "y": 155.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#2",
         "pos": {
-          "x": 295.0,
-          "y": 120.0
+          "x": 10.0,
+          "y": 605.0
         },
-        "params": 4
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#3",
         "pos": {
-          "x": 395.0,
-          "y": 195.0
+          "x": 560.0,
+          "y": 595.0
         },
-        "params": 2
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#4",
         "pos": {
-          "x": 395.0,
-          "y": 265.0
+          "x": 565.0,
+          "y": 655.0
         },
-        "params": 4
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#3",
-        "pos": {
-          "x": 470.0,
-          "y": 160.0
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
         }
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#16",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#5",
         "pos": {
-          "x": 435.0,
-          "y": 655.0
+          "x": 560.0,
+          "y": 290.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#28",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 440.0,
-          "y": 345.0
+          "x": 165.0,
+          "y": 150.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 360.0,
-          "y": 495.0
+          "x": 180.0,
+          "y": 135.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 290.0,
-          "y": 805.0
+          "x": 195.0,
+          "y": 55.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#15",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 120.0,
-          "y": 455.0
+          "x": 195.0,
+          "y": 15.0
         },
-        "params": 2
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 165.0,
-          "y": 150.0
+          "x": 195.0,
+          "y": 35.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 215.0,
-          "y": 200.0
+          "x": 330.0,
+          "y": 125.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 205.0,
-          "y": 30.0
+          "x": 520.0,
+          "y": 190.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 395.0,
-          "y": 225.0
+          "x": 255.0,
+          "y": 265.0
         },
         "params": 4
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#11",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 265.0,
-          "y": 515.0
-        }
+          "x": 255.0,
+          "y": 255.0
+        },
+        "params": 4
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 560.0,
-          "y": 150.0
+          "x": 360.0,
+          "y": 495.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 225.0,
-          "y": 215.0
+          "x": 35.0,
+          "y": 640.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#19",
         "pos": {
           "x": 35.0,
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 520.0,
-          "y": 190.0
+          "x": 295.0,
+          "y": 120.0
         },
         "params": 4
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 205.0,
-          "y": 10.0
+          "x": 585.0,
+          "y": 590.0
         },
         "params": 1
       },
       {
-        "id": "GUIand",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 380.0,
-          "y": 125.0
-        }
+          "x": 585.0,
+          "y": 640.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#13",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "pos": {
-          "x": 365.0,
-          "y": 485.0
-        }
+          "x": 250.0,
+          "y": 540.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#25",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#23",
         "pos": {
-          "x": 285.0,
-          "y": 755.0
+          "x": 330.0,
+          "y": 640.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 540.0,
-          "y": 265.0
+          "x": 285.0,
+          "y": 725.0
         },
         "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#4",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "pos": {
-          "x": 565.0,
-          "y": 655.0
+          "x": 285.0,
+          "y": 755.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 585.0,
-          "y": 590.0
+          "x": 290.0,
+          "y": 805.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#27",
         "pos": {
-          "x": 205.0,
-          "y": 70.0
+          "x": 440.0,
+          "y": 385.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#28",
         "pos": {
-          "x": 195.0,
-          "y": 55.0
+          "x": 440.0,
+          "y": 345.0
         },
         "params": 1
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 495.0,
-          "y": 295.0
-        }
+          "x": 335.0,
+          "y": 270.0
+        },
+        "params": 4
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#18",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#30",
         "pos": {
-          "x": 135.0,
-          "y": 470.0
-        }
+          "x": 550.0,
+          "y": 570.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#32",
         "pos": {
-          "x": 415.0,
-          "y": 210.0
-        }
+          "x": 85.0,
+          "y": 590.0
+        },
+        "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#12",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#33",
         "pos": {
-          "x": 405.0,
-          "y": 655.0
+          "x": 530.0,
+          "y": 270.0
         },
-        "params": 3
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 180.0,
-          "y": 135.0
+          "x": 150.0,
+          "y": 160.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#22",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 120.0,
-          "y": 720.0
-        }
+          "x": 530.0,
+          "y": 100.0
+        },
+        "params": 4
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 535.0,
-          "y": 165.0
+          "x": 120.0,
+          "y": 15.0
         },
-        "params": {
-          "logicWidth": 4,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#1",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 25.0,
-          "y": 305.0
+          "x": 215.0,
+          "y": 180.0
         },
-        "params": 5
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#32",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 85.0,
-          "y": 590.0
+          "x": 215.0,
+          "y": 160.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 330.0,
-          "y": 640.0
+          "x": 215.0,
+          "y": 200.0
         },
         "params": 1
       }
     "wires": [
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O3"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_4"
-        },
-        "name": "unnamedWire#100",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "GUISplitter#8",
-          "pinName": "O1"
-        },
-        "name": "unnamedWire#172",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I01"
-        },
-        "name": "unnamedWire#170",
-        "path": []
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 25.0
+          },
+          {
+            "x": 5.0,
+            "y": 10.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_MUX"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "OEn"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "MUX"
         },
-        "name": "unnamedWire#202",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O1"
+          "compName": "GUISplitter#0",
+          "pinName": "O6"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_2"
+          "compName": "GUIMerger#1",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y010"
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I010"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#100",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "YOVR"
+          "compName": "GUISplitter#3",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#101",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUISplitter#4",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#102",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "GUISplitter#4",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EN"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#103",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUISplitter#4",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#104",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#4",
-          "pinName": "I1"
+          "compName": "GUISplitter#4",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O12"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#140",
+        "name": "unnamedWire#105",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "OUT"
+          "compName": "GUISplitter#4",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "CT"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#236",
+        "name": "unnamedWire#106",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IN"
+          "compName": "GUISplitter#5",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 100.0
-          },
-          {
-            "x": 5.0,
-            "y": 85.0
-          }
-        ]
+        "name": "unnamedWire#107",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUISplitter#5",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#108",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEC"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_3"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "B"
+          "compName": "GUISplitter#5",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#109",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I01"
+          "compName": "GUIMerger#1",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O7"
         },
-        "name": "unnamedWire#197",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "O"
+          "compName": "GUISplitter#5",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#110",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O0"
+          "compName": "GUISplitter#5",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#111",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#12",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "EN"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#122",
+        "name": "unnamedWire#112",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I"
         },
-        "name": "unnamedWire#55",
+        "name": "unnamedWire#113",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y111"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_2"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I111"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#114",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
+          "compName": "DeserializedSubmodelComponent#7",
           "pinName": "I110"
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y110"
         },
-        "name": "unnamedWire#196",
+        "name": "unnamedWire#115",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y101"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I101"
         },
-        "name": "unnamedWire#184",
+        "name": "unnamedWire#116",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I100"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y100"
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#117",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "EN"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y011"
         },
         "pin2": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I011"
         },
-        "name": "unnamedWire#218",
+        "name": "unnamedWire#118",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y010"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I010"
         },
-        "name": "unnamedWire#123",
+        "name": "unnamedWire#119",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O8"
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "A"
+          "compName": "GUIMerger#1",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "S1"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I001"
         },
         "pin2": {
-          "compName": "GUISplitter#12",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y001"
         },
-        "name": "unnamedWire#175",
+        "name": "unnamedWire#120",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y000"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EOVR"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I000"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#121",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I10"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#171",
+        "name": "unnamedWire#122",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIBitDisplay#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "B"
         },
-        "name": "unnamedWire#229",
+        "name": "unnamedWire#123",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#21",
-          "pinName": "Y"
+          "compName": "GUISplitter#6",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I111"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_MUX"
         },
-        "name": "unnamedWire#194",
+        "name": "unnamedWire#124",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUISplitter#6",
-          "pinName": "O2"
+          "pinName": "O0"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S2"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#127",
+        "name": "unnamedWire#125",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "EN"
+          "compName": "GUISplitter#6",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#219",
+        "name": "unnamedWire#126",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "GUISplitter#6",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#127",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_EXP"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
+          "compName": "DeserializedSubmodelComponent#9",
           "pinName": "S0"
         },
-        "name": "unnamedWire#95",
+        "name": "unnamedWire#128",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#183",
+        "name": "unnamedWire#129",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUIMerger#1",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "B"
+          "compName": "GUISplitter#0",
+          "pinName": "O9"
         },
-        "name": "unnamedWire#200",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_3"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUISplitter#4",
-          "pinName": "O2"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_INV"
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#130",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y2"
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#131",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "I"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "O"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I"
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 40.0,
-            "y": 395.0
-          },
-          {
-            "x": 40.0,
-            "y": 325.0
-          }
-        ]
+        "name": "unnamedWire#132",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "QIO0"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "I"
         },
-        "name": "unnamedWire#160",
+        "name": "unnamedWire#133",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y3"
+          "compName": "GUISplitter#7",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUIMerger#3",
-          "pinName": "I2"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#134",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I10"
+          "compName": "GUISplitter#8",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
-        "name": "unnamedWire#198",
+        "name": "unnamedWire#135",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "M"
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#136",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y000"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I000"
+          "compName": "GUISplitter#8",
+          "pinName": "I"
         },
-        "name": "unnamedWire#121",
+        "name": "unnamedWire#137",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#21",
-          "pinName": "B"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "OEN"
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#206",
+        "name": "unnamedWire#138",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y111"
+          "compName": "GUISplitter#0",
+          "pinName": "O11"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I111"
+          "compName": "GUIMerger#4",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#114",
+        "name": "unnamedWire#139",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#10",
-          "pinName": "I"
+          "compName": "GUISplitter#0",
+          "pinName": "O10"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIMerger#1",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#144",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIMerger#4",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I000"
+          "compName": "GUISplitter#0",
+          "pinName": "O12"
         },
-        "name": "unnamedWire#186",
+        "name": "unnamedWire#140",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUIMerger#4",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I101"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "I12-11"
         },
-        "name": "unnamedWire#199",
+        "name": "unnamedWire#141",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "C0_MUX"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_CEmu"
+          "compName": "GUISplitter#9",
+          "pinName": "I"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#142",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I01"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
-        "name": "unnamedWire#179",
+        "name": "unnamedWire#143",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "OUT"
+          "compName": "GUISplitter#10",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#1",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#230",
+        "name": "unnamedWire#144",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y1"
+          "compName": "GUISplitter#10",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUIMerger#3",
+          "compName": "DeserializedSubmodelComponent#11",
           "pinName": "I0"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#145",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#12",
-          "pinName": "B"
+          "compName": "GUISplitter#9",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#234",
+        "name": "unnamedWire#146",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Q"
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "B"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#147",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "QIO0_MUX"
+          "compName": "GUISplitter#9",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#178",
+        "name": "unnamedWire#148",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
+          "compName": "GUISplitter#9",
           "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#208",
+        "name": "unnamedWire#149",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#4",
+          "compName": "GUIMerger#0",
           "pinName": "O"
         },
         "pin2": {
           "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "I12-11"
+          "pinName": "I5-0"
         },
-        "name": "unnamedWire#141",
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I10"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#180",
+        "name": "unnamedWire#150",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#212",
+        "name": "unnamedWire#151",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "Cx"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#152",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEOVR"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#153",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#154",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I100"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUISplitter#9",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#193",
+        "name": "unnamedWire#155",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I100"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y100"
+          "compName": "_submodelinterface",
+          "pinName": "C0"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#156",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "QIOn"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#157",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "C0_MUX"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "I"
+          "compName": "_submodelinterface",
+          "pinName": "SIOn"
         },
-        "name": "unnamedWire#142",
+        "name": "unnamedWire#158",
         "path": []
       },
       {
         "pin1": {
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "IZ"
+          "pinName": "SIO0"
+        },
+        "name": "unnamedWire#159",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I0"
+          "compName": "GUIMerger#1",
+          "pinName": "O"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 5.0,
-            "y": 50.0
+            "x": 40.0,
+            "y": 395.0
           },
           {
-            "x": 5.0,
-            "y": 65.0
+            "x": 40.0,
+            "y": 325.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I001"
+          "compName": "_submodelinterface",
+          "pinName": "QIO0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y001"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#120",
+        "name": "unnamedWire#160",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
+          "compName": "GUITriStateBuffer#1",
           "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
-        "name": "unnamedWire#79",
+        "name": "unnamedWire#161",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "MSR_MUX"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "MUX"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#162",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "O1"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#209",
+        "name": "unnamedWire#163",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#164",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Q"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#165",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EC"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "SIO0_MUX"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
+          "compName": "GUISplitter#11",
+          "pinName": "I"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#166",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#11",
+          "pinName": "O0"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I00"
+        },
+        "name": "unnamedWire#167",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#11",
+          "pinName": "O2"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#168",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "GUISplitter#11",
+          "pinName": "O1"
+        },
+        "name": "unnamedWire#169",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "I0"
+          "compName": "_submodelinterface",
+          "pinName": "IOVR"
+        },
+        "pin2": {
+          "compName": "GUIMerger#2",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#17",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 125.0
+          },
+          {
+            "x": 10.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cx"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I01"
         },
-        "name": "unnamedWire#152",
+        "name": "unnamedWire#170",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O8"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#171",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OECT"
+          "compName": "GUISplitter#8",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#235",
+        "name": "unnamedWire#172",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O4"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I4"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#173",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "Y"
+          "compName": "GUISplitter#12",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#153",
+        "name": "unnamedWire#174",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#8",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUISplitter#12",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#135",
+        "name": "unnamedWire#175",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "GUISplitter#12",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EOVR"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#66",
+        "name": "unnamedWire#176",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "B"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#177",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
+          "compName": "GUISplitter#12",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "I5-0"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "QIO0_MUX"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#178",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "C"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I01"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#179",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
+          "compName": "_submodelinterface",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#3",
-          "pinName": ""
+          "compName": "GUIMerger#2",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#232",
-        "path": []
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 100.0
+          },
+          {
+            "x": 5.0,
+            "y": 85.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "C"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#180",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "EN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
-        "name": "unnamedWire#214",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "Y"
-        },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#129",
+        "name": "unnamedWire#181",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I001"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I11"
         },
         "pin2": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
-        "name": "unnamedWire#187",
+        "name": "unnamedWire#182",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
+          "compName": "GUISplitter#13",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#84",
+        "name": "unnamedWire#183",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#223",
+        "name": "unnamedWire#184",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#185",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#9",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I000"
         },
-        "name": "unnamedWire#146",
+        "name": "unnamedWire#186",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_SE"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I001"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "_SE"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#213",
+        "name": "unnamedWire#187",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "YC"
+          "compName": "GUISplitter#13",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "SIOn_MUX"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#188",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "GUISplitter#13",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#189",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y101"
+          "compName": "_submodelinterface",
+          "pinName": "IC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I101"
+          "compName": "GUIMerger#2",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#116",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#6",
-          "pinName": "O0"
+          "compName": "GUISplitter#13",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#190",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I010"
         },
         "pin2": {
           "compName": "WireCrossPoint#20",
           "pinName": ""
         },
-        "name": "unnamedWire#224",
+        "name": "unnamedWire#191",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#2",
-          "pinName": "O"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I011"
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#192",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I100"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#193",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#16",
+          "compName": "DeserializedSubmodelComponent#21",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I111"
         },
-        "name": "unnamedWire#177",
+        "name": "unnamedWire#194",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#195",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I110"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#2",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#231",
+        "name": "unnamedWire#196",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I01"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#197",
         "path": []
       },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "Y"
+          "pinName": "I10"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#207",
+        "name": "unnamedWire#198",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_EXP"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I101"
         },
-        "name": "unnamedWire#128",
+        "name": "unnamedWire#199",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "S0"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_OVRRET"
         },
         "pin2": {
-          "compName": "GUISplitter#11",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "OVRRET"
         },
-        "name": "unnamedWire#169",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "IZ"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y"
+          "compName": "GUIMerger#2",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#54",
-        "path": []
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 50.0
+          },
+          {
+            "x": 5.0,
+            "y": 65.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I00"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "B"
         },
-        "name": "unnamedWire#176",
+        "name": "unnamedWire#200",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SIO0"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#159",
+        "name": "unnamedWire#201",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "EN"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "OEn"
         },
-        "name": "unnamedWire#215",
+        "name": "unnamedWire#202",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_2"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "OE0"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
-        "name": "unnamedWire#98",
+        "name": "unnamedWire#203",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#6",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#204",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#21",
+          "pinName": "A"
         },
-        "name": "unnamedWire#195",
+        "name": "unnamedWire#205",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#21",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#206",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I110"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y110"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#115",
+        "name": "unnamedWire#207",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "MC_MUX"
+          "compName": "GUISplitter#14",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#15",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#226",
+        "name": "unnamedWire#208",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUISplitter#14",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SIOn"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#158",
+        "name": "unnamedWire#209",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O10"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_CINV"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I4"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "CINV"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "S0"
+          "compName": "GUISplitter#14",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "O3"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "QIOn_MUX"
         },
-        "name": "unnamedWire#155",
+        "name": "unnamedWire#210",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUISplitter#14",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#211",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#5",
+          "compName": "GUITriStateBuffer#2",
           "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
+          "compName": "DeserializedSubmodelComponent#23",
           "pinName": "Y"
         },
-        "name": "unnamedWire#237",
+        "name": "unnamedWire#212",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_SE"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "_SE"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#213",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#15",
-          "pinName": "O0"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
-        "name": "unnamedWire#227",
+        "name": "unnamedWire#214",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I00"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#211",
+        "name": "unnamedWire#215",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "OUT"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
-        "name": "unnamedWire#161",
+        "name": "unnamedWire#218",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S1"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#190",
+        "name": "unnamedWire#219",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "O1"
+          "compName": "GUIMerger#2",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#174",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#221",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "COVD_V"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#222",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEN"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#223",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#132",
+        "name": "unnamedWire#224",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "QIOn"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#157",
+        "name": "unnamedWire#225",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EN"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "MC_MUX"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "GUISplitter#15",
+          "pinName": "I"
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#226",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "B"
+          "compName": "GUISplitter#15",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEZ"
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#227",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y3"
+          "compName": "GUISplitter#15",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#87",
+        "name": "unnamedWire#228",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "Y"
+          "compName": "GUIBitDisplay#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#229",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#150",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O2"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S2"
+          "compName": "GUIBitDisplay#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#189",
+        "name": "unnamedWire#230",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I11"
+          "compName": "GUIBitDisplay#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#181",
+        "name": "unnamedWire#231",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "C0"
+          "compName": "GUIBitDisplay#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#156",
+        "name": "unnamedWire#232",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_MUX"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "MUX"
+          "compName": "GUINandGate#12",
+          "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#233",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O6"
+          "compName": "GUINandGate#12",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#234",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "COVD_V"
+          "compName": "_submodelinterface",
+          "pinName": "_OECT"
         },
-        "name": "unnamedWire#222",
+        "name": "unnamedWire#235",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "Y_MUX"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "_submodelinterface",
+          "pinName": "CT"
         },
-        "name": "unnamedWire#94",
+        "name": "unnamedWire#236",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EOVR"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A4"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#237",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "mu"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_2"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "B"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#147",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I010"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#191",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "mu"
         },
-        "name": "unnamedWire#233",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CEM"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A3"
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "GUISplitter#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "C"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "MSR_MUX"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I"
+          "pinName": "MUX"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "MC_EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "COVD_EN"
         },
-        "name": "unnamedWire#225",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y1"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "B"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#21",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#205",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "YZ"
+          "pinName": "_CEmu"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "I"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "compName": "GUINandGate#4",
+          "pinName": "A"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O11"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#4",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#139",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "A"
         },
-        "name": "unnamedWire#143",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_OVRRET"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "OVRRET"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#113",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "OEN"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#138",
+        "name": "unnamedWire#42",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EC"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EOVR"
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IC"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I1"
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#45",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "OE0"
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#203",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEZ"
         },
-        "name": "unnamedWire#173",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I11"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEC"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "B"
         },
-        "name": "unnamedWire#182",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "IN"
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "YZ"
         },
-        "name": "unnamedWire#165",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "YC"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_INV"
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#130",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "OUT"
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "YN"
         },
-        "name": "unnamedWire#164",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#1",
-          "pinName": "I3"
+          "compName": "_submodelinterface",
+          "pinName": "YOVR"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O9"
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "MC_EN"
+          "compName": "GUISplitter#1",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "COVD_EN"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#53",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#133",
+        "name": "unnamedWire#54",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "M"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#136",
+        "name": "unnamedWire#55",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "I"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "_CEM"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 25.0
-          },
-          {
-            "x": 5.0,
-            "y": 10.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_3"
-        },
-        "pin2": {
-          "compName": "GUISplitter#5",
-          "pinName": "O2"
-        },
-        "name": "unnamedWire#109",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_1"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEN"
         },
-        "name": "unnamedWire#97",
+        "name": "unnamedWire#58",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y011"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I011"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#59",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#6",
-          "pinName": "I"
+          "compName": "GUISplitter#0",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_MUX"
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#124",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#7",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#134",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "I3"
+          "compName": "GUINandGate#7",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#92",
+        "name": "unnamedWire#61",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_4"
+          "compName": "GUINandGate#8",
+          "pinName": "A"
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#62",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#9",
           "pinName": "A"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "name": "unnamedWire#185",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "A"
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EOVR"
         },
-        "name": "unnamedWire#148",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I5"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EN"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O5"
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#67",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#9",
-          "pinName": "O2"
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EC"
         },
-        "name": "unnamedWire#149",
+        "name": "unnamedWire#68",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "I"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "QIOn_MUX"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#210",
+        "name": "unnamedWire#69",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#112",
+        "name": "unnamedWire#70",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IOVR"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I3"
+          "compName": "GUINandGate#9",
+          "pinName": "B"
         },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 125.0
-          },
-          {
-            "x": 10.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#71",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "GUINandGate#8",
+          "pinName": "B"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A2"
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#72",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "A"
+          "compName": "GUINandGate#7",
+          "pinName": "B"
         },
-        "name": "unnamedWire#204",
+        "name": "unnamedWire#73",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "OUT"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "B"
         },
-        "name": "unnamedWire#163",
+        "name": "unnamedWire#74",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#75",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_CINV"
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "CINV"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#76",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#83",
+        "name": "unnamedWire#77",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#11",
-          "pinName": "O2"
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "S1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#168",
+        "name": "unnamedWire#78",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "I0"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#154",
+        "name": "unnamedWire#79",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "Y"
+          "compName": "GUISplitter#0",
+          "pinName": "O4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "I0"
+          "compName": "GUIMerger#0",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#221",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I011"
+          "compName": "GUINandGate#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#192",
+        "name": "unnamedWire#80",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#11",
-          "pinName": "O0"
+          "compName": "GUINandGate#10",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I00"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#167",
+        "name": "unnamedWire#81",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "_OEY"
         },
-        "name": "unnamedWire#96",
+        "name": "unnamedWire#82",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O0"
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#83",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "YN"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#84",
         "path": []
       },
       {
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_4"
+          "pinName": "I1_2"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y4"
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#86",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#151",
+        "name": "unnamedWire#87",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#1",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O7"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#88",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "SIO0_MUX"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUISplitter#11",
-          "pinName": "I"
+          "compName": "GUIMerger#3",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#166",
+        "name": "unnamedWire#89",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I5"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "A"
+          "compName": "GUISplitter#0",
+          "pinName": "O5"
         },
-        "name": "unnamedWire#80",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_3"
+          "compName": "GUIMerger#3",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#99",
+        "name": "unnamedWire#90",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIMerger#3",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#64",
+        "name": "unnamedWire#91",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "OUT"
+          "compName": "GUIMerger#3",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#162",
+        "name": "unnamedWire#92",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "I"
+          "compName": "GUIMerger#3",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "SIOn_MUX"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#188",
+        "name": "unnamedWire#93",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "I"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "Y_MUX"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#111",
+        "name": "unnamedWire#94",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#15",
-          "pinName": "O1"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#17",
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "S0"
         },
-        "name": "unnamedWire#228",
+        "name": "unnamedWire#95",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I11"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#201",
+        "name": "unnamedWire#96",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "GUISplitter#3",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EZ"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#97",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUISplitter#8",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#137",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#10",
+          "compName": "GUISplitter#3",
           "pinName": "O1"
         },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "I0"
-        },
-        "name": "unnamedWire#145",
+        "name": "unnamedWire#98",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OEY"
+          "compName": "GUISplitter#3",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#99",
         "path": []
       }
     ],
     "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "Am2904",
     "centerTextHeight": 5.0,
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
   },
-  "version": "0.1.4"
+  "version": "0.1.5"
 }
\ No newline at end of file
index 4a24464..d5e6094 100644 (file)
@@ -4,19 +4,12 @@
   "interfacePins": [
     {
       "location": {
-        "x": 4.0,
+        "x": 14.0,
         "y": 46.0
       },
-      "name": "MUX",
-      "logicWidth": 3
-    },
-    {
-      "location": {
-        "x": 45.0,
-        "y": 19.0
-      },
-      "name": "Q",
-      "logicWidth": 4
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "y": 46.0
       },
       "name": "COVD_EN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 14.0,
+        "x": 37.5,
         "y": 46.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "COVD_V",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 5.5,
-        "y": 0.0
+        "x": 0.0,
+        "y": 31.0
       },
-      "name": "_EZ",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 37.5,
+        "x": 4.0,
         "y": 46.0
       },
-      "name": "COVD_V",
-      "logicWidth": 1
+      "name": "MUX",
+      "logicWidth": 3,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 45.0,
+        "y": 19.0
       },
-      "name": "mu",
-      "logicWidth": 4
+      "name": "Q",
+      "logicWidth": 4,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "y": 18.0
       },
       "name": "Y",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 31.0
+        "x": 15.5,
+        "y": 0.0
       },
-      "name": "I",
-      "logicWidth": 4
+      "name": "_EC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "y": 0.0
       },
       "name": "_EN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 15.5,
+        "x": 35.5,
+        "y": 0.2
+      },
+      "name": "_EOVR",
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 5.5,
         "y": 0.0
       },
-      "name": "_EC",
-      "logicWidth": 1
+      "name": "_EZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.5,
-        "y": 0.2
+        "x": 0.0,
+        "y": 5.0
       },
-      "name": "_EOVR",
-      "logicWidth": 1
+      "name": "mu",
+      "logicWidth": 4,
+      "usage": "INPUT"
     }
   ],
   "innerScale": 0.1,
   "submodel": {
     "components": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 419.0,
-          "y": 184.0
-        },
-        "params": 1
-      },
       {
         "id": "GUImux1_4",
         "name": "DeserializedSubmodelComponent#0",
         }
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#1",
         "pos": {
-          "x": 435.0,
-          "y": 175.0
-        },
-        "params": 4
+          "x": 35.0,
+          "y": 250.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#2",
         "pos": {
-          "x": 84.0,
-          "y": 344.0
-        },
-        "params": 1
+          "x": 150.0,
+          "y": 280.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "GUInot4",
+        "name": "DeserializedSubmodelComponent#3",
         "pos": {
-          "x": 5.0,
-          "y": 35.0
-        },
-        "params": 4
+          "x": 100.0,
+          "y": 330.0
+        }
       },
       {
-        "id": "GUIdff4_finewe",
-        "name": "GUIdff4_finewe#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#4",
         "pos": {
-          "x": 375.0,
-          "y": 170.0
+          "x": 110.0,
+          "y": 60.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#5",
         "pos": {
-          "x": 74.0,
-          "y": 314.0
-        },
-        "params": 1
+          "x": 200.0,
+          "y": 230.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#6",
         "pos": {
-          "x": 424.0,
-          "y": 194.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 180.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#7",
         "pos": {
-          "x": 45.0,
-          "y": 425.0
-        },
-        "params": 3
+          "x": 325.0,
+          "y": 290.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#1",
+        "id": "GUIand",
+        "name": "DeserializedSubmodelComponent#8",
         "pos": {
-          "x": 5.0,
-          "y": 165.0
-        },
-        "params": 4
+          "x": 380.0,
+          "y": 85.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
+        "name": "GUIMerger#0",
         "pos": {
-          "x": 429.0,
-          "y": 204.0
+          "x": 435.0,
+          "y": 175.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 89.0,
-          "y": 94.0
+          "x": 325.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#0",
         "pos": {
-          "x": 19.0,
-          "y": 294.0
+          "x": 5.0,
+          "y": 35.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#1",
         "pos": {
-          "x": 325.0,
-          "y": 90.0
+          "x": 5.0,
+          "y": 165.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#5",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#2",
         "pos": {
-          "x": 200.0,
-          "y": 230.0
-        }
+          "x": 45.0,
+          "y": 425.0
+        },
+        "params": 3
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#7",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#3",
         "pos": {
-          "x": 325.0,
-          "y": 290.0
-        }
+          "x": 5.0,
+          "y": 295.0
+        },
+        "params": 4
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "class:net.mograsim.logic.model.am2900.components.GUIdff4_finewe",
+        "name": "GUIdff4_finewe#0",
         "pos": {
-          "x": 150.0,
-          "y": 280.0
+          "x": 375.0,
+          "y": 170.0
         }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 29.0,
         "params": 1
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 35.0,
-          "y": 250.0
-        }
-      },
-      {
-        "id": "GUInot4",
-        "name": "DeserializedSubmodelComponent#3",
-        "pos": {
-          "x": 100.0,
-          "y": 330.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#4",
-        "pos": {
-          "x": 110.0,
-          "y": 60.0
-        }
-      },
-      {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#1",
         "pos": {
           "x": 414.0,
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 29.0,
-          "y": 254.0
+          "x": 89.0,
+          "y": 84.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 94.0,
-          "y": 364.0
+          "x": 89.0,
+          "y": 94.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 89.0,
-          "y": 104.0
+          "x": 19.0,
+          "y": 294.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 89.0,
-          "y": 84.0
+          "x": 194.0,
+          "y": 234.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 319.0,
-          "y": 294.0
+          "x": 89.0,
+          "y": 104.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 49.0,
-          "y": 114.0
+          "x": 319.0,
+          "y": 294.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#16",
         "pos": {
           "x": 319.0,
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 194.0,
-          "y": 234.0
+          "x": 419.0,
+          "y": 184.0
         },
         "params": 1
       },
       {
-        "id": "GUIand",
-        "name": "DeserializedSubmodelComponent#8",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 380.0,
-          "y": 85.0
-        }
+          "x": 424.0,
+          "y": 194.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#6",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 250.0,
-          "y": 180.0
-        }
+          "x": 429.0,
+          "y": 204.0
+        },
+        "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 5.0,
-          "y": 295.0
+          "x": 84.0,
+          "y": 344.0
         },
-        "params": 4
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#6",
+        "pos": {
+          "x": 94.0,
+          "y": 364.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 29.0,
+          "y": 254.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#8",
+        "pos": {
+          "x": 74.0,
+          "y": 314.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
+        "pos": {
+          "x": 49.0,
+          "y": 114.0
+        },
+        "params": 1
       }
     ],
     "wires": [
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 35.0,
-            "y": 35.0
+            "x": 140.0,
+            "y": 415.0
           },
           {
-            "x": 35.0,
-            "y": 125.0
+            "x": 255.0,
+            "y": 415.0
+          },
+          {
+            "x": 255.0,
+            "y": 280.0
+          },
+          {
+            "x": 340.0,
+            "y": 280.0
+          },
+          {
+            "x": 340.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "S0"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE4"
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 355.0,
+            "y": 30.0
+          },
+          {
+            "x": 355.0,
+            "y": 215.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "mu"
+        },
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#10",
         "path": []
       },
       {
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_3"
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 75.0,
-            "y": 265.0
+            "x": 35.0,
+            "y": 35.0
+          },
+          {
+            "x": 35.0,
+            "y": 125.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#25",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 135.0
+          },
+          {
+            "x": 30.0,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
+          "compName": "GUISplitter#0",
           "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 245.0,
-            "y": 445.0
+            "x": 25.0,
+            "y": 55.0
           },
           {
-            "x": 245.0,
-            "y": 185.0
+            "x": 25.0,
+            "y": 145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#43",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_2"
-        },
-        "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
-        },
-        "name": "unnamedWire#46",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 195.0,
-            "y": 435.0
+            "x": 20.0,
+            "y": 155.0
+          },
+          {
+            "x": 20.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A3"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 425.0,
-            "y": 390.0
-          },
-          {
-            "x": 90.0,
-            "y": 390.0
-          },
-          {
-            "x": 90.0,
-            "y": 355.0
-          }
-        ]
+        "name": "unnamedWire#16",
+        "path": []
       },
       {
         "pin1": {
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_4"
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_2"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "_EN"
         },
         "pin2": {
           "compName": "GUIdff4_finewe#0",
-          "pinName": "C"
+          "pinName": "_WE3"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#2",
         "path": [
-          {
-            "x": 140.0,
-            "y": 415.0
-          },
-          {
-            "x": 255.0,
-            "y": 415.0
-          },
           {
             "x": 255.0,
-            "y": 280.0
+            "y": 25.0
           },
           {
-            "x": 340.0,
-            "y": 280.0
+            "x": 360.0,
+            "y": 25.0
           },
           {
-            "x": 340.0,
-            "y": 175.0
+            "x": 360.0,
+            "y": 205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_2"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y2"
-        },
-        "name": "unnamedWire#31",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "MUX"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 420.0,
-            "y": 385.0
-          },
-          {
-            "x": 85.0,
-            "y": 385.0
+            "x": 40.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "COVD_EN"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#84",
-        "path": [
-          {
-            "x": 275.0,
-            "y": 295.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_3"
+          "compName": "GUISplitter#3",
+          "pinName": "I"
         },
-        "name": "unnamedWire#79",
-        "path": [
-          {
-            "x": 205.0,
-            "y": 85.0
-          },
-          {
-            "x": 205.0,
-            "y": 215.0
-          }
-        ]
+        "name": "unnamedWire#22",
+        "path": []
       },
       {
         "pin1": {
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#24",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 425.0
+          },
+          {
+            "x": 60.0,
+            "y": 415.0
+          },
+          {
+            "x": 30.0,
+            "y": 415.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "A"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_1"
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "I"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q4"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#29",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 25.0,
-            "y": 55.0
+            "x": 155.0,
+            "y": 20.0
           },
           {
-            "x": 25.0,
-            "y": 145.0
+            "x": 365.0,
+            "y": 20.0
+          },
+          {
+            "x": 365.0,
+            "y": 90.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_1"
+        },
+        "name": "unnamedWire#30",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_2"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#31",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_3"
+        },
+        "name": "unnamedWire#32",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y1"
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#34",
         "path": [
           {
-            "x": 30.0,
-            "y": 135.0
+            "x": 415.0,
+            "y": 380.0
           },
           {
-            "x": 30.0,
-            "y": 45.0
+            "x": 80.0,
+            "y": 380.0
+          },
+          {
+            "x": 80.0,
+            "y": 335.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#44",
-        "path": []
+        "name": "unnamedWire#35",
+        "path": [
+          {
+            "x": 420.0,
+            "y": 385.0
+          },
+          {
+            "x": 85.0,
+            "y": 385.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#49",
-        "path": []
+        "name": "unnamedWire#36",
+        "path": [
+          {
+            "x": 425.0,
+            "y": 390.0
+          },
+          {
+            "x": 90.0,
+            "y": 390.0
+          },
+          {
+            "x": 90.0,
+            "y": 355.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_4"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 200.0,
-            "y": 225.0
+            "x": 430.0,
+            "y": 395.0
           },
           {
-            "x": 200.0,
-            "y": 95.0
+            "x": 95.0,
+            "y": 395.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y3"
+          "compName": "GUISplitter#3",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "MUX"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#39",
         "path": [
           {
-            "x": 40.0,
-            "y": 435.0
+            "x": 85.0,
+            "y": 325.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "name": "unnamedWire#28",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE1"
         },
-        "name": "unnamedWire#18",
-        "path": []
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 15.0
+          },
+          {
+            "x": 370.0,
+            "y": 15.0
+          },
+          {
+            "x": 370.0,
+            "y": 185.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#54",
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 90.0,
-            "y": 75.0
+            "x": 95.0,
+            "y": 305.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q4"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#29",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 230.0
+          },
+          {
+            "x": 50.0,
+            "y": 230.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_4"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 415.0,
-            "y": 380.0
-          },
-          {
-            "x": 80.0,
-            "y": 380.0
-          },
-          {
-            "x": 80.0,
-            "y": 335.0
+            "x": 50.0,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "mu"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#46",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#45",
-        "path": [
-          {
-            "x": 50.0,
-            "y": 105.0
-          }
-        ]
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#92",
-        "path": [
-          {
-            "x": 320.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_3"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
           "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
-        "name": "unnamedWire#24",
-        "path": [
-          {
-            "x": 60.0,
-            "y": 425.0
-          },
-          {
-            "x": 60.0,
-            "y": 415.0
-          },
-          {
-            "x": 30.0,
-            "y": 415.0
-          }
-        ]
+        "name": "unnamedWire#51",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#37",
-        "path": [
-          {
-            "x": 430.0,
-            "y": 395.0
-          },
-          {
-            "x": 95.0,
-            "y": 395.0
-          }
-        ]
+        "name": "unnamedWire#52",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#53",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EOVR"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE4"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#54",
         "path": [
           {
-            "x": 355.0,
-            "y": 30.0
-          },
-          {
-            "x": 355.0,
-            "y": 215.0
+            "x": 90.0,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#55",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A2"
+          "compName": "GUISplitter#3",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#58",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "COVD_V"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I1"
-        },
-        "name": "unnamedWire#86",
-        "path": [
-          {
-            "x": 375.0,
-            "y": 325.0
-          },
-          {
-            "x": 320.0,
-            "y": 325.0
-          },
-          {
-            "x": 320.0,
-            "y": 315.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#59",
         "path": [
           {
-            "x": 105.0,
-            "y": 235.0
-          },
-          {
-            "x": 105.0,
-            "y": 65.0
+            "x": 20.0,
+            "y": 245.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "GUIdff4_finewe#0",
-          "pinName": "Q2"
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#6",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D4"
-        },
-        "name": "unnamedWire#70",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 215.0
-          },
-          {
-            "x": 295.0,
-            "y": 255.0
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_2"
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y2"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#64",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#61",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 265.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_4"
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#62",
         "path": [
           {
-            "x": 85.0,
+            "x": 80.0,
             "y": 325.0
+          },
+          {
+            "x": 80.0,
+            "y": 275.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_2"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#67",
         "path": [
           {
-            "x": 95.0,
-            "y": 305.0
+            "x": 195.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#42",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 230.0
-          },
-          {
-            "x": 50.0,
-            "y": 230.0
-          }
-        ]
+        "name": "unnamedWire#68",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#69",
         "path": [
           {
-            "x": 215.0,
-            "y": 65.0
+            "x": 105.0,
+            "y": 235.0
           },
           {
-            "x": 215.0,
-            "y": 195.0
+            "x": 105.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE1"
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#4",
-        "path": [
-          {
-            "x": 55.0,
-            "y": 15.0
-          },
-          {
-            "x": 370.0,
-            "y": 15.0
-          },
-          {
-            "x": 370.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#70",
         "path": [
           {
-            "x": 310.0,
-            "y": 225.0
+            "x": 295.0,
+            "y": 215.0
           },
           {
-            "x": 310.0,
-            "y": 185.0
+            "x": 295.0,
+            "y": 255.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_4"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y4"
-        },
-        "name": "unnamedWire#66",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE3"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 255.0,
-            "y": 25.0
-          },
-          {
-            "x": 360.0,
-            "y": 25.0
+            "x": 300.0,
+            "y": 245.0
           },
           {
-            "x": 360.0,
+            "x": 300.0,
             "y": 205.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#55",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_4"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y4"
-        },
-        "name": "unnamedWire#33",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#8",
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#73",
+        "path": [
+          {
+            "x": 310.0,
+            "y": 225.0
+          },
+          {
+            "x": 310.0,
+            "y": 185.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_4"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#74",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
+          "compName": "DeserializedSubmodelComponent#6",
           "pinName": "I1_3"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#75",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#83",
+        "name": "unnamedWire#76",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#77",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q3"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#26",
-        "path": []
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 225.0
+          },
+          {
+            "x": 200.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D3"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y3"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y3"
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#79",
         "path": [
           {
-            "x": 300.0,
-            "y": 245.0
+            "x": 205.0,
+            "y": 85.0
           },
           {
-            "x": 300.0,
-            "y": 205.0
+            "x": 205.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q1"
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#80",
         "path": [
           {
-            "x": 20.0,
-            "y": 245.0
+            "x": 210.0,
+            "y": 205.0
+          },
+          {
+            "x": 210.0,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#81",
         "path": [
           {
-            "x": 20.0,
-            "y": 155.0
+            "x": 215.0,
+            "y": 65.0
           },
           {
-            "x": 20.0,
-            "y": 65.0
+            "x": 215.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_2"
+          "compName": "GUISplitter#2",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y2"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#80",
+        "name": "unnamedWire#82",
         "path": [
           {
-            "x": 210.0,
-            "y": 205.0
+            "x": 245.0,
+            "y": 445.0
           },
           {
-            "x": 210.0,
-            "y": 75.0
+            "x": 245.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D2"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#83",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "COVD_EN"
+        },
+        "name": "unnamedWire#84",
         "path": [
           {
-            "x": 365.0,
+            "x": 275.0,
             "y": 295.0
-          },
-          {
-            "x": 365.0,
-            "y": 235.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#85",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "COVD_V"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I1"
+        },
+        "name": "unnamedWire#86",
         "path": [
           {
-            "x": 80.0,
+            "x": 375.0,
             "y": 325.0
           },
           {
-            "x": 80.0,
-            "y": 275.0
+            "x": 320.0,
+            "y": 325.0
+          },
+          {
+            "x": 320.0,
+            "y": 315.0
           }
         ]
       },
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#90",
-        "path": []
+        "name": "unnamedWire#88",
+        "path": [
+          {
+            "x": 365.0,
+            "y": 295.0
+          },
+          {
+            "x": 365.0,
+            "y": 235.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "B"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#89",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_2"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#90",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_4"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y4"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#91",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "A"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#92",
         "path": [
           {
-            "x": 155.0,
-            "y": 20.0
-          },
-          {
-            "x": 365.0,
-            "y": 20.0
-          },
-          {
-            "x": 365.0,
-            "y": 90.0
+            "x": 320.0,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#93",
         "path": []
       }
     ],
     "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "MSR",
     "centerTextHeight": 5.0,
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
   },
-  "version": "0.1.4"
+  "version": "0.1.5"
 }
\ No newline at end of file
index 5b35584..e4017fe 100644 (file)
@@ -1,63 +1,69 @@
-mograsim version: 0.1.3
 {
   "width": 60.0,
   "height": 90.0,
   "interfacePins": [
     {
       "location": {
-        "x": 60.0,
-        "y": 60.0
+        "x": 0.0,
+        "y": 50.0
       },
-      "name": "Y101",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 20.0
+        "y": 10.0
       },
-      "name": "Y001",
-      "logicWidth": 1
+      "name": "Y000",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 50.0
+        "y": 20.0
       },
-      "name": "Y100",
-      "logicWidth": 1
+      "name": "Y001",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 80.0
+        "y": 30.0
       },
-      "name": "Y111",
-      "logicWidth": 1
+      "name": "Y010",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 50.0
+        "x": 60.0,
+        "y": 40.0
       },
-      "name": "I",
-      "logicWidth": 4
+      "name": "Y011",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 40.0
+        "y": 50.0
       },
-      "name": "Y011",
-      "logicWidth": 1
+      "name": "Y100",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 10.0
+        "y": 60.0
       },
-      "name": "Y000",
-      "logicWidth": 1
+      "name": "Y101",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,31 +71,32 @@ mograsim version: 0.1.3
         "y": 70.0
       },
       "name": "Y110",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 30.0
+        "y": 80.0
       },
-      "name": "Y010",
-      "logicWidth": 1
+      "name": "Y111",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#0",
         "pos": {
-          "x": 45.0,
-          "y": 50.0
-        },
-        "params": 1
+          "x": 40.0,
+          "y": 20.0
+        }
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 85.0,
@@ -98,16 +105,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 45.0,
-          "y": 105.0
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#2",
         "pos": {
           "x": 120.0,
@@ -116,25 +123,34 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 34.0,
-          "y": 99.0
+          "x": 45.0,
+          "y": 105.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 29.0,
-          "y": 129.0
+          "x": 80.0,
+          "y": 115.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#5",
+        "pos": {
+          "x": 80.0,
+          "y": 165.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
         "name": "GUISplitter#0",
         "pos": {
           "x": 5.0,
@@ -143,16 +159,34 @@ mograsim version: 0.1.3
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 79.0,
-          "y": 24.0
+          "x": 29.0,
+          "y": 129.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 34.0,
+          "y": 99.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#10",
+        "pos": {
+          "x": 39.0,
+          "y": 109.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 79.0,
@@ -161,16 +195,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 24.0,
-          "y": 119.0
+          "x": 79.0,
+          "y": 24.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 19.0,
@@ -179,16 +213,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 74.0,
-          "y": 59.0
+          "x": 24.0,
+          "y": 119.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#6",
         "pos": {
           "x": 39.0,
@@ -197,16 +231,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 24.0,
-          "y": 149.0
+          "x": 74.0,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#8",
         "pos": {
           "x": 74.0,
@@ -215,60 +249,92 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 80.0,
-          "y": 165.0
+          "x": 24.0,
+          "y": 149.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
-        "pos": {
-          "x": 39.0,
-          "y": 109.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
-        "params": 1
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 40.0,
-          "y": 20.0
-        }
+        "pin1": {
+          "compName": "GUISplitter#0",
+          "pinName": "O2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 80.0,
-          "y": 115.0
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 110.0,
+            "y": 20.0
+          },
+          {
+            "x": 110.0,
+            "y": 30.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 115.0,
-            "y": 60.0
-          },
+            "x": 20.0,
+            "y": 65.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#12",
+        "path": [
           {
-            "x": 115.0,
-            "y": 30.0
+            "x": 40.0,
+            "y": 55.0
           }
         ]
       },
@@ -286,15 +352,24 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y000"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16",
-        "path": []
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 60.0
+          },
+          {
+            "x": 115.0,
+            "y": 30.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -315,14 +390,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y000"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
@@ -342,6 +417,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "GUISplitter#0",
@@ -356,18 +443,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#21",
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
+        },
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 20.0,
-            "y": 110.0
+            "x": 35.0,
+            "y": 140.0
           }
         ]
       },
@@ -385,15 +472,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y100"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 110.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -409,14 +501,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y100"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
@@ -442,14 +534,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
@@ -466,14 +558,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Y110"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
@@ -490,75 +582,32 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y110"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
-        },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 25.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -579,37 +628,21 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 110.0,
-            "y": 20.0
-          },
-          {
-            "x": 110.0,
-            "y": 30.0
+            "x": 40.0,
+            "y": 120.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#9",
@@ -629,126 +662,102 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y111"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 35.0,
-            "y": 35.0
+            "x": 30.0,
+            "y": 200.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#4",
         "path": [
           {
-            "x": 40.0,
-            "y": 120.0
+            "x": 35.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 25.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 40.0,
-            "y": 55.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 140.0
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 65.0
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Y111"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#33",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 200.0
-          }
-        ]
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "Test\nlogic",
     "centerTextHeight": 5.0,
@@ -756,10 +765,11 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index fa3ed35..bb91791 100644 (file)
@@ -1,23 +1,15 @@
-mograsim version: 0.1.3
 {
   "width": 45.0,
   "height": 46.0,
   "interfacePins": [
     {
       "location": {
-        "x": 4.0,
+        "x": 14.0,
         "y": 46.0
       },
-      "name": "MUX",
-      "logicWidth": 2
-    },
-    {
-      "location": {
-        "x": 45.0,
-        "y": 19.0
-      },
-      "name": "Q",
-      "logicWidth": 4
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,47 +17,53 @@ mograsim version: 0.1.3
         "y": 46.0
       },
       "name": "CINV",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 14.0,
-        "y": 46.0
+        "x": 0.0,
+        "y": 31.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 5.5,
-        "y": 0.0
+        "x": 0.0,
+        "y": 13.5
       },
-      "name": "_EZ",
-      "logicWidth": 1
+      "name": "M",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 37.5,
+        "x": 4.0,
         "y": 46.0
       },
-      "name": "OVRRET",
-      "logicWidth": 1
+      "name": "MUX",
+      "logicWidth": 2,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 31.0
+        "x": 37.5,
+        "y": 46.0
       },
-      "name": "I",
-      "logicWidth": 4
+      "name": "OVRRET",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 25.5,
-        "y": 0.0
+        "x": 45.0,
+        "y": 19.0
       },
-      "name": "_EN",
-      "logicWidth": 1
+      "name": "Q",
+      "logicWidth": 4,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -73,15 +71,17 @@ mograsim version: 0.1.3
         "y": 0.0
       },
       "name": "_EC",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 13.5
+        "x": 25.5,
+        "y": 0.0
       },
-      "name": "M",
-      "logicWidth": 4
+      "name": "_EN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,23 +89,57 @@ mograsim version: 0.1.3
         "y": 0.0
       },
       "name": "_EOVR",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 5.5,
+        "y": 0.0
+      },
+      "name": "_EZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 45.0,
+          "y": 240.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#1",
+        "pos": {
+          "x": 100.0,
+          "y": 190.0
+        }
+      },
+      {
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#2",
         "pos": {
           "x": 215.0,
-          "y": 255.0
+          "y": 200.0
+        }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIMerger",
+        "name": "GUIMerger#0",
+        "pos": {
+          "x": 435.0,
+          "y": 175.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 245.0,
@@ -114,34 +148,34 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 215.0,
-          "y": 235.0
+          "y": 255.0
         },
         "params": 1
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 435.0,
-          "y": 175.0
+          "x": 215.0,
+          "y": 235.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#0",
         "pos": {
-          "x": 45.0,
-          "y": 430.0
+          "x": 5.0,
+          "y": 120.0
         },
-        "params": 2
+        "params": 4
       },
       {
-        "id": "GUISplitter",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
         "name": "GUISplitter#1",
         "pos": {
           "x": 5.0,
@@ -150,16 +184,24 @@ mograsim version: 0.1.3
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+        "name": "GUISplitter#2",
         "pos": {
-          "x": 89.0,
-          "y": 224.0
+          "x": 45.0,
+          "y": 430.0
         },
-        "params": 1
+        "params": 2
+      },
+      {
+        "id": "class:net.mograsim.logic.model.am2900.components.GUIdff4_finewe",
+        "name": "GUIdff4_finewe#0",
+        "pos": {
+          "x": 375.0,
+          "y": 170.0
+        }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 89.0,
@@ -168,903 +210,872 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 5.0,
-          "y": 120.0
+          "x": 89.0,
+          "y": 224.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 429.0,
-          "y": 204.0
+          "x": 89.0,
+          "y": 214.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 89.0,
-          "y": 214.0
+          "x": 429.0,
+          "y": 204.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 209.0,
           "y": 244.0
         },
         "params": 1
-      },
-      {
-        "id": "GUIdff4_finewe",
-        "name": "GUIdff4_finewe#0",
-        "pos": {
-          "x": 375.0,
-          "y": 170.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 100.0,
-          "y": 190.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 45.0,
-          "y": 240.0
-        }
-      },
-      {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#2",
-        "pos": {
-          "x": 215.0,
-          "y": 200.0
-        }
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "CINV"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "B"
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 275.0,
-            "y": 390.0
-          },
-          {
-            "x": 190.0,
-            "y": 390.0
-          },
-          {
-            "x": 190.0,
-            "y": 215.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y2"
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "A"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q2"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "C"
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#38",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 325.0
-          },
-          {
-            "x": 345.0,
-            "y": 325.0
-          },
-          {
-            "x": 345.0,
-            "y": 175.0
-          }
-        ]
+        "name": "unnamedWire#10",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE1"
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 370.0,
-            "y": 185.0
-          },
-          {
-            "x": 370.0,
-            "y": 5.0
+            "x": 20.0,
+            "y": 150.0
           },
           {
-            "x": 55.0,
-            "y": 5.0
+            "x": 20.0,
+            "y": 285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EOVR"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE4"
+          "compName": "GUISplitter#0",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 355.0,
-            "y": 215.0
+            "x": 25.0,
+            "y": 275.0
+          },
+          {
+            "x": 25.0,
+            "y": 140.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE2"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 155.0,
-            "y": 10.0
-          },
-          {
-            "x": 365.0,
-            "y": 10.0
+            "x": 30.0,
+            "y": 130.0
           },
           {
-            "x": 365.0,
-            "y": 195.0
+            "x": 30.0,
+            "y": 265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE3"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 360.0,
-            "y": 205.0
-          },
-          {
-            "x": 360.0,
-            "y": 15.0
+            "x": 35.0,
+            "y": 255.0
           },
           {
-            "x": 255.0,
-            "y": 15.0
+            "x": 35.0,
+            "y": 120.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "MUX"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D2"
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 310.0,
-            "y": 205.0
-          },
-          {
-            "x": 310.0,
-            "y": 235.0
+            "x": 40.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D1"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 315.0,
-            "y": 225.0
-          },
-          {
-            "x": 315.0,
-            "y": 195.0
+            "x": 90.0,
+            "y": 430.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y4"
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#45",
-        "path": [
-          {
-            "x": 160.0,
-            "y": 245.0
-          },
-          {
-            "x": 160.0,
-            "y": 225.0
-          }
-        ]
+        "name": "unnamedWire#17",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D3"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
+          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "Y3"
         },
-        "name": "unnamedWire#44",
-        "path": [
-          {
-            "x": 305.0,
-            "y": 245.0
-          },
-          {
-            "x": 305.0,
-            "y": 225.0
-          },
-          {
-            "x": 170.0,
-            "y": 225.0
-          },
-          {
-            "x": 170.0,
-            "y": 215.0
-          }
-        ]
+        "name": "unnamedWire#18",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#47",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 240.0
-          }
-        ]
+        "name": "unnamedWire#19",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D4"
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#48",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 250.0
-          }
-        ]
+        "name": "unnamedWire#20",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
-        "path": []
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 90.0,
+            "y": 205.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "I"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "M"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
-        },
-        "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#4",
-        "path": []
+        "name": "unnamedWire#27",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 235.0
+          },
+          {
+            "x": 40.0,
+            "y": 245.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_3"
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#28",
         "path": [
           {
-            "x": 25.0,
-            "y": 275.0
+            "x": 85.0,
+            "y": 440.0
           },
           {
-            "x": 25.0,
-            "y": 140.0
+            "x": 85.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q4"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "pin2": {
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIdff4_finewe#0",
-          "pinName": "Q3"
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_4"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 20.0,
-            "y": 150.0
+            "x": 240.0,
+            "y": 245.0
           },
           {
-            "x": 20.0,
-            "y": 285.0
+            "x": 240.0,
+            "y": 250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 35.0,
-            "y": 255.0
+            "x": 240.0,
+            "y": 260.0
           },
           {
-            "x": 35.0,
-            "y": 120.0
+            "x": 240.0,
+            "y": 265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "_submodelinterface",
+          "pinName": "OVRRET"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 30.0,
-            "y": 130.0
+            "x": 375.0,
+            "y": 360.0
           },
           {
-            "x": 30.0,
-            "y": 265.0
+            "x": 205.0,
+            "y": 360.0
+          },
+          {
+            "x": 205.0,
+            "y": 260.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 90.0,
-            "y": 430.0
-          }
-        ]
+        "name": "unnamedWire#33",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "MUX"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#34",
         "path": [
           {
-            "x": 40.0,
-            "y": 435.0
+            "x": 430.0,
+            "y": 280.0
+          },
+          {
+            "x": 210.0,
+            "y": 280.0
+          },
+          {
+            "x": 210.0,
+            "y": 270.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_3"
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
+          "compName": "_submodelinterface",
+          "pinName": "CINV"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_4"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#17",
-        "path": []
+        "name": "unnamedWire#36",
+        "path": [
+          {
+            "x": 275.0,
+            "y": 390.0
+          },
+          {
+            "x": 190.0,
+            "y": 390.0
+          },
+          {
+            "x": 190.0,
+            "y": 215.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_2"
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#19",
-        "path": []
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 370.0,
+            "y": 185.0
+          },
+          {
+            "x": 370.0,
+            "y": 5.0
+          },
+          {
+            "x": 55.0,
+            "y": 5.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_1"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#38",
         "path": [
           {
-            "x": 90.0,
-            "y": 205.0
+            "x": 140.0,
+            "y": 325.0
+          },
+          {
+            "x": 345.0,
+            "y": 325.0
+          },
+          {
+            "x": 345.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE4"
         },
-        "name": "unnamedWire#20",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#23",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_2"
-        },
-        "name": "unnamedWire#22",
-        "path": []
+        "name": "unnamedWire#39",
+        "path": [
+          {
+            "x": 355.0,
+            "y": 215.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#24",
-        "path": []
+        "name": "unnamedWire#40",
+        "path": [
+          {
+            "x": 360.0,
+            "y": 205.0
+          },
+          {
+            "x": 360.0,
+            "y": 15.0
+          },
+          {
+            "x": 255.0,
+            "y": 15.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE2"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 40.0,
-            "y": 235.0
+            "x": 155.0,
+            "y": 10.0
           },
           {
-            "x": 40.0,
-            "y": 245.0
+            "x": 365.0,
+            "y": 10.0
+          },
+          {
+            "x": 365.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D1"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_4"
-        },
-        "name": "unnamedWire#26",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#29",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 315.0,
+            "y": 225.0
+          },
+          {
+            "x": 315.0,
+            "y": 195.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "S0"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 85.0,
-            "y": 440.0
+            "x": 310.0,
+            "y": 205.0
           },
           {
-            "x": 85.0,
-            "y": 195.0
+            "x": 310.0,
+            "y": 235.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 240.0,
+            "x": 305.0,
             "y": 245.0
           },
           {
-            "x": 240.0,
-            "y": 250.0
+            "x": 305.0,
+            "y": 225.0
+          },
+          {
+            "x": 170.0,
+            "y": 225.0
+          },
+          {
+            "x": 170.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "OVRRET"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 375.0,
-            "y": 360.0
-          },
-          {
-            "x": 205.0,
-            "y": 360.0
+            "x": 160.0,
+            "y": 245.0
           },
           {
-            "x": 205.0,
-            "y": 260.0
+            "x": 160.0,
+            "y": 225.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#46",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 240.0,
-            "y": 260.0
-          },
-          {
-            "x": 240.0,
-            "y": 265.0
+            "x": 210.0,
+            "y": 240.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#48",
         "path": [
-          {
-            "x": 430.0,
-            "y": 280.0
-          },
-          {
-            "x": 210.0,
-            "y": 280.0
-          },
           {
             "x": 210.0,
-            "y": 270.0
+            "y": 250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "M"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I"
+        },
+        "pin2": {
+          "compName": "GUISplitter#1",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_4"
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_3"
+        },
+        "pin2": {
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
+        },
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "muSR",
     "centerTextHeight": 5.0,
@@ -1072,10 +1083,11 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index e410f3b..e078ec5 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 72.0,
   "height": 67.0,
@@ -9,15 +8,8 @@ mograsim version: 0.1.3
         "y": 0.0
       },
       "name": "C",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 36.0,
-        "y": 0.0
-      },
-      "name": "D",
-      "logicWidth": 12
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,15 +17,17 @@ mograsim version: 0.1.3
         "y": 40.0
       },
       "name": "CI",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 6.0
+        "x": 36.0,
+        "y": 0.0
       },
-      "name": "_RLD",
-      "logicWidth": 1
+      "name": "D",
+      "logicWidth": 12,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,31 +35,35 @@ mograsim version: 0.1.3
         "y": 50.0
       },
       "name": "I",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 19.0,
+        "x": 38.0,
         "y": 67.0
       },
-      "name": "_MAP",
-      "logicWidth": 1
+      "name": "Y",
+      "logicWidth": 12,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 44.0
+        "y": 38.0
       },
-      "name": "_CCEN",
-      "logicWidth": 1
+      "name": "_CC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 49.0,
-        "y": 67.0
+        "x": 0.0,
+        "y": 44.0
       },
-      "name": "_OE",
-      "logicWidth": 1
+      "name": "_CCEN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -73,63 +71,120 @@ mograsim version: 0.1.3
         "y": 14.0
       },
       "name": "_FULL",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 38.0,
+        "x": 19.0,
         "y": 67.0
       },
-      "name": "Y",
-      "logicWidth": 12
+      "name": "_MAP",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 13.0,
+        "x": 49.0,
         "y": 67.0
       },
-      "name": "_PL",
-      "logicWidth": 1
+      "name": "_OE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 25.0,
+        "x": 13.0,
         "y": 67.0
       },
-      "name": "_VECT",
-      "logicWidth": 1
+      "name": "_PL",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 38.0
+        "y": 6.0
       },
-      "name": "_CC",
-      "logicWidth": 1
+      "name": "_RLD",
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 25.0,
+        "y": 67.0
+      },
+      "name": "_VECT",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910InstrPLA",
+        "name": "GUIAm2910InstrPLA#0",
         "pos": {
-          "x": 10.0,
-          "y": 210.0
-        },
-        "params": 1
+          "x": 80.0,
+          "y": 155.0
+        }
       },
       {
-        "id": "GUIram5_12",
-        "name": "GUIram5_12#0",
+        "id": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910RegCntr",
+        "name": "GUIAm2910RegCntr#0",
+        "pos": {
+          "x": 160.0,
+          "y": 25.0
+        }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910SP",
+        "name": "GUIAm2910SP#0",
         "pos": {
           "x": 305.0,
-          "y": 100.0
+          "y": 55.0
         }
       },
       {
-        "id": "GUINandGate",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#0",
+        "pos": {
+          "x": 160.0,
+          "y": 95.0
+        },
+        "params": 12
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#1",
+        "pos": {
+          "x": 260.0,
+          "y": 115.0
+        },
+        "params": 12
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#2",
+        "pos": {
+          "x": 345.0,
+          "y": 180.0
+        },
+        "params": 12
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUIBitDisplay",
+        "name": "GUIBitDisplay#3",
+        "pos": {
+          "x": 265.0,
+          "y": 150.0
+        },
+        "params": 12
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
         "name": "GUINandGate#0",
         "pos": {
           "x": 40.0,
@@ -138,7 +193,28 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIdff12",
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 10.0,
+          "y": 210.0
+        },
+        "params": 1
+      },
+      {
+        "id": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
+        "name": "GUITriStateBuffer#0",
+        "pos": {
+          "x": 180.0,
+          "y": 290.0
+        },
+        "params": {
+          "logicWidth": 12,
+          "orientation": "DOWN_ALT"
+        }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.am2900.components.GUIdff12",
         "name": "GUIdff12#0",
         "pos": {
           "x": 305.0,
@@ -146,7 +222,7 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIinc12",
+        "id": "class:net.mograsim.logic.model.am2900.components.GUIinc12",
         "name": "GUIinc12#0",
         "pos": {
           "x": 305.0,
@@ -154,25 +230,31 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
+        "id": "class:net.mograsim.logic.model.am2900.components.GUInor12",
+        "name": "GUInor12#0",
         "pos": {
-          "x": 265.0,
-          "y": 150.0
-        },
-        "params": 12
+          "x": 190.0,
+          "y": 80.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "class:net.mograsim.logic.model.am2900.components.GUIram5_12",
+        "name": "GUIram5_12#0",
         "pos": {
-          "x": 294.0,
-          "y": 104.0
-        },
-        "params": 1
+          "x": 305.0,
+          "y": 100.0
+        }
+      },
+      {
+        "id": "class:net.mograsim.logic.model.am2900.components.GUIsel4_12",
+        "name": "GUIsel4_12#0",
+        "pos": {
+          "x": 150.0,
+          "y": 175.0
+        }
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#0",
         "pos": {
           "x": 324.0,
@@ -181,16 +263,16 @@ mograsim version: 0.1.3
         "params": 12
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 179.0,
-          "y": 89.0
+          "x": 294.0,
+          "y": 104.0
         },
-        "params": 12
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#2",
         "pos": {
           "x": 189.0,
@@ -199,16 +281,16 @@ mograsim version: 0.1.3
         "params": 12
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 4.0,
-          "y": 219.0
+          "x": 179.0,
+          "y": 89.0
         },
-        "params": 1
+        "params": 12
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#4",
         "pos": {
           "x": 179.0,
@@ -217,28 +299,16 @@ mograsim version: 0.1.3
         "params": 12
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 299.0,
-          "y": 44.0
+          "x": 4.0,
+          "y": 219.0
         },
         "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#0",
-        "pos": {
-          "x": 180.0,
-          "y": 290.0
-        },
-        "params": {
-          "logicWidth": 12,
-          "orientation": "DOWN_ALT"
-        }
-      },
-      {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#6",
         "pos": {
           "x": 299.0,
@@ -247,16 +317,16 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
           "x": 299.0,
-          "y": 114.0
+          "y": 44.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
         "name": "WireCrossPoint#8",
         "pos": {
           "x": 299.0,
@@ -265,455 +335,379 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUInor12",
-        "name": "GUInor12#0",
-        "pos": {
-          "x": 190.0,
-          "y": 80.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
-        "pos": {
-          "x": 160.0,
-          "y": 95.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIAm2910InstrPLA",
-        "name": "GUIAm2910InstrPLA#0",
-        "pos": {
-          "x": 80.0,
-          "y": 155.0
-        }
-      },
-      {
-        "id": "GUIAm2910SP",
-        "name": "GUIAm2910SP#0",
-        "pos": {
-          "x": 305.0,
-          "y": 55.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
-        "pos": {
-          "x": 260.0,
-          "y": 115.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
+        "id": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 345.0,
-          "y": 180.0
+          "x": 299.0,
+          "y": 114.0
         },
-        "params": 12
-      },
-      {
-        "id": "GUIsel4_12",
-        "name": "GUIsel4_12#0",
-        "pos": {
-          "x": 150.0,
-          "y": 175.0
-        }
-      },
-      {
-        "id": "GUIAm2910RegCntr",
-        "name": "GUIAm2910RegCntr#0",
-        "pos": {
-          "x": 160.0,
-          "y": 25.0
-        }
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "YD"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIsel4_12#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "YR"
         },
         "pin2": {
-          "compName": "GUIdff12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#35",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIsel4_12#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUInor12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "C"
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "R\u003d0"
         },
-        "name": "unnamedWire#37",
-        "path": []
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 230.0,
+            "y": 90.0
+          },
+          {
+            "x": 230.0,
+            "y": 120.0
+          },
+          {
+            "x": 95.0,
+            "y": 120.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "RWE"
         },
         "pin2": {
           "compName": "GUIAm2910RegCntr#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#39",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "CI"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "CI"
-        },
-        "name": "unnamedWire#41",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "pinName": "WE"
         },
-        "name": "unnamedWire#40",
-        "path": []
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 160.0
+          },
+          {
+            "x": 115.0,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_MAP"
+          "pinName": "RDEC"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_MAP"
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "DEC"
         },
-        "name": "unnamedWire#43",
-        "path": []
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 120.0,
+            "y": 170.0
+          },
+          {
+            "x": 120.0,
+            "y": 55.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_PL"
+          "pinName": "STKI0"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_PL"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 85.0,
-            "y": 290.0
-          },
-          {
-            "x": 65.0,
-            "y": 290.0
+            "x": 295.0,
+            "y": 220.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "STKI1"
         },
         "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "I"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "STKI1"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 70.0,
-            "y": 250.0
+            "x": 290.0,
+            "y": 230.0
           },
           {
-            "x": 70.0,
-            "y": 175.0
+            "x": 290.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_VECT"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_VECT"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "STKI0"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 105.0,
-            "y": 290.0
-          },
-          {
-            "x": 125.0,
-            "y": 290.0
+            "x": 295.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "GUIram5_12#0",
-          "pinName": "Y"
+          "pinName": "WE"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#1",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
+          "compName": "GUIsel4_12#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIBitDisplay#3",
-          "pinName": ""
+          "compName": "GUIinc12#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#49",
-        "path": []
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 325.0,
+            "y": 275.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIinc12#0",
+          "compName": "GUIram5_12#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#2",
-          "pinName": ""
+          "compName": "GUIsel4_12#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#48",
-        "path": []
+        "name": "unnamedWire#19",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 130.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "Y"
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "YF"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIsel4_12#0",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "B"
+          "compName": "GUIsel4_12#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#8",
-        "path": []
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "A"
+          "compName": "GUIsel4_12#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
+          "compName": "GUInor12#0",
           "pinName": "D"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YR"
+          "compName": "_submodelinterface",
+          "pinName": "D"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SB"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "C"
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YD"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIsel4_12#0",
-          "pinName": "SA"
+          "pinName": "A"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 145.0,
+            "y": 15.0
+          },
+          {
+            "x": 145.0,
+            "y": 150.0
+          },
+          {
+            "x": 160.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "OUT"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "name": "unnamedWire#52",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "pinName": "_RLD"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "_RLD"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUInor12#0",
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
           "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "R\u003d0"
+          "pinName": "PASS"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#28",
         "path": [
           {
-            "x": 230.0,
-            "y": 90.0
-          },
-          {
-            "x": 230.0,
-            "y": 120.0
+            "x": 65.0,
+            "y": 195.0
           },
           {
-            "x": 95.0,
-            "y": 120.0
+            "x": 65.0,
+            "y": 160.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "_CC"
         },
         "pin2": {
-          "compName": "GUIdff12#0",
-          "pinName": "D"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#29",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OE"
-        },
-        "name": "unnamedWire#53",
-        "path": [
-          {
-            "x": 245.0,
-            "y": 300.0
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "GUIAm2910InstrPLA#0",
@@ -728,400 +722,419 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RDEC"
+          "compName": "_submodelinterface",
+          "pinName": "_CCEN"
         },
         "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "DEC"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 170.0
-          },
-          {
-            "x": 120.0,
-            "y": 55.0
-          }
-        ]
+        "name": "unnamedWire#30",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YF"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SC"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#2",
-        "path": []
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 215.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RWE"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "WE"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 115.0,
-            "y": 160.0
-          },
-          {
-            "x": 115.0,
-            "y": 45.0
+            "x": 5.0,
+            "y": 225.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI1"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "STKI1"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 290.0,
-            "y": 230.0
+            "x": 35.0,
+            "y": 220.0
           },
           {
-            "x": 290.0,
-            "y": 70.0
+            "x": 35.0,
+            "y": 200.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI0"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "_FULL"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "_submodelinterface",
+          "pinName": "_FULL"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#13",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 220.0
-          }
-        ]
+        "pin2": {
+          "compName": "GUIdff12#0",
+          "pinName": "C"
+        },
+        "name": "unnamedWire#35",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "WE"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2910SP#0",
-          "pinName": "STKI0"
+          "pinName": "C"
         },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 60.0
-          }
-        ]
+        "name": "unnamedWire#37",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#38",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "C"
+        },
+        "name": "unnamedWire#39",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUIinc12#0",
-          "pinName": "A"
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIdff12#0",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 325.0,
-            "y": 275.0
-          }
-        ]
+        "name": "unnamedWire#40",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "Y"
+          "compName": "GUIinc12#0",
+          "pinName": "CI"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "CI"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "Y"
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "_PL"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "C"
+          "compName": "_submodelinterface",
+          "pinName": "_PL"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#42",
         "path": [
           {
-            "x": 200.0,
-            "y": 130.0
+            "x": 85.0,
+            "y": 290.0
+          },
+          {
+            "x": 65.0,
+            "y": 290.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "_MAP"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "_MAP"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "_VECT"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "D"
+          "compName": "_submodelinterface",
+          "pinName": "_VECT"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 220.0,
-            "y": 150.0
+            "x": 105.0,
+            "y": 290.0
+          },
+          {
+            "x": 125.0,
+            "y": 290.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D"
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#45",
+        "path": [
+          {
+            "x": 70.0,
+            "y": 250.0
+          },
+          {
+            "x": 70.0,
+            "y": 175.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUInor12#0",
-          "pinName": "D"
+          "compName": "GUIBitDisplay#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIram5_12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "A"
+          "compName": "GUIBitDisplay#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 145.0,
-            "y": 15.0
-          },
-          {
-            "x": 145.0,
-            "y": 150.0
-          },
-          {
-            "x": 160.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#47",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIinc12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "D"
+          "compName": "GUIBitDisplay#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "compName": "GUIdff12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "GUIBitDisplay#3",
           "pinName": ""
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_RLD"
+          "compName": "GUIdff12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "_RLD"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CC"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIram5_12#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "PASS"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 195.0
-          },
-          {
-            "x": 65.0,
-            "y": 160.0
-          }
-        ]
+        "name": "unnamedWire#51",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CCEN"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "_OE"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#53",
         "path": [
           {
-            "x": 5.0,
-            "y": 225.0
+            "x": 245.0,
+            "y": 300.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUIram5_12#0",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2910SP#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#31",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 215.0
-          }
-        ]
+        "pin2": {
+          "compName": "GUIram5_12#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
           "compName": "GUIAm2910SP#0",
-          "pinName": "_FULL"
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_FULL"
+          "compName": "GUIram5_12#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUIAm2910RegCntr#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 220.0
-          },
-          {
-            "x": 35.0,
-            "y": 200.0
-          }
-        ]
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
-  "symbolRendererSnippetID": "simpleRectangularLike",
+  "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
   "symbolRendererParams": {
     "centerText": "Am2910",
     "centerTextHeight": 5.0,
@@ -1129,10 +1142,11 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
+  "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+  "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/am2910/GUIAm2910_old.json b/net.mograsim.logic.model.editor/components/am2910/GUIAm2910_old.json
deleted file mode 100644 (file)
index 20f9ac0..0000000
+++ /dev/null
@@ -1,1089 +0,0 @@
-mograsim version: 0.1.3
-{
-  "width": 72.0,
-  "height": 61.0,
-  "interfacePins": [
-    {
-      "location": {
-        "x": 19.0,
-        "y": 61.0
-      },
-      "name": "_MAP",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 44.0
-      },
-      "name": "_CCEN",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 60.0,
-        "y": 0.0
-      },
-      "name": "C",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 36.0,
-        "y": 0.0
-      },
-      "name": "D",
-      "logicWidth": 12
-    },
-    {
-      "location": {
-        "x": 72.0,
-        "y": 14.0
-      },
-      "name": "_FULL",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 72.0,
-        "y": 40.0
-      },
-      "name": "CI",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 6.0
-      },
-      "name": "_RLD",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 50.0
-      },
-      "name": "I",
-      "logicWidth": 4
-    },
-    {
-      "location": {
-        "x": 38.0,
-        "y": 61.0
-      },
-      "name": "Y",
-      "logicWidth": 12
-    },
-    {
-      "location": {
-        "x": 13.0,
-        "y": 61.0
-      },
-      "name": "_PL",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 25.0,
-        "y": 61.0
-      },
-      "name": "_VECT",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 38.0
-      },
-      "name": "_CC",
-      "logicWidth": 1
-    }
-  ],
-  "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 10.0,
-          "y": 210.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIram5_12",
-        "name": "GUIram5_12#0",
-        "pos": {
-          "x": 305.0,
-          "y": 100.0
-        }
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
-        "pos": {
-          "x": 40.0,
-          "y": 185.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIdff12",
-        "name": "GUIdff12#0",
-        "pos": {
-          "x": 305.0,
-          "y": 160.0
-        }
-      },
-      {
-        "id": "GUIinc12",
-        "name": "GUIinc12#0",
-        "pos": {
-          "x": 305.0,
-          "y": 190.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
-        "pos": {
-          "x": 265.0,
-          "y": 150.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 294.0,
-          "y": 104.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 324.0,
-          "y": 149.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
-        "pos": {
-          "x": 179.0,
-          "y": 89.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 189.0,
-          "y": 274.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
-        "pos": {
-          "x": 4.0,
-          "y": 219.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
-        "pos": {
-          "x": 179.0,
-          "y": 14.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
-        "pos": {
-          "x": 299.0,
-          "y": 44.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
-        "pos": {
-          "x": 299.0,
-          "y": 79.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
-        "pos": {
-          "x": 299.0,
-          "y": 114.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
-        "pos": {
-          "x": 299.0,
-          "y": 169.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIsel4_12",
-        "name": "GUIsel4_12#0",
-        "pos": {
-          "x": 150.0,
-          "y": 175.0
-        }
-      },
-      {
-        "id": "GUInor12",
-        "name": "GUInor12#0",
-        "pos": {
-          "x": 190.0,
-          "y": 80.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
-        "pos": {
-          "x": 160.0,
-          "y": 95.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIAm2910InstrPLA",
-        "name": "GUIAm2910InstrPLA#0",
-        "pos": {
-          "x": 80.0,
-          "y": 155.0
-        }
-      },
-      {
-        "id": "GUIAm2910SP",
-        "name": "GUIAm2910SP#0",
-        "pos": {
-          "x": 305.0,
-          "y": 55.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
-        "pos": {
-          "x": 260.0,
-          "y": 115.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
-        "pos": {
-          "x": 345.0,
-          "y": 180.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIAm2910RegCntr",
-        "name": "GUIAm2910RegCntr#0",
-        "pos": {
-          "x": 160.0,
-          "y": 25.0
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "name": "unnamedWire#36",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdff12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#35",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#38",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#37",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#39",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "CI"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "CI"
-        },
-        "name": "unnamedWire#41",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#40",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_MAP"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_MAP"
-        },
-        "name": "unnamedWire#43",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_PL"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_PL"
-        },
-        "name": "unnamedWire#42",
-        "path": [
-          {
-            "x": 85.0,
-            "y": 290.0
-          },
-          {
-            "x": 65.0,
-            "y": 290.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
-        },
-        "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#45",
-        "path": [
-          {
-            "x": 70.0,
-            "y": 250.0
-          },
-          {
-            "x": 70.0,
-            "y": 175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_VECT"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_VECT"
-        },
-        "name": "unnamedWire#44",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 290.0
-          },
-          {
-            "x": 125.0,
-            "y": 290.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#47",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#46",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#49",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#48",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "B"
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "A"
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YR"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SB"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#50",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YD"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SA"
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "name": "unnamedWire#51",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUInor12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "R\u003d0"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 230.0,
-            "y": 90.0
-          },
-          {
-            "x": 230.0,
-            "y": 120.0
-          },
-          {
-            "x": 95.0,
-            "y": 120.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIdff12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#4",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YmuPC"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SD"
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RDEC"
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "DEC"
-        },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 170.0
-          },
-          {
-            "x": 120.0,
-            "y": 55.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YF"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SC"
-        },
-        "name": "unnamedWire#2",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RWE"
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "WE"
-        },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 160.0
-          },
-          {
-            "x": 115.0,
-            "y": 45.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI1"
-        },
-        "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "STKI1"
-        },
-        "name": "unnamedWire#14",
-        "path": [
-          {
-            "x": 290.0,
-            "y": 230.0
-          },
-          {
-            "x": 290.0,
-            "y": 70.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI0"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#13",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 220.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "WE"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#16",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "STKI0"
-        },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 60.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIinc12#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 325.0,
-            "y": 275.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#17",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#19",
-        "path": [
-          {
-            "x": 200.0,
-            "y": 130.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#20",
-        "path": [
-          {
-            "x": 220.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "name": "unnamedWire#23",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUInor12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#22",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 145.0,
-            "y": 15.0
-          },
-          {
-            "x": 145.0,
-            "y": 150.0
-          },
-          {
-            "x": 160.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#24",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "name": "unnamedWire#27",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_RLD"
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "_RLD"
-        },
-        "name": "unnamedWire#26",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CC"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#29",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "PASS"
-        },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 195.0
-          },
-          {
-            "x": 65.0,
-            "y": 160.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CCEN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "name": "unnamedWire#30",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#32",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 225.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#31",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 215.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "_FULL"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_FULL"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#33",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 220.0
-          },
-          {
-            "x": 35.0,
-            "y": 200.0
-          }
-        ]
-      }
-    ]
-  },
-  "symbolRendererSnippetID": "simpleRectangularLike",
-  "symbolRendererParams": {
-    "centerText": "Am2910",
-    "centerTextHeight": 5.0,
-    "horizontalComponentCenter": 17.5,
-    "pinLabelHeight": 3.5,
-    "pinLabelMargin": 0.5
-  },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
-  "highLevelStateHandlerParams": {
-    "subcomponentHighLevelStates": {},
-    "atomicHighLevelStates": {}
-  }
-}
\ No newline at end of file
index b406228..97993a7 100644 (file)
@@ -5,6 +5,7 @@ import java.util.Set;
 import net.mograsim.logic.model.model.components.GUIComponent;
 import net.mograsim.logic.model.model.wires.GUIWire;
 
+//TODO a ViewModel is modifiable without casting to ViewModelModifiable via GUIWire::destroy and GUIComponent::destroy
 public class ViewModelModifiable extends ViewModel
 {
        public String getDefaultComponentName(GUIComponent component)
index 843c356..7a74cc0 100644 (file)
@@ -26,7 +26,6 @@ import net.mograsim.logic.model.util.Version;
  */
 public final class SubmodelComponentSerializer
 {
-       // TODO set pin usages of existing components
        public static final Version JSON_VERSION_CURRENT_SERIALIZING = Version.parseSemver("0.1.5");
        public static final Version JSON_VERSION_LATEST_SUPPORTED_DESERIALIZING = Version.parseSemver("0.1.5");
        public static final Version JSON_VERSION_EARLIEST_WITH_USAGE_SERIALIZED = Version.parseSemver("0.1.4");