Removed Java classes for components since they are now fully serialized
authorDaniel Kirschten <daniel.kirschten@gmx.de>
Wed, 17 Jul 2019 12:08:32 +0000 (14:08 +0200)
committerDaniel Kirschten <daniel.kirschten@gmx.de>
Wed, 17 Jul 2019 12:08:32 +0000 (14:08 +0200)
32 files changed:
net.mograsim.logic.model.am2900/META-INF/MANIFEST.MF
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ComponenetSerializer.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/JsonExample.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUI_rsLatch.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIand.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIand41.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIandor414.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdemux2.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdff.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdlatch.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdlatch4.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIfulladder.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIhalfadder.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUImux1.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUImux1_4.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUInand3.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUInot4.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIor4.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIor_4.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIram2.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIram4.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIsel2_4.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIsel3_4.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIxor.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUFuncDecode.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUInclDecode.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUOneBit.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901DestDecode.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901QReg.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901SourceDecode.java [deleted file]

index 4854d0b..048d150 100644 (file)
@@ -3,9 +3,7 @@ Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: net.mograsim.logic.model.am2900;singleton:=true
 Bundle-Version: 0.1.0.qualifier
-Export-Package: net.mograsim.logic.model.examples,
- net.mograsim.logic.model.model.components.mi.nandbased,
- net.mograsim.logic.model.model.components.mi.nandbased.am2901
+Export-Package: net.mograsim.logic.model.examples
 Bundle-RequiredExecutionEnvironment: JavaSE-11
 Require-Bundle: net.mograsim.logic.model;bundle-version="0.1.0";visibility:=reexport
 Automatic-Module-Name: net.mograsim.logic.model.am2900
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ComponenetSerializer.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ComponenetSerializer.java
deleted file mode 100644 (file)
index 8699c3b..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-package net.mograsim.logic.model.examples;
-
-import java.io.IOException;
-
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUI_rsLatch;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIand;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIand41;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIandor414;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIdemux2;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIdff;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIdlatch;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIdlatch4;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIfulladder;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIhalfadder;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUImux1;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUImux1_4;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUInand3;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUInot4;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIor4;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIor_4;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIram2;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIram4;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIsel2_4;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIsel3_4;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIxor;
-import net.mograsim.logic.model.model.components.mi.nandbased.am2901.GUIAm2901;
-import net.mograsim.logic.model.model.components.mi.nandbased.am2901.GUIAm2901ALUFuncDecode;
-import net.mograsim.logic.model.model.components.mi.nandbased.am2901.GUIAm2901ALUInclDecode;
-import net.mograsim.logic.model.model.components.mi.nandbased.am2901.GUIAm2901ALUInclSourceDecodeInclFunctionDecode;
-import net.mograsim.logic.model.model.components.mi.nandbased.am2901.GUIAm2901ALUOneBit;
-import net.mograsim.logic.model.model.components.mi.nandbased.am2901.GUIAm2901DestDecode;
-import net.mograsim.logic.model.model.components.mi.nandbased.am2901.GUIAm2901QReg;
-import net.mograsim.logic.model.model.components.mi.nandbased.am2901.GUIAm2901SourceDecode;
-import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
-import net.mograsim.logic.model.serializing.IdentifierGetter;
-import net.mograsim.logic.model.serializing.SubmodelComponentParams;
-import net.mograsim.logic.model.serializing.SubmodelComponentSerializer;
-import net.mograsim.logic.model.util.JsonHandler;
-
-public class ComponenetSerializer
-{
-       public static void main(String[] args) throws IOException
-       {
-               IdentifierGetter idGetter = new IdentifierGetter();
-               // we know we only use components where this works
-               idGetter.componentIDs = c -> c.getClass().getSimpleName();
-
-               ViewModelModifiable model = new ViewModelModifiable();
-               SubmodelComponent[] components = { new GUIAm2901(model), new GUIAm2901ALUFuncDecode(model), new GUIAm2901ALUInclDecode(model),
-                               new GUIAm2901ALUInclSourceDecodeInclFunctionDecode(model), new GUIAm2901ALUOneBit(model), new GUIAm2901DestDecode(model),
-                               new GUIAm2901QReg(model), new GUIAm2901SourceDecode(model), new GUI_rsLatch(model), new GUIand(model), new GUIand41(model),
-                               new GUIandor414(model), new GUIdemux2(model), new GUIdff(model), new GUIdlatch(model), new GUIdlatch4(model),
-                               new GUIfulladder(model), new GUIhalfadder(model), new GUImux1(model), new GUImux1_4(model), new GUInand3(model),
-                               new GUInot4(model), new GUIor4(model), new GUIor_4(model), new GUIram2(model), new GUIram4(model), new GUIsel2_4(model),
-                               new GUIsel3_4(model), new GUIxor(model) };
-
-               for (SubmodelComponent comp : components)
-               {
-                       SubmodelComponentParams params = SubmodelComponentSerializer.serialize(comp, idGetter);
-                       String shortClassName = comp.getClass().getName().substring("net.mograsim.logic.model.model.components.mi.nandbased.".length());
-                       String path = "components/" + shortClassName.replace('.', '/') + ".json";
-                       JsonHandler.writeJson(params, path);
-               }
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/JsonExample.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/JsonExample.java
deleted file mode 100644 (file)
index 5f95c3e..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-package net.mograsim.logic.model.examples;
-
-import java.io.IOException;
-import java.io.UncheckedIOException;
-
-import com.google.gson.JsonNull;
-
-import net.mograsim.logic.model.SimpleLogicUIStandalone;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUIBitDisplay;
-import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUI_rsLatch;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIfulladder;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-import net.mograsim.logic.model.serializing.SubmodelComponentSerializer;
-import net.mograsim.logic.model.serializing.SubmodelComponentParams;
-import net.mograsim.logic.model.util.JsonHandler;
-
-public class JsonExample
-{
-       public static void main(String[] args)
-       {
-               SimpleLogicUIStandalone.executeVisualisation(JsonExample::basicTest);
-       }
-
-       public static void mappingTest(ViewModelModifiable model)
-       {
-               IndirectGUIComponentCreator.createComponent(model, "Am2901", JsonNull.INSTANCE, "Am2901 instance");
-       }
-
-       private static class TestComponent extends SimpleRectangularSubmodelComponent
-       {
-               protected TestComponent(ViewModelModifiable model, String name)
-               {
-                       super(model, 1, "Test", name);
-                       setSubmodelScale(.4);
-                       setInputPins("Input pin #0");
-                       try
-                       {
-                               SubmodelComponentSerializer.deserialize(submodelModifiable, "HalfAdder.json", "halfadder");
-                       }
-                       catch (IOException e)
-                       {
-                               throw new UncheckedIOException(e);
-                       }
-               }
-       }
-
-       @SuppressWarnings("unused") // GUIWires being created
-       private static void basicTest(ViewModelModifiable viewModel)
-       {
-               GUI_rsLatch comp = new GUI_rsLatch(viewModel, "Original RS latch");
-               comp.moveTo(30, 0);
-               SubmodelComponentParams params = SubmodelComponentSerializer.serialize(comp);
-               String jsonString = JsonHandler.toJson(params);
-               System.out.println(jsonString);
-               SubmodelComponentParams paramsD = JsonHandler.fromJson(jsonString, SubmodelComponentParams.class);
-               SubmodelComponent componentD = SubmodelComponentSerializer.deserialize(viewModel, paramsD, "Deserialized RS latch");
-               componentD.moveTo(30, 50);
-               double h = 0;
-               for (String s : comp.getInputPinNames())
-               {
-                       GUIManualSwitch sw = new GUIManualSwitch(viewModel);
-                       sw.moveTo(0, h);
-                       new GUIWire(viewModel, sw.getOutputPin(), comp.getPin(s));
-                       sw = new GUIManualSwitch(viewModel);
-                       sw.moveTo(0, h + 50);
-                       new GUIWire(viewModel, sw.getOutputPin(), componentD.getPin(s));
-                       h += 20;
-               }
-               h = 0;
-               for (String s : comp.getOutputPinNames())
-               {
-                       GUIBitDisplay bd = new GUIBitDisplay(viewModel);
-                       bd.moveTo(80, h);
-                       new GUIWire(viewModel, bd.getInputPin(), comp.getPin(s));
-                       bd = new GUIBitDisplay(viewModel);
-                       bd.moveTo(80, h + 50);
-                       new GUIWire(viewModel, bd.getInputPin(), componentD.getPin(s));
-                       h += 20;
-               }
-       }
-
-       // Execute only after HalfAdder.json has been created
-       public static void refJsonFromJsonTest(ViewModelModifiable model)
-       {
-               TestComponent t = new TestComponent(model, "Original component");
-               SubmodelComponentSerializer.serialize(t).writeJson("Test.json");
-               SubmodelComponent c;
-               try
-               {
-                       c = SubmodelComponentSerializer.deserialize(model, "Test.json", "Deserialized component");
-               }
-               catch (IOException e)
-               {
-                       throw new UncheckedIOException(e);
-               }
-               c.moveTo(0, 50);
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       public static void createFromJsonExample(ViewModelModifiable model)
-       {
-               SimpleRectangularSubmodelComponent tmp = new GUIfulladder(model, "Original full adder");
-               SubmodelComponentParams pC = SubmodelComponentSerializer.serialize(tmp);
-               tmp.moveTo(1000, 100);
-               try
-               {
-                       pC.writeJson("FullAdder.json");
-                       pC = SubmodelComponentParams.readJson("FullAdder.json");
-               }
-               catch (IOException e)
-               {
-                       e.printStackTrace();
-               }
-
-               SimpleRectangularSubmodelComponent adder;
-               try
-               {
-                       adder = (SimpleRectangularSubmodelComponent) SubmodelComponentSerializer.deserialize(model, "FullAdder.json",
-                                       "Deserialized full adder");
-               }
-               catch (IOException e)
-               {
-                       throw new UncheckedIOException(e);
-               }
-
-               GUIManualSwitch swA = new GUIManualSwitch(model);
-               swA.moveTo(0, 0);
-               GUIManualSwitch swB = new GUIManualSwitch(model);
-               swB.moveTo(0, 25);
-               GUIManualSwitch swC = new GUIManualSwitch(model);
-               swC.moveTo(0, 50);
-
-               adder.moveTo(30, 10);
-               GUIBitDisplay bdY = new GUIBitDisplay(model);
-               bdY.moveTo(90, 12.5);
-               GUIBitDisplay bdZ = new GUIBitDisplay(model);
-               bdZ.moveTo(90, 30);
-
-               new GUIWire(model, swA.getOutputPin(), adder.getPin("A"));
-               new GUIWire(model, swB.getOutputPin(), adder.getPin("B"));
-               new GUIWire(model, swC.getOutputPin(), adder.getPin("C"));
-
-               new GUIWire(model, adder.getPin("Y"), bdY.getInputPin());
-               new GUIWire(model, adder.getPin("Z"), bdZ.getInputPin());
-
-               SubmodelComponent adder2 = SubmodelComponentSerializer.deserialize(model, pC, "Full adder created from params instance");
-
-               swA = new GUIManualSwitch(model);
-               swA.moveTo(0, 70);
-               swB = new GUIManualSwitch(model);
-               swB.moveTo(0, 85);
-               swC = new GUIManualSwitch(model);
-               swC.moveTo(0, 100);
-
-               adder2.moveTo(30, 80);
-               bdY = new GUIBitDisplay(model);
-               bdY.moveTo(90, 70);
-               bdZ = new GUIBitDisplay(model);
-               bdZ.moveTo(90, 85);
-
-               new GUIWire(model, swA.getOutputPin(), adder2.getPin("A"));
-               new GUIWire(model, swB.getOutputPin(), adder2.getPin("B"));
-               new GUIWire(model, swC.getOutputPin(), adder2.getPin("C"));
-
-               new GUIWire(model, adder2.getPin("Y"), bdY.getInputPin());
-               new GUIWire(model, adder2.getPin("Z"), bdZ.getInputPin());
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUI_rsLatch.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUI_rsLatch.java
deleted file mode 100644 (file)
index ba61eda..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import java.util.Arrays;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.WireForcingAtomicHighLevelStateHandler;
-
-public class GUI_rsLatch extends SimpleRectangularSubmodelComponent
-{
-       public GUI_rsLatch(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUI_rsLatch(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "_rsLatch", name);
-               setSubmodelScale(.4);
-               setInputPins("_S", "_R");
-               setOutputPins("Q", "_Q");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin _S = getSubmodelPin("_S");
-               Pin _R = getSubmodelPin("_R");
-               Pin Q = getSubmodelPin("Q");
-               Pin _Q = getSubmodelPin("_Q");
-
-               GUINandGate nand1 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand2 = new GUINandGate(submodelModifiable, 1);
-
-               WireCrossPoint cp1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cp2 = new WireCrossPoint(submodelModifiable, 1);
-
-               nand1.moveTo(10, 7.5);
-               nand2.moveTo(40, 12.5);
-               cp1.moveCenterTo(35, 17.5);
-               cp2.moveCenterTo(65, 37.5);
-
-               new GUIWire(submodelModifiable, _S, nand1.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, _R, nand2.getPin("B"), new Point(35, 37.5), new Point(35, 27.5));
-               new GUIWire(submodelModifiable, nand1.getPin("Y"), cp1, new Point[0]);
-               new GUIWire(submodelModifiable, nand2.getPin("Y"), cp2, new Point(65, 22.5));
-               new GUIWire(submodelModifiable, cp1, nand2.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, cp2, nand1.getPin("B"), new Point(65, 42.5), new Point(5, 42.5), new Point(5, 22.5));
-               GUIWire wireQ = new GUIWire(submodelModifiable, "q", cp1, Q, new Point(35, 17.5), new Point(35, 7.5), new Point(65, 7.5),
-                               new Point(65, 12.5));
-               GUIWire wire_Q = new GUIWire(submodelModifiable, "_q", cp2, _Q, new Point[0]);
-
-               StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
-               highLevelStateHandler.addAtomicHighLevelState("q", WireForcingAtomicHighLevelStateHandler::new).set(Arrays.asList(wireQ),
-                               Arrays.asList(wire_Q));
-               setHighLevelStateHandler(highLevelStateHandler);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUI_rsLatch.class.getCanonicalName(), (m, p, n) -> new GUI_rsLatch(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIand.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIand.java
deleted file mode 100644 (file)
index 1e350e3..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIand extends SimpleRectangularSubmodelComponent
-{
-       public GUIand(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIand(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIand", name);
-               setSubmodelScale(.4);
-               setInputPins("A", "B");
-               setOutputPins("Y");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin A = getSubmodelPin("A");
-               Pin B = getSubmodelPin("B");
-               Pin Y = getSubmodelPin("Y");
-
-               GUINandGate nand = new GUINandGate(submodelModifiable, 1);
-               GUINandGate not = new GUINandGate(submodelModifiable, 1);
-
-               WireCrossPoint cp1 = new WireCrossPoint(submodelModifiable, 1);
-
-               nand.moveTo(20, 15);
-               not.moveTo(50, 15);
-               cp1.moveCenterTo(45, 25);
-
-               new GUIWire(submodelModifiable, A, nand.getPin("A"));
-               new GUIWire(submodelModifiable, B, nand.getPin("B"));
-               new GUIWire(submodelModifiable, nand.getPin("Y"), cp1, new Point[0]);
-               new GUIWire(submodelModifiable, cp1, not.getPin("A"), new Point(45, 20));
-               new GUIWire(submodelModifiable, cp1, not.getPin("B"), new Point(45, 30));
-               new GUIWire(submodelModifiable, not.getPin("Y"), Y);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIand.class.getCanonicalName(), (m, p, n) -> new GUIand(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIand41.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIand41.java
deleted file mode 100644 (file)
index 1074ab2..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIand41 extends SimpleRectangularSubmodelComponent
-{
-       public GUIand41(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIand41(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIand41", name);
-               setSubmodelScale(.4);
-               setInputPins("A1", "A2", "A3", "A4", "B");
-               setOutputPins("Y1", "Y2", "Y3", "Y4");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin A1 = getSubmodelPin("A1");
-               Pin A2 = getSubmodelPin("A2");
-               Pin A3 = getSubmodelPin("A3");
-               Pin A4 = getSubmodelPin("A4");
-               Pin B = getSubmodelPin("B");
-               Pin Y1 = getSubmodelPin("Y1");
-               Pin Y2 = getSubmodelPin("Y2");
-               Pin Y3 = getSubmodelPin("Y3");
-               Pin Y4 = getSubmodelPin("Y4");
-
-               GUIand and1 = new GUIand(submodelModifiable);
-               GUIand and2 = new GUIand(submodelModifiable);
-               GUIand and3 = new GUIand(submodelModifiable);
-               GUIand and4 = new GUIand(submodelModifiable);
-
-               WireCrossPoint cpB2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB4 = new WireCrossPoint(submodelModifiable, 1);
-
-               and1.moveTo(30, 7.5);
-               and2.moveTo(30, 32.5);
-               and3.moveTo(30, 57.5);
-               and4.moveTo(30, 82.5);
-               cpB2.moveCenterTo(25, 47.5);
-               cpB3.moveCenterTo(25, 72.5);
-               cpB4.moveCenterTo(25, 97.5);
-
-               new GUIWire(submodelModifiable, A1, and1.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, A2, and2.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, A3, and3.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, A4, and4.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, B, cpB4, new Point(25, 112.5));
-               new GUIWire(submodelModifiable, cpB4, and4.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpB4, cpB3, new Point[0]);
-               new GUIWire(submodelModifiable, cpB3, and3.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpB3, cpB2, new Point[0]);
-               new GUIWire(submodelModifiable, cpB2, and2.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpB2, and1.getPin("B"), new Point(25, 22.5));
-               new GUIWire(submodelModifiable, and1.getPin("Y"), Y1, new Point[0]);
-               new GUIWire(submodelModifiable, and2.getPin("Y"), Y2, new Point[0]);
-               new GUIWire(submodelModifiable, and3.getPin("Y"), Y3, new Point[0]);
-               new GUIWire(submodelModifiable, and4.getPin("Y"), Y4, new Point[0]);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIand41.class.getCanonicalName(), (m, p, n) -> new GUIand41(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIandor414.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIandor414.java
deleted file mode 100644 (file)
index 963649a..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIandor414 extends SimpleRectangularSubmodelComponent
-{
-       public GUIandor414(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIandor414(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIandor414", name);
-               setSubmodelScale(.4);
-               setInputPins("C1", "C2", "C3", "C4", "A1", "A2", "A3", "A4", "B");
-               setOutputPins("Y1", "Y2", "Y3", "Y4");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin C1 = getSubmodelPin("C1");
-               Pin C2 = getSubmodelPin("C2");
-               Pin C3 = getSubmodelPin("C3");
-               Pin C4 = getSubmodelPin("C4");
-               Pin A1 = getSubmodelPin("A1");
-               Pin A2 = getSubmodelPin("A2");
-               Pin A3 = getSubmodelPin("A3");
-               Pin A4 = getSubmodelPin("A4");
-               Pin B = getSubmodelPin("B");
-               Pin Y1 = getSubmodelPin("Y1");
-               Pin Y2 = getSubmodelPin("Y2");
-               Pin Y3 = getSubmodelPin("Y3");
-               Pin Y4 = getSubmodelPin("Y4");
-
-               GUIand41 and = new GUIand41(submodelModifiable);
-               GUIor_4 or = new GUIor_4(submodelModifiable);
-
-               and.moveTo(15, 137.5);
-               or.moveTo(35, 37.5);
-
-               new GUIWire(submodelModifiable, A1, and.getPin("A1"), new Point(10, 112.5), new Point(10, 142.5));
-               new GUIWire(submodelModifiable, A2, and.getPin("A2"), new Point(5, 137.5), new Point(5, 152.5));
-               new GUIWire(submodelModifiable, A3, and.getPin("A3"), new Point[0]);
-               new GUIWire(submodelModifiable, A4, and.getPin("A4"), new Point(5, 187.5), new Point(5, 172.5));
-               new GUIWire(submodelModifiable, B, and.getPin("B"), new Point(10, 212.5), new Point(10, 182.5));
-               new GUIWire(submodelModifiable, C1, or.getPin("A1"), new Point(10, 12.5), new Point(10, 42.5));
-               new GUIWire(submodelModifiable, C2, or.getPin("A2"), new Point(5, 37.5), new Point(5, 52.5));
-               new GUIWire(submodelModifiable, C3, or.getPin("A3"), new Point[0]);
-               new GUIWire(submodelModifiable, C4, or.getPin("A4"), new Point(5, 87.5), new Point(5, 72.5));
-               new GUIWire(submodelModifiable, and.getPin("Y1"), or.getPin("B1"), new Point(70, 142.5), new Point(70, 120), new Point(30, 120),
-                               new Point(30, 82.5));
-               new GUIWire(submodelModifiable, and.getPin("Y2"), or.getPin("B2"), new Point(65, 152.5), new Point(65, 125), new Point(25, 125),
-                               new Point(25, 92.5));
-               new GUIWire(submodelModifiable, and.getPin("Y3"), or.getPin("B3"), new Point(60, 162.5), new Point(60, 130), new Point(20, 130),
-                               new Point(20, 102.5));
-               new GUIWire(submodelModifiable, and.getPin("Y4"), or.getPin("B4"), new Point(55, 172.5), new Point(55, 135), new Point(15, 135),
-                               new Point(15, 112.5));
-               new GUIWire(submodelModifiable, or.getPin("Y1"), Y1, new Point(75, 42.5), new Point(75, 12.5));
-               new GUIWire(submodelModifiable, or.getPin("Y2"), Y2, new Point(80, 52.5), new Point(80, 37.5));
-               new GUIWire(submodelModifiable, or.getPin("Y3"), Y3, new Point[0]);
-               new GUIWire(submodelModifiable, or.getPin("Y4"), Y4, new Point(80, 72.5), new Point(80, 87.5));
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIandor414.class.getCanonicalName(), (m, p, n) -> new GUIandor414(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdemux2.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdemux2.java
deleted file mode 100644 (file)
index 2b61cd4..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIdemux2 extends SimpleRectangularSubmodelComponent
-{
-       public GUIdemux2(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIdemux2(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIdemux2", name);
-               setSubmodelScale(.4);
-               setInputPins("S0", "S1");
-               setOutputPins("Y00", "Y01", "Y10", "Y11");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin S0 = getSubmodelPin("S0");
-               Pin S1 = getSubmodelPin("S1");
-               Pin Y00 = getSubmodelPin("Y00");
-               Pin Y01 = getSubmodelPin("Y01");
-               Pin Y10 = getSubmodelPin("Y10");
-               Pin Y11 = getSubmodelPin("Y11");
-
-               GUINandGate notS0 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notS1 = new GUINandGate(submodelModifiable, 1);
-               GUIand andY00 = new GUIand(submodelModifiable);
-               GUIand andY01 = new GUIand(submodelModifiable);
-               GUIand andY10 = new GUIand(submodelModifiable);
-               GUIand andY11 = new GUIand(submodelModifiable);
-
-               WireCrossPoint cpS01 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpS02 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpS03 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpS11 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpS12 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpS13 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNotS0 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNotS1 = new WireCrossPoint(submodelModifiable, 1);
-
-               notS0.moveTo(10, 2.5);
-               notS1.moveTo(10, 27.5);
-               andY00.moveTo(40, 2.5);
-               andY01.moveTo(40, 27.5);
-               andY10.moveTo(40, 52.5);
-               andY11.moveTo(40, 77.5);
-               cpS01.moveCenterTo(7.5, 12.5);
-               cpS11.moveCenterTo(5, 37.5);
-               cpS02.moveCenterTo(7.5, 17.5);
-               cpS12.moveCenterTo(5, 42.5);
-               cpS03.moveCenterTo(37.5, 62.5);
-               cpS13.moveCenterTo(32.5, 67.5);
-               cpNotS0.moveCenterTo(32.5, 12.5);
-               cpNotS1.moveCenterTo(35, 37.5);
-
-               new GUIWire(submodelModifiable, S0, cpS01, new Point[0]);
-               new GUIWire(submodelModifiable, S1, cpS11, new Point[0]);
-               new GUIWire(submodelModifiable, cpS01, notS0.getPin("A"), new Point(7.5, 7.5));
-               new GUIWire(submodelModifiable, cpS11, notS1.getPin("A"), new Point(5, 32.5));
-               new GUIWire(submodelModifiable, cpS01, cpS02, new Point[0]);
-               new GUIWire(submodelModifiable, cpS11, cpS12, new Point[0]);
-               new GUIWire(submodelModifiable, cpS02, notS0.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpS12, notS1.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpS02, cpS03, new Point(7.5, 62.5));
-               new GUIWire(submodelModifiable, cpS12, cpS13, new Point(5, 67.5), new Point(32.5, 67.5));
-               new GUIWire(submodelModifiable, notS0.getPin("Y"), cpNotS0, new Point[0]);
-               new GUIWire(submodelModifiable, notS1.getPin("Y"), cpNotS1, new Point[0]);
-               new GUIWire(submodelModifiable, cpNotS0, andY00.getPin("A"), new Point(32.5, 7.5));
-               new GUIWire(submodelModifiable, cpNotS1, andY00.getPin("B"), new Point(35, 17.5));
-               new GUIWire(submodelModifiable, cpS03, andY01.getPin("A"), new Point(37.5, 32.5));
-               new GUIWire(submodelModifiable, cpNotS1, andY01.getPin("B"), new Point(35, 42.5));
-               new GUIWire(submodelModifiable, cpNotS0, andY10.getPin("A"), new Point(32.5, 57.5));
-               new GUIWire(submodelModifiable, cpS13, andY10.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpS03, andY11.getPin("A"), new Point(37.5, 82.5));
-               new GUIWire(submodelModifiable, cpS13, andY11.getPin("B"), new Point(32.5, 92.5));
-               new GUIWire(submodelModifiable, andY00.getPin("Y"), Y00);
-               new GUIWire(submodelModifiable, andY01.getPin("Y"), Y01);
-               new GUIWire(submodelModifiable, andY10.getPin("Y"), Y10);
-               new GUIWire(submodelModifiable, andY11.getPin("Y"), Y11);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIdemux2.class.getCanonicalName(), (m, p, n) -> new GUIdemux2(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdff.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdff.java
deleted file mode 100644 (file)
index 22d013f..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler;
-
-public class GUIdff extends SimpleRectangularSubmodelComponent
-{
-       public GUIdff(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIdff(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIdff", name);
-               setSubmodelScale(.2);
-               setInputPins("C", "D");
-               setOutputPins("Q", "_Q");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin C = getSubmodelPin("C");
-               Pin D = getSubmodelPin("D");
-               Pin Q = getSubmodelPin("Q");
-               Pin _Q = getSubmodelPin("_Q");
-
-               GUI_rsLatch _rsLatch1 = new GUI_rsLatch(submodelModifiable);
-               GUInand3 nand3 = new GUInand3(submodelModifiable);
-               GUINandGate nand2 = new GUINandGate(submodelModifiable, 1);
-               GUI_rsLatch _rsLatch2 = new GUI_rsLatch(submodelModifiable);
-
-               WireCrossPoint cp1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cp2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cp3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cp4 = new WireCrossPoint(submodelModifiable, 1);
-
-               _rsLatch1.moveTo(40, 10);
-               nand3.moveTo(40, 40);
-               nand2.moveTo(120, 60);
-               _rsLatch2.moveTo(120, 30);
-               cp1.moveCenterTo(10, 25);
-               cp2.moveCenterTo(20, 65);
-               cp3.moveCenterTo(100, 35);
-               cp4.moveCenterTo(100, 45);
-
-               new GUIWire(submodelModifiable, C, cp1, new Point[0]);
-               new GUIWire(submodelModifiable, cp1, _rsLatch1.getPin("_R"), new Point[0]);
-               new GUIWire(submodelModifiable, cp1, nand3.getPin("B"), new Point(10, 55));
-               new GUIWire(submodelModifiable, D, nand2.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, nand2.getPin("Y"), cp2, new Point(145, 70), new Point(145, 85), new Point(20, 85));
-               new GUIWire(submodelModifiable, cp2, _rsLatch1.getPin("_S"), new Point(20, 15));
-               new GUIWire(submodelModifiable, cp2, nand3.getPin("C"), new Point[0]);
-               new GUIWire(submodelModifiable, _rsLatch1.getPin("_Q"), cp3, new Point(100, 25));
-               new GUIWire(submodelModifiable, cp3, nand3.getPin("A"), new Point(30, 35), new Point(30, 45));
-               new GUIWire(submodelModifiable, cp3, _rsLatch2.getPin("_S"), new Point[0]);
-               new GUIWire(submodelModifiable, nand3.getPin("Y"), cp4, new Point[0]);
-               new GUIWire(submodelModifiable, cp4, _rsLatch2.getPin("_R"), new Point[0]);
-               new GUIWire(submodelModifiable, cp4, nand2.getPin("A"), new Point(100, 65));
-               new GUIWire(submodelModifiable, _rsLatch2.getPin("Q"), Q);
-               new GUIWire(submodelModifiable, _rsLatch2.getPin("_Q"), _Q);
-
-               StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
-               highLevelStateHandler.addAtomicHighLevelState("q", DelegatingAtomicHighLevelStateHandler::new).set(_rsLatch2, "q");
-               setHighLevelStateHandler(highLevelStateHandler);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIdff.class.getCanonicalName(), (m, p, n) -> new GUIdff(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdlatch.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdlatch.java
deleted file mode 100644 (file)
index e24c478..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler;
-
-public class GUIdlatch extends SimpleRectangularSubmodelComponent
-{
-       public GUIdlatch(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIdlatch(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIdlatch", name);
-               setSubmodelScale(.4);
-               setInputPins("D", "E");
-               setOutputPins("Q", "_Q");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin D = getSubmodelPin("D");
-               Pin E = getSubmodelPin("E");
-               Pin Q = getSubmodelPin("Q");
-               Pin _Q = getSubmodelPin("_Q");
-
-               GUINandGate nand1 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand2 = new GUINandGate(submodelModifiable, 1);
-               GUI_rsLatch _rsLatch = new GUI_rsLatch(submodelModifiable);
-
-               WireCrossPoint cp1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cp2 = new WireCrossPoint(submodelModifiable, 1);
-
-               nand1.moveTo(10, 2.5);
-               nand2.moveTo(15, 27.5);
-               _rsLatch.moveTo(45, 7.5);
-               cp1.moveCenterTo(5, 37.5);
-               cp2.moveCenterTo(35, 12.5);
-
-               new GUIWire(submodelModifiable, D, nand1.getPin("A"));
-               new GUIWire(submodelModifiable, E, cp1, new Point[0]);
-               new GUIWire(submodelModifiable, cp1, nand1.getPin("B"), new Point(5, 17.5));
-               new GUIWire(submodelModifiable, cp1, nand2.getPin("B"), new Point(5, 42.5));
-               new GUIWire(submodelModifiable, nand1.getPin("Y"), cp2, new Point[0]);
-               new GUIWire(submodelModifiable, cp2, nand2.getPin("A"), new Point(35, 25), new Point(10, 25), new Point(10, 32.5));
-               new GUIWire(submodelModifiable, cp2, _rsLatch.getPin("_S"), new Point[0]);
-               new GUIWire(submodelModifiable, nand2.getPin("Y"), _rsLatch.getPin("_R"), new Point(40, 37.5), new Point(40, 22.5));
-               new GUIWire(submodelModifiable, _rsLatch.getPin("Q"), Q, new Point[0]);
-               new GUIWire(submodelModifiable, _rsLatch.getPin("_Q"), _Q);
-
-               StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
-               highLevelStateHandler.addAtomicHighLevelState("q", DelegatingAtomicHighLevelStateHandler::new).set(_rsLatch, "q");
-               setHighLevelStateHandler(highLevelStateHandler);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIdlatch.class.getCanonicalName(), (m, p, n) -> new GUIdlatch(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdlatch4.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdlatch4.java
deleted file mode 100644 (file)
index acca4ab..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import java.util.Arrays;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler;
-
-public class GUIdlatch4 extends SimpleRectangularSubmodelComponent
-{
-       public GUIdlatch4(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIdlatch4(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIdlatch4", name);
-               setSubmodelScale(.4);
-               setInputPins("D1", "D2", "D3", "D4", "C");
-               setOutputPins("Q1", "Q2", "Q3", "Q4");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin D1 = getSubmodelPin("D1");
-               Pin D2 = getSubmodelPin("D2");
-               Pin D3 = getSubmodelPin("D3");
-               Pin D4 = getSubmodelPin("D4");
-               Pin C = getSubmodelPin("C");
-               Pin Q1 = getSubmodelPin("Q1");
-               Pin Q2 = getSubmodelPin("Q2");
-               Pin Q3 = getSubmodelPin("Q3");
-               Pin Q4 = getSubmodelPin("Q4");
-
-               GUIdlatch dlatch1 = new GUIdlatch(submodelModifiable);
-               GUIdlatch dlatch2 = new GUIdlatch(submodelModifiable);
-               GUIdlatch dlatch3 = new GUIdlatch(submodelModifiable);
-               GUIdlatch dlatch4 = new GUIdlatch(submodelModifiable);
-
-               WireCrossPoint cp2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cp3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cp4 = new WireCrossPoint(submodelModifiable, 1);
-
-               dlatch1.moveTo(30, 7.5);
-               dlatch2.moveTo(30, 32.5);
-               dlatch3.moveTo(30, 57.5);
-               dlatch4.moveTo(30, 82.5);
-               cp2.moveCenterTo(15, 47.5);
-               cp3.moveCenterTo(15, 72.5);
-               cp4.moveCenterTo(15, 97.5);
-
-               new GUIWire(submodelModifiable, C, cp4, new Point(15, 112.5));
-               new GUIWire(submodelModifiable, cp4, dlatch4.getPin("E"), new Point[0]);
-               new GUIWire(submodelModifiable, cp4, cp3, new Point[0]);
-               new GUIWire(submodelModifiable, cp3, dlatch3.getPin("E"), new Point[0]);
-               new GUIWire(submodelModifiable, cp3, cp2, new Point[0]);
-               new GUIWire(submodelModifiable, cp2, dlatch2.getPin("E"), new Point[0]);
-               new GUIWire(submodelModifiable, cp2, dlatch1.getPin("E"), new Point(15, 22.5));
-               new GUIWire(submodelModifiable, D1, dlatch1.getPin("D"), new Point[0]);
-               new GUIWire(submodelModifiable, D2, dlatch2.getPin("D"), new Point[0]);
-               new GUIWire(submodelModifiable, D3, dlatch3.getPin("D"), new Point[0]);
-               new GUIWire(submodelModifiable, D4, dlatch4.getPin("D"), new Point[0]);
-               new GUIWire(submodelModifiable, dlatch1.getPin("Q"), Q1, new Point[0]);
-               new GUIWire(submodelModifiable, dlatch2.getPin("Q"), Q2, new Point[0]);
-               new GUIWire(submodelModifiable, dlatch3.getPin("Q"), Q3, new Point[0]);
-               new GUIWire(submodelModifiable, dlatch4.getPin("Q"), Q4, new Point[0]);
-
-               StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
-               highLevelStateHandler.addAtomicHighLevelState("q1", DelegatingAtomicHighLevelStateHandler::new).set(dlatch1, "q");
-               highLevelStateHandler.addAtomicHighLevelState("q2", DelegatingAtomicHighLevelStateHandler::new).set(dlatch2, "q");
-               highLevelStateHandler.addAtomicHighLevelState("q3", DelegatingAtomicHighLevelStateHandler::new).set(dlatch3, "q");
-               highLevelStateHandler.addAtomicHighLevelState("q4", DelegatingAtomicHighLevelStateHandler::new).set(dlatch4, "q");
-               highLevelStateHandler.addAtomicHighLevelState("q", BitVectorSplittingAtomicHighLevelStateHandler::new)
-                               .set(Arrays.asList("q1", "q2", "q3", "q4"), Arrays.asList(1, 1, 1, 1));
-               setHighLevelStateHandler(highLevelStateHandler);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIdlatch4.class.getCanonicalName(), (m, p, n) -> new GUIdlatch4(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIfulladder.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIfulladder.java
deleted file mode 100644 (file)
index 258da91..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIfulladder extends SimpleRectangularSubmodelComponent
-{
-       public GUIfulladder(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIfulladder(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIfulladder", name);
-               setSubmodelScale(.4);
-               setInputPins("A", "B", "C");
-               setOutputPins("Y", "Z");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin A = getSubmodelPin("A");
-               Pin B = getSubmodelPin("B");
-               Pin C = getSubmodelPin("C");
-               Pin Y = getSubmodelPin("Y");
-               Pin Z = getSubmodelPin("Z");
-
-               GUIhalfadder halfBC = new GUIhalfadder(submodelModifiable);
-               GUIhalfadder halfAY = new GUIhalfadder(submodelModifiable);
-               GUINandGate nandZ = new GUINandGate(submodelModifiable, 1);
-
-               halfAY.moveTo(45, 7.5);
-               halfBC.moveTo(5, 40);
-               nandZ.moveTo(57.5, 40);
-
-               new GUIWire(submodelModifiable, A, halfAY.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, B, halfBC.getPin("A"));
-               new GUIWire(submodelModifiable, C, halfBC.getPin("B"));
-               new GUIWire(submodelModifiable, halfBC.getPin("Y"), halfAY.getPin("B"));
-               new GUIWire(submodelModifiable, halfBC.getPin("_Z"), nandZ.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, halfAY.getPin("Y"), Y, new Point[0]);
-               new GUIWire(submodelModifiable, halfAY.getPin("_Z"), nandZ.getPin("A"), new Point(82.5, 22.5), new Point(82.5, 35),
-                               new Point(52.5, 35), new Point(52.5, 45));
-               new GUIWire(submodelModifiable, nandZ.getPin("Y"), Z);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIfulladder.class.getCanonicalName(), (m, p, n) -> new GUIfulladder(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIhalfadder.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIhalfadder.java
deleted file mode 100644 (file)
index 3b100fd..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIhalfadder extends SimpleRectangularSubmodelComponent
-{
-       public GUIhalfadder(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIhalfadder(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIhalfadder", name);
-               setSubmodelScale(.4);
-               setInputPins("A", "B");
-               setOutputPins("Y", "_Z");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin A = getSubmodelPin("A");
-               Pin B = getSubmodelPin("B");
-               Pin Y = getSubmodelPin("Y");
-               Pin _Z = getSubmodelPin("_Z");
-
-               GUINandGate nand_Z = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandYA = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandYB = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY = new GUINandGate(submodelModifiable, 1);
-
-               WireCrossPoint cpA = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cp_Z = new WireCrossPoint(submodelModifiable, 1);
-
-               nand_Z.moveTo(10, 15);
-               nandYA.moveTo(40, 2.5);
-               nandYB.moveTo(40, 27.5);
-               nandY.moveTo(65, 2.5);
-               cpA.moveCenterTo(5, 12.5);
-               cpB.moveCenterTo(5, 37.5);
-               cp_Z.moveCenterTo(35, 25);
-
-               new GUIWire(submodelModifiable, A, cpA, new Point[0]);
-               new GUIWire(submodelModifiable, cpA, nandYA.getPin("A"), new Point(5, 7.5));
-               new GUIWire(submodelModifiable, cpA, nand_Z.getPin("A"), new Point(5, 20));
-               new GUIWire(submodelModifiable, B, cpB, new Point[0]);
-               new GUIWire(submodelModifiable, cpB, nandYB.getPin("B"), new Point(5, 42.5));
-               new GUIWire(submodelModifiable, cpB, nand_Z.getPin("B"), new Point(5, 30));
-               new GUIWire(submodelModifiable, nand_Z.getPin("Y"), cp_Z, new Point[0]);
-               new GUIWire(submodelModifiable, cp_Z, _Z, new Point(80, 25), new Point(80, 37.5));
-               new GUIWire(submodelModifiable, cp_Z, nandYA.getPin("B"), new Point(35, 17.5));
-               new GUIWire(submodelModifiable, cp_Z, nandYB.getPin("A"), new Point(35, 32.5));
-               new GUIWire(submodelModifiable, nandYA.getPin("Y"), nandY.getPin("A"), new Point(62.5, 12.5), new Point(62.5, 7.5));
-               new GUIWire(submodelModifiable, nandYB.getPin("Y"), nandY.getPin("B"), new Point(62.5, 37.5), new Point(62.5, 17.5));
-               new GUIWire(submodelModifiable, nandY.getPin("Y"), Y, new Point[0]);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIhalfadder.class.getCanonicalName(), (m, p, n) -> new GUIhalfadder(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUImux1.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUImux1.java
deleted file mode 100644 (file)
index 53682e9..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUImux1 extends SimpleRectangularSubmodelComponent
-{
-       public GUImux1(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUImux1(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUImux1", name);
-               setSubmodelScale(.4);
-               setInputPins("S0", "I0", "I1");
-               setOutputPins("Y");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused")
-       private void initSubmodelComponents()
-       {
-               Pin S0 = getSubmodelPin("S0");
-               Pin I0 = getSubmodelPin("I0");
-               Pin I1 = getSubmodelPin("I1");
-               Pin Y = getSubmodelPin("Y");
-
-               GUINandGate nandS0 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandI0 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandI1 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY = new GUINandGate(submodelModifiable, 1);
-
-               WireCrossPoint cp0 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cp1 = new WireCrossPoint(submodelModifiable, 1);
-
-               nandS0.moveTo(10, 7.5);
-               nandI0.moveTo(35, 22.5);
-               nandI1.moveTo(35, 47.5);
-               nandY.moveTo(60, 30);
-               cp0.moveCenterTo(5, 12.5);
-               cp1.moveCenterTo(5, 22.5);
-
-               new GUIWire(submodelModifiable, S0, cp0, new Point[0]);
-               new GUIWire(submodelModifiable, cp0, nandS0.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, cp0, cp1, new Point[0]);
-               new GUIWire(submodelModifiable, cp1, nandS0.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, nandS0.getPin("Y"), nandI0.getPin("A"));
-               new GUIWire(submodelModifiable, I0, nandI0.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cp1, nandI1.getPin("A"), new Point(5, 52.5));
-               new GUIWire(submodelModifiable, I1, nandI1.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, nandI0.getPin("Y"), nandY.getPin("A"));
-               new GUIWire(submodelModifiable, nandI1.getPin("Y"), nandY.getPin("B"));
-               new GUIWire(submodelModifiable, nandY.getPin("Y"), Y);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUImux1.class.getCanonicalName(), (m, p, n) -> new GUImux1(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUImux1_4.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUImux1_4.java
deleted file mode 100644 (file)
index 8bfcce6..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUImux1_4 extends SimpleRectangularSubmodelComponent
-{
-       public GUImux1_4(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUImux1_4(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUImux1_4", name);
-               setSubmodelScale(.4);
-               setInputPins("S0", "I0_1", "I0_2", "I0_3", "I0_4", "I1_1", "I1_2", "I1_3", "I1_4");
-               setOutputPins("Y1", "Y2", "Y3", "Y4");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused")
-       private void initSubmodelComponents()
-       {
-               Pin S0 = getSubmodelPin("S0");
-               Pin I0_1 = getSubmodelPin("I0_1");
-               Pin I0_2 = getSubmodelPin("I0_2");
-               Pin I0_3 = getSubmodelPin("I0_3");
-               Pin I0_4 = getSubmodelPin("I0_4");
-               Pin I1_1 = getSubmodelPin("I1_1");
-               Pin I1_2 = getSubmodelPin("I1_2");
-               Pin I1_3 = getSubmodelPin("I1_3");
-               Pin I1_4 = getSubmodelPin("I1_4");
-               Pin Y1 = getSubmodelPin("Y1");
-               Pin Y2 = getSubmodelPin("Y2");
-               Pin Y3 = getSubmodelPin("Y3");
-               Pin Y4 = getSubmodelPin("Y4");
-
-               GUImux1 mux1 = new GUImux1(submodelModifiable);
-               GUImux1 mux2 = new GUImux1(submodelModifiable);
-               GUImux1 mux3 = new GUImux1(submodelModifiable);
-               GUImux1 mux4 = new GUImux1(submodelModifiable);
-
-               WireCrossPoint cp1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cp2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cp3 = new WireCrossPoint(submodelModifiable, 1);
-
-               mux1.moveTo(30, 7.5);
-               mux2.moveTo(30, 42.5);
-               mux3.moveTo(30, 77.5);
-               mux4.moveTo(30, 112.5);
-               cp1.moveCenterTo(25, 12.5);
-               cp2.moveCenterTo(25, 47.5);
-               cp3.moveCenterTo(25, 82.5);
-
-               new GUIWire(submodelModifiable, S0, cp1, new Point[0]);
-               new GUIWire(submodelModifiable, cp1, mux1.getPin("S0"), new Point[0]);
-               new GUIWire(submodelModifiable, I0_1, mux1.getPin("I0"), new Point(5, 37.5), new Point(5, 22.5));
-               new GUIWire(submodelModifiable, I1_1, mux1.getPin("I1"), new Point(10, 137.5), new Point(10, 32.5));
-               new GUIWire(submodelModifiable, mux1.getPin("Y"), Y1, new Point[0]);
-               new GUIWire(submodelModifiable, cp1, cp2, new Point[0]);
-               new GUIWire(submodelModifiable, cp2, mux2.getPin("S0"), new Point[0]);
-               new GUIWire(submodelModifiable, I0_2, mux2.getPin("I0"), new Point(5, 62.5), new Point(5, 57.5));
-               new GUIWire(submodelModifiable, I1_2, mux2.getPin("I1"), new Point(15, 162.5), new Point(15, 67.5));
-               new GUIWire(submodelModifiable, mux2.getPin("Y"), Y2);
-               new GUIWire(submodelModifiable, cp2, cp3, new Point[0]);
-               new GUIWire(submodelModifiable, cp3, mux3.getPin("S0"), new Point[0]);
-               new GUIWire(submodelModifiable, I0_3, mux3.getPin("I0"), new Point(5, 87.5), new Point(5, 92.5));
-               new GUIWire(submodelModifiable, I1_3, mux3.getPin("I1"), new Point(20, 187.5), new Point(20, 102.5));
-               new GUIWire(submodelModifiable, mux3.getPin("Y"), Y3);
-               new GUIWire(submodelModifiable, cp3, mux4.getPin("S0"), new Point(25, 117.5));
-               new GUIWire(submodelModifiable, I0_4, mux4.getPin("I0"), new Point(5, 112.5), new Point(5, 127.5));
-               new GUIWire(submodelModifiable, I1_4, mux4.getPin("I1"), new Point(25, 212.5), new Point(25, 137.5));
-               new GUIWire(submodelModifiable, mux4.getPin("Y"), Y4);
-
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUImux1_4.class.getCanonicalName(), (m, p, n) -> new GUImux1_4(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUInand3.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUInand3.java
deleted file mode 100644 (file)
index 99e204d..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUInand3 extends SimpleRectangularSubmodelComponent
-{
-       public GUInand3(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUInand3(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUInand3", name);
-               setSubmodelScale(.4);
-               setInputPins("A", "B", "C");
-               setOutputPins("Y");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin A = getSubmodelPin("A");
-               Pin B = getSubmodelPin("B");
-               Pin C = getSubmodelPin("C");
-               Pin Y = getSubmodelPin("Y");
-
-               GUINandGate nandAB = new GUINandGate(submodelModifiable, 1);
-               GUINandGate andAB = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandABC = new GUINandGate(submodelModifiable, 1);
-
-               WireCrossPoint cpNandAB = new WireCrossPoint(submodelModifiable, 1);
-
-               nandAB.moveTo(10, 15);
-               andAB.moveTo(35, 15);
-               nandABC.moveTo(62.5, 2.5);
-               cpNandAB.moveCenterTo(32.5, 25);
-
-               new GUIWire(submodelModifiable, A, nandAB.getPin("A"));
-               new GUIWire(submodelModifiable, B, nandAB.getPin("B"));
-               new GUIWire(submodelModifiable, nandAB.getPin("Y"), cpNandAB, new Point[0]);
-               new GUIWire(submodelModifiable, cpNandAB, andAB.getPin("A"), new Point(32.5, 20));
-               new GUIWire(submodelModifiable, cpNandAB, andAB.getPin("B"), new Point(32.5, 30));
-               new GUIWire(submodelModifiable, andAB.getPin("Y"), nandABC.getPin("A"), new Point(57.5, 25), new Point(57.5, 7.5));
-               new GUIWire(submodelModifiable, C, nandABC.getPin("B"), new Point(60, 62.5), new Point(60, 17.5));
-               new GUIWire(submodelModifiable, nandABC.getPin("Y"), Y, new Point[0]);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUInand3.class.getCanonicalName(), (m, p, n) -> new GUInand3(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUInot4.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUInot4.java
deleted file mode 100644 (file)
index d524332..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUInot4 extends SimpleRectangularSubmodelComponent
-{
-       public GUInot4(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUInot4(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUInot4", name);
-               setSubmodelScale(.4);
-               setInputPins("A1", "A2", "A3", "A4");
-               setOutputPins("Y1", "Y2", "Y3", "Y4");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin A1 = getSubmodelPin("A1");
-               Pin A2 = getSubmodelPin("A2");
-               Pin A3 = getSubmodelPin("A3");
-               Pin A4 = getSubmodelPin("A4");
-               Pin Y1 = getSubmodelPin("Y1");
-               Pin Y2 = getSubmodelPin("Y2");
-               Pin Y3 = getSubmodelPin("Y3");
-               Pin Y4 = getSubmodelPin("Y4");
-
-               GUINandGate nand1 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand2 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand3 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand4 = new GUINandGate(submodelModifiable, 1);
-
-               WireCrossPoint cp1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cp2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cp3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cp4 = new WireCrossPoint(submodelModifiable, 1);
-
-               nand1.moveTo(30, 2.5);
-               nand2.moveTo(30, 27.5);
-               nand3.moveTo(30, 52.5);
-               nand4.moveTo(30, 77.5);
-               cp1.moveCenterTo(15, 12.5);
-               cp2.moveCenterTo(15, 37.5);
-               cp3.moveCenterTo(15, 62.5);
-               cp4.moveCenterTo(15, 87.5);
-
-               new GUIWire(submodelModifiable, A1, cp1, new Point[0]);
-               new GUIWire(submodelModifiable, A2, cp2, new Point[0]);
-               new GUIWire(submodelModifiable, A3, cp3, new Point[0]);
-               new GUIWire(submodelModifiable, A4, cp4, new Point[0]);
-               new GUIWire(submodelModifiable, cp1, nand1.getPin("A"), new Point(15, 7.5));
-               new GUIWire(submodelModifiable, cp2, nand2.getPin("A"), new Point(15, 32.5));
-               new GUIWire(submodelModifiable, cp3, nand3.getPin("A"), new Point(15, 57.5));
-               new GUIWire(submodelModifiable, cp4, nand4.getPin("A"), new Point(15, 82.5));
-               new GUIWire(submodelModifiable, cp1, nand1.getPin("B"), new Point(15, 17.5));
-               new GUIWire(submodelModifiable, cp2, nand2.getPin("B"), new Point(15, 42.5));
-               new GUIWire(submodelModifiable, cp3, nand3.getPin("B"), new Point(15, 67.5));
-               new GUIWire(submodelModifiable, cp4, nand4.getPin("B"), new Point(15, 92.5));
-               new GUIWire(submodelModifiable, nand1.getPin("Y"), Y1, new Point[0]);
-               new GUIWire(submodelModifiable, nand2.getPin("Y"), Y2, new Point[0]);
-               new GUIWire(submodelModifiable, nand3.getPin("Y"), Y3, new Point[0]);
-               new GUIWire(submodelModifiable, nand4.getPin("Y"), Y4, new Point[0]);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUInot4.class.getCanonicalName(), (m, p, n) -> new GUInot4(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIor4.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIor4.java
deleted file mode 100644 (file)
index ab3ed89..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIor4 extends SimpleRectangularSubmodelComponent
-{
-       public GUIor4(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIor4(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIor4", name);
-               setSubmodelScale(.2);
-               setInputPins("A1", "A2", "A3", "A4");
-               setOutputPins("Y");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin A1 = getSubmodelPin("A1");
-               Pin A2 = getSubmodelPin("A2");
-               Pin A3 = getSubmodelPin("A3");
-               Pin A4 = getSubmodelPin("A4");
-               Pin Y = getSubmodelPin("Y");
-
-               GUINandGate nandA1 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandA2 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandA3 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandA4 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate or12 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate or34 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nor12 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nor34 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate or1234 = new GUINandGate(submodelModifiable, 1);
-
-               WireCrossPoint cpA1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpA2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpA3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpA4 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpOr12 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpOr34 = new WireCrossPoint(submodelModifiable, 1);
-
-               nandA1.moveTo(20, 15);
-               nandA2.moveTo(20, 65);
-               nandA3.moveTo(20, 115);
-               nandA4.moveTo(20, 165);
-               or12.moveTo(50, 40);
-               or34.moveTo(50, 140);
-               nor12.moveTo(110, 40);
-               nor34.moveTo(110, 140);
-               or1234.moveTo(140, 90);
-               cpA1.moveCenterTo(15, 25);
-               cpA2.moveCenterTo(15, 75);
-               cpA3.moveCenterTo(15, 125);
-               cpA4.moveCenterTo(15, 175);
-               cpOr12.moveCenterTo(105, 50);
-               cpOr34.moveCenterTo(105, 150);
-
-               new GUIWire(submodelModifiable, A1, cpA1, new Point[0]);
-               new GUIWire(submodelModifiable, A2, cpA2, new Point[0]);
-               new GUIWire(submodelModifiable, A3, cpA3, new Point[0]);
-               new GUIWire(submodelModifiable, A4, cpA4, new Point[0]);
-               new GUIWire(submodelModifiable, cpA1, nandA1.getPin("A"), new Point(15, 20));
-               new GUIWire(submodelModifiable, cpA2, nandA2.getPin("A"), new Point(15, 70));
-               new GUIWire(submodelModifiable, cpA3, nandA3.getPin("A"), new Point(15, 120));
-               new GUIWire(submodelModifiable, cpA4, nandA4.getPin("A"), new Point(15, 170));
-               new GUIWire(submodelModifiable, cpA1, nandA1.getPin("B"), new Point(15, 30));
-               new GUIWire(submodelModifiable, cpA2, nandA2.getPin("B"), new Point(15, 80));
-               new GUIWire(submodelModifiable, cpA3, nandA3.getPin("B"), new Point(15, 130));
-               new GUIWire(submodelModifiable, cpA4, nandA4.getPin("B"), new Point(15, 180));
-               new GUIWire(submodelModifiable, nandA1.getPin("Y"), or12.getPin("A"));
-               new GUIWire(submodelModifiable, nandA2.getPin("Y"), or12.getPin("B"));
-               new GUIWire(submodelModifiable, nandA3.getPin("Y"), or34.getPin("A"));
-               new GUIWire(submodelModifiable, nandA4.getPin("Y"), or34.getPin("B"));
-               new GUIWire(submodelModifiable, or12.getPin("Y"), cpOr12, new Point[0]);
-               new GUIWire(submodelModifiable, or34.getPin("Y"), cpOr34, new Point[0]);
-               new GUIWire(submodelModifiable, cpOr12, nor12.getPin("A"), new Point(105, 45));
-               new GUIWire(submodelModifiable, cpOr12, nor12.getPin("B"), new Point(105, 55));
-               new GUIWire(submodelModifiable, cpOr34, nor34.getPin("A"), new Point(105, 145));
-               new GUIWire(submodelModifiable, cpOr34, nor34.getPin("B"), new Point(105, 155));
-               new GUIWire(submodelModifiable, nor12.getPin("Y"), or1234.getPin("A"));
-               new GUIWire(submodelModifiable, nor34.getPin("Y"), or1234.getPin("B"));
-               new GUIWire(submodelModifiable, or1234.getPin("Y"), Y);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIor4.class.getCanonicalName(), (m, p, n) -> new GUIor4(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIor_4.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIor_4.java
deleted file mode 100644 (file)
index 3082f72..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIor_4 extends SimpleRectangularSubmodelComponent
-{
-       public GUIor_4(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIor_4(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIor_4", name);
-               setSubmodelScale(.4);
-               setInputPins("A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4");
-               setOutputPins("Y1", "Y2", "Y3", "Y4");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin A1 = getSubmodelPin("A1");
-               Pin A2 = getSubmodelPin("A2");
-               Pin A3 = getSubmodelPin("A3");
-               Pin A4 = getSubmodelPin("A4");
-               Pin B1 = getSubmodelPin("B1");
-               Pin B2 = getSubmodelPin("B2");
-               Pin B3 = getSubmodelPin("B3");
-               Pin B4 = getSubmodelPin("B4");
-               Pin Y1 = getSubmodelPin("Y1");
-               Pin Y2 = getSubmodelPin("Y2");
-               Pin Y3 = getSubmodelPin("Y3");
-               Pin Y4 = getSubmodelPin("Y4");
-
-               GUINandGate notA1 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notA2 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notA3 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notA4 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notB1 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notB2 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notB3 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notB4 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY1 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY2 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY3 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY4 = new GUINandGate(submodelModifiable, 1);
-
-               WireCrossPoint cpA1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpA2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpA3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpA4 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB4 = new WireCrossPoint(submodelModifiable, 1);
-
-               notA1.moveTo(15, 2.5);
-               notA2.moveTo(15, 27.5);
-               notA3.moveTo(15, 52.5);
-               notA4.moveTo(15, 77.5);
-               notB1.moveTo(15, 102.5);
-               notB2.moveTo(15, 127.5);
-               notB3.moveTo(15, 152.5);
-               notB4.moveTo(15, 177.5);
-               nandY1.moveTo(65, 2.5);
-               nandY2.moveTo(65, 27.5);
-               nandY3.moveTo(65, 52.5);
-               nandY4.moveTo(65, 77.5);
-               cpA1.moveCenterTo(7.5, 12.5);
-               cpA2.moveCenterTo(7.5, 37.5);
-               cpA3.moveCenterTo(7.5, 62.5);
-               cpA4.moveCenterTo(7.5, 87.5);
-               cpB1.moveCenterTo(7.5, 112.5);
-               cpB2.moveCenterTo(7.5, 137.5);
-               cpB3.moveCenterTo(7.5, 162.5);
-               cpB4.moveCenterTo(7.5, 187.5);
-
-               new GUIWire(submodelModifiable, A1, cpA1, new Point[0]);
-               new GUIWire(submodelModifiable, A2, cpA2, new Point[0]);
-               new GUIWire(submodelModifiable, A3, cpA3, new Point[0]);
-               new GUIWire(submodelModifiable, A4, cpA4, new Point[0]);
-               new GUIWire(submodelModifiable, B1, cpB1, new Point[0]);
-               new GUIWire(submodelModifiable, B2, cpB2, new Point[0]);
-               new GUIWire(submodelModifiable, B3, cpB3, new Point[0]);
-               new GUIWire(submodelModifiable, B4, cpB4, new Point[0]);
-               new GUIWire(submodelModifiable, cpA1, notA1.getPin("A"), new Point(7.5, 7.5));
-               new GUIWire(submodelModifiable, cpA1, notA1.getPin("B"), new Point(7.5, 17.5));
-               new GUIWire(submodelModifiable, cpA2, notA2.getPin("A"), new Point(7.5, 32.5));
-               new GUIWire(submodelModifiable, cpA2, notA2.getPin("B"), new Point(7.5, 42.5));
-               new GUIWire(submodelModifiable, cpA3, notA3.getPin("A"), new Point(7.5, 57.5));
-               new GUIWire(submodelModifiable, cpA3, notA3.getPin("B"), new Point(7.5, 67.5));
-               new GUIWire(submodelModifiable, cpA4, notA4.getPin("A"), new Point(7.5, 82.5));
-               new GUIWire(submodelModifiable, cpA4, notA4.getPin("B"), new Point(7.5, 92.5));
-               new GUIWire(submodelModifiable, cpB1, notB1.getPin("A"), new Point(7.5, 107.5));
-               new GUIWire(submodelModifiable, cpB1, notB1.getPin("B"), new Point(7.5, 117.5));
-               new GUIWire(submodelModifiable, cpB2, notB2.getPin("A"), new Point(7.5, 132.5));
-               new GUIWire(submodelModifiable, cpB2, notB2.getPin("B"), new Point(7.5, 142.5));
-               new GUIWire(submodelModifiable, cpB3, notB3.getPin("A"), new Point(7.5, 157.5));
-               new GUIWire(submodelModifiable, cpB3, notB3.getPin("B"), new Point(7.5, 167.5));
-               new GUIWire(submodelModifiable, cpB4, notB4.getPin("A"), new Point(7.5, 182.5));
-               new GUIWire(submodelModifiable, cpB4, notB4.getPin("B"), new Point(7.5, 192.5));
-               new GUIWire(submodelModifiable, notA1.getPin("Y"), nandY1.getPin("A"), new Point(40, 12.5), new Point(40, 7.5));
-               new GUIWire(submodelModifiable, notB1.getPin("Y"), nandY1.getPin("B"), new Point(45, 112.5), new Point(45, 17.5));
-               new GUIWire(submodelModifiable, notA2.getPin("Y"), nandY2.getPin("A"), new Point(40, 37.5), new Point(40, 32.5));
-               new GUIWire(submodelModifiable, notB2.getPin("Y"), nandY2.getPin("B"), new Point(50, 137.5), new Point(50, 42.5));
-               new GUIWire(submodelModifiable, notA3.getPin("Y"), nandY3.getPin("A"), new Point(40, 62.5), new Point(40, 57.5));
-               new GUIWire(submodelModifiable, notB3.getPin("Y"), nandY3.getPin("B"), new Point(55, 162.5), new Point(55, 67.5));
-               new GUIWire(submodelModifiable, notA4.getPin("Y"), nandY4.getPin("A"), new Point(40, 87.5), new Point(40, 82.5));
-               new GUIWire(submodelModifiable, notB4.getPin("Y"), nandY4.getPin("B"), new Point(60, 187.5), new Point(60, 92.5));
-               new GUIWire(submodelModifiable, nandY1.getPin("Y"), Y1, new Point[0]);
-               new GUIWire(submodelModifiable, nandY2.getPin("Y"), Y2, new Point[0]);
-               new GUIWire(submodelModifiable, nandY3.getPin("Y"), Y3, new Point[0]);
-               new GUIWire(submodelModifiable, nandY4.getPin("Y"), Y4, new Point[0]);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIor_4.class.getCanonicalName(), (m, p, n) -> new GUIor_4(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIram2.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIram2.java
deleted file mode 100644 (file)
index 2f45cb7..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import java.util.Arrays;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler;
-
-public class GUIram2 extends SimpleRectangularSubmodelComponent
-{
-       public GUIram2(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIram2(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIram2", name);
-               setSubmodelScale(.1);
-               setInputPins("A0", "A1", "B0", "B1", "WE", "D1", "D2", "D3", "D4");
-               setOutputPins("QA1", "QA2", "QA3", "QA4", "QB1", "QB2", "QB3", "QB4");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               //@formatter:off
-               Pin  A0 = getSubmodelPin("A0");
-               Pin  A1 = getSubmodelPin("A1");
-               Pin  B0 = getSubmodelPin("B0");
-               Pin  B1 = getSubmodelPin("B1");
-               Pin  WE = getSubmodelPin("WE");
-               Pin  D1 = getSubmodelPin("D1");
-               Pin  D2 = getSubmodelPin("D2");
-               Pin  D3 = getSubmodelPin("D3");
-               Pin  D4 = getSubmodelPin("D4");
-               Pin QA1 = getSubmodelPin("QA1");
-               Pin QA2 = getSubmodelPin("QA2");
-               Pin QA3 = getSubmodelPin("QA3");
-               Pin QA4 = getSubmodelPin("QA4");
-               Pin QB1 = getSubmodelPin("QB1");
-               Pin QB2 = getSubmodelPin("QB2");
-               Pin QB3 = getSubmodelPin("QB3");
-               Pin QB4 = getSubmodelPin("QB4");
-
-               GUIdemux2   demuxA   = new GUIdemux2  (submodelModifiable);
-               GUIdemux2   demuxB   = new GUIdemux2  (submodelModifiable);
-               GUIand41    weAndB   = new GUIand41   (submodelModifiable);
-               GUIdlatch4      cell00   = new GUIdlatch4 (submodelModifiable);
-               GUIdlatch4      cell01   = new GUIdlatch4 (submodelModifiable);
-               GUIdlatch4      cell10   = new GUIdlatch4 (submodelModifiable);
-               GUIdlatch4      cell11   = new GUIdlatch4 (submodelModifiable);
-               GUIand41    andA00   = new GUIand41   (submodelModifiable);
-               GUIandor414 andorA01 = new GUIandor414(submodelModifiable);
-               GUIandor414 andorA10 = new GUIandor414(submodelModifiable);
-               GUIandor414 andorA11 = new GUIandor414(submodelModifiable);
-               GUIand41    andB00   = new GUIand41   (submodelModifiable);
-               GUIandor414 andorB01 = new GUIandor414(submodelModifiable);
-               GUIandor414 andorB10 = new GUIandor414(submodelModifiable);
-               GUIandor414 andorB11 = new GUIandor414(submodelModifiable);
-
-               WireCrossPoint cpB00  = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB01  = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB10  = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB11  = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD1in = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD2in = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD3in = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD4in = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD101 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD201 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD301 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD401 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD110 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD210 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD310 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD410 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ100 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ200 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ300 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ400 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ101 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ201 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ301 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ401 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ110 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ210 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ310 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ410 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ111 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ211 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ311 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ411 = new WireCrossPoint(submodelModifiable, 1);
-
-               demuxA  .moveTo( 55,  45);
-               demuxB  .moveTo( 55, 150);
-               weAndB  .moveTo(130, 150);
-               cell00  .moveTo( 55, 325);
-               cell01  .moveTo( 55, 475);
-               cell10  .moveTo( 55, 625);
-               cell11  .moveTo( 55, 775);
-               andA00  .moveTo(235, 375);
-               andorA01.moveTo(235, 485);
-               andorA10.moveTo(235, 635);
-               andorA11.moveTo(235, 785);
-               andB00  .moveTo(135, 325);
-               andorB01.moveTo(135, 435);
-               andorB10.moveTo(135, 585);
-               andorB11.moveTo(135, 735);
-               cpB00 .moveCenterTo(110, 155);
-               cpB01 .moveCenterTo(105, 165);
-               cpB10 .moveCenterTo(100, 175);
-               cpB11 .moveCenterTo( 95, 185);
-               cpD1in.moveCenterTo( 35, 550);
-               cpD2in.moveCenterTo( 40, 650);
-               cpD3in.moveCenterTo( 45, 750);
-               cpD4in.moveCenterTo( 50, 810);
-               cpD101.moveCenterTo( 35, 480);
-               cpD201.moveCenterTo( 40, 490);
-               cpD301.moveCenterTo( 45, 500);
-               cpD401.moveCenterTo( 50, 510);
-               cpD110.moveCenterTo( 35, 630);
-               cpD210.moveCenterTo( 40, 640);
-               cpD310.moveCenterTo( 45, 650);
-               cpD410.moveCenterTo( 50, 660);
-               cpQ100.moveCenterTo(130, 330);
-               cpQ200.moveCenterTo(125, 340);
-               cpQ300.moveCenterTo(120, 350);
-               cpQ400.moveCenterTo(115, 360);
-               cpQ101.moveCenterTo(130, 480);
-               cpQ201.moveCenterTo(125, 490);
-               cpQ301.moveCenterTo(120, 500);
-               cpQ401.moveCenterTo(115, 510);
-               cpQ110.moveCenterTo(130, 630);
-               cpQ210.moveCenterTo(125, 640);
-               cpQ310.moveCenterTo(120, 650);
-               cpQ410.moveCenterTo(115, 660);
-               cpQ111.moveCenterTo(130, 780);
-               cpQ211.moveCenterTo(125, 790);
-               cpQ311.moveCenterTo(120, 800);
-               cpQ411.moveCenterTo(115, 810);
-
-               new GUIWire(submodelModifiable, A0, demuxA.getPin("S0"), new Point[0]);
-               new GUIWire(submodelModifiable, A1, demuxA.getPin("S1"), new Point(10, 150), new Point(10,  60));
-               new GUIWire(submodelModifiable, B0, demuxB.getPin("S0"), new Point( 5, 250), new Point( 5, 155));
-               new GUIWire(submodelModifiable, B1, demuxB.getPin("S1"), new Point(10, 350), new Point(10, 165));
-               new GUIWire(submodelModifiable, demuxB.getPin("Y00"), cpB00, new Point[0]);
-               new GUIWire(submodelModifiable, demuxB.getPin("Y01"), cpB01, new Point[0]);
-               new GUIWire(submodelModifiable, demuxB.getPin("Y10"), cpB10, new Point[0]);
-               new GUIWire(submodelModifiable, demuxB.getPin("Y11"), cpB11, new Point[0]);
-               new GUIWire(submodelModifiable, cpB00, weAndB.getPin("A1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpB01, weAndB.getPin("A2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpB10, weAndB.getPin("A3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpB11, weAndB.getPin("A4"), new Point[0]);
-               new GUIWire(submodelModifiable, WE, weAndB.getPin("B"), new Point(5, 450), new Point(5, 300), new Point(125, 300), new Point(125, 195));
-               new GUIWire(submodelModifiable, weAndB.getPin("Y1"), cell00.getPin("C"), new Point(185, 155), new Point(185, 250), new Point(30, 250), new Point(30, 370));
-               new GUIWire(submodelModifiable, weAndB.getPin("Y2"), cell01.getPin("C"), new Point(180, 165), new Point(180, 245), new Point(25, 245), new Point(25, 520));
-               new GUIWire(submodelModifiable, weAndB.getPin("Y3"), cell10.getPin("C"), new Point(175, 175), new Point(175, 240), new Point(20, 240), new Point(20, 670));
-               new GUIWire(submodelModifiable, weAndB.getPin("Y4"), cell11.getPin("C"), new Point(170, 185), new Point(170, 235), new Point(15, 235), new Point(15, 820));
-               new GUIWire(submodelModifiable, D1, cpD1in                 , new Point[0]);
-               new GUIWire(submodelModifiable, D2, cpD2in                 , new Point[0]);
-               new GUIWire(submodelModifiable, D3, cpD3in                 , new Point[0]);
-               new GUIWire(submodelModifiable, D4, cpD4in                 , new Point(50, 850));
-               new GUIWire(submodelModifiable, cpD101, cell00.getPin("D1"), new Point(35, 330));
-               new GUIWire(submodelModifiable, cpD201, cell00.getPin("D2"), new Point(40, 340));
-               new GUIWire(submodelModifiable, cpD301, cell00.getPin("D3"), new Point(45, 350));
-               new GUIWire(submodelModifiable, cpD401, cell00.getPin("D4"), new Point(50, 360));
-               new GUIWire(submodelModifiable, cpD101, cell01.getPin("D1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD201, cell01.getPin("D2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD301, cell01.getPin("D3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD401, cell01.getPin("D4"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD101, cpD1in             , new Point[0]);
-               new GUIWire(submodelModifiable, cpD1in, cpD110             , new Point[0]);
-               new GUIWire(submodelModifiable, cpD201, cpD210             , new Point[0]);
-               new GUIWire(submodelModifiable, cpD301, cpD310             , new Point[0]);
-               new GUIWire(submodelModifiable, cpD401, cpD410             , new Point[0]);
-               new GUIWire(submodelModifiable, cpD110, cell10.getPin("D1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD210, cell10.getPin("D2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD310, cell10.getPin("D3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD410, cell10.getPin("D4"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD210, cpD2in             , new Point[0]);
-               new GUIWire(submodelModifiable, cpD310, cpD3in             , new Point[0]);
-               new GUIWire(submodelModifiable, cpD410, cpD4in             , new Point[0]);
-               new GUIWire(submodelModifiable, cpD110, cell11.getPin("D1"), new Point(35, 780));
-               new GUIWire(submodelModifiable, cpD2in, cell11.getPin("D2"), new Point(40, 790));
-               new GUIWire(submodelModifiable, cpD3in, cell11.getPin("D3"), new Point(45, 800));
-               new GUIWire(submodelModifiable, cpD4in, cell11.getPin("D4"), new Point[0]);
-               new GUIWire(submodelModifiable, cell00.getPin("Q1"), cpQ100, new Point[0]);
-               new GUIWire(submodelModifiable, cell00.getPin("Q2"), cpQ200, new Point[0]);
-               new GUIWire(submodelModifiable, cell00.getPin("Q3"), cpQ300, new Point[0]);
-               new GUIWire(submodelModifiable, cell00.getPin("Q4"), cpQ400, new Point[0]);
-               new GUIWire(submodelModifiable, cell01.getPin("Q1"), cpQ101, new Point[0]);
-               new GUIWire(submodelModifiable, cell01.getPin("Q2"), cpQ201, new Point[0]);
-               new GUIWire(submodelModifiable, cell01.getPin("Q3"), cpQ301, new Point[0]);
-               new GUIWire(submodelModifiable, cell01.getPin("Q4"), cpQ401, new Point[0]);
-               new GUIWire(submodelModifiable, cell10.getPin("Q1"), cpQ110, new Point[0]);
-               new GUIWire(submodelModifiable, cell10.getPin("Q2"), cpQ210, new Point[0]);
-               new GUIWire(submodelModifiable, cell10.getPin("Q3"), cpQ310, new Point[0]);
-               new GUIWire(submodelModifiable, cell10.getPin("Q4"), cpQ410, new Point[0]);
-               new GUIWire(submodelModifiable, cell11.getPin("Q1"), cpQ111, new Point[0]);
-               new GUIWire(submodelModifiable, cell11.getPin("Q2"), cpQ211, new Point[0]);
-               new GUIWire(submodelModifiable, cell11.getPin("Q3"), cpQ311, new Point[0]);
-               new GUIWire(submodelModifiable, cell11.getPin("Q4"), cpQ411, new Point[0]);
-               new GUIWire(submodelModifiable, demuxA.getPin("Y00"), andA00  .getPin("B"), new Point(210, 50), new Point(210, 420));
-               new GUIWire(submodelModifiable, demuxA.getPin("Y01"), andorA01.getPin("B"), new Point(205, 60), new Point(205, 570));
-               new GUIWire(submodelModifiable, demuxA.getPin("Y10"), andorA10.getPin("B"), new Point(200, 70), new Point(200, 720));
-               new GUIWire(submodelModifiable, demuxA.getPin("Y11"), andorA11.getPin("B"), new Point(195, 80), new Point(195, 870));
-               new GUIWire(submodelModifiable, cpB00 , andB00  .getPin("B"), new Point(110, 370));
-               new GUIWire(submodelModifiable, cpB01 , andorB01.getPin("B"), new Point(105, 520));
-               new GUIWire(submodelModifiable, cpB10 , andorB10.getPin("B"), new Point(100, 670));
-               new GUIWire(submodelModifiable, cpB11 , andorB11.getPin("B"), new Point(95, 820));
-               new GUIWire(submodelModifiable, cpQ100, andA00  .getPin("A1"), new Point(130, 380));
-               new GUIWire(submodelModifiable, cpQ200, andA00  .getPin("A2"), new Point(125, 390));
-               new GUIWire(submodelModifiable, cpQ300, andA00  .getPin("A3"), new Point(120, 400));
-               new GUIWire(submodelModifiable, cpQ400, andA00  .getPin("A4"), new Point(115, 410));
-               new GUIWire(submodelModifiable, cpQ101, andorA01.getPin("A1"), new Point(130, 530));
-               new GUIWire(submodelModifiable, cpQ201, andorA01.getPin("A2"), new Point(125, 540));
-               new GUIWire(submodelModifiable, cpQ301, andorA01.getPin("A3"), new Point(120, 550));
-               new GUIWire(submodelModifiable, cpQ401, andorA01.getPin("A4"), new Point(115, 560));
-               new GUIWire(submodelModifiable, cpQ110, andorA10.getPin("A1"), new Point(130, 680));
-               new GUIWire(submodelModifiable, cpQ210, andorA10.getPin("A2"), new Point(125, 690));
-               new GUIWire(submodelModifiable, cpQ310, andorA10.getPin("A3"), new Point(120, 700));
-               new GUIWire(submodelModifiable, cpQ410, andorA10.getPin("A4"), new Point(115, 710));
-               new GUIWire(submodelModifiable, cpQ111, andorA11.getPin("A1"), new Point(130, 830));
-               new GUIWire(submodelModifiable, cpQ211, andorA11.getPin("A2"), new Point(125, 840));
-               new GUIWire(submodelModifiable, cpQ311, andorA11.getPin("A3"), new Point(120, 850));
-               new GUIWire(submodelModifiable, cpQ411, andorA11.getPin("A4"), new Point(115, 860));
-               new GUIWire(submodelModifiable, cpQ100, andB00  .getPin("A1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ200, andB00  .getPin("A2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ300, andB00  .getPin("A3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ400, andB00  .getPin("A4"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ101, andorB01.getPin("A1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ201, andorB01.getPin("A2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ301, andorB01.getPin("A3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ401, andorB01.getPin("A4"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ110, andorB10.getPin("A1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ210, andorB10.getPin("A2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ310, andorB10.getPin("A3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ410, andorB10.getPin("A4"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ111, andorB11.getPin("A1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ211, andorB11.getPin("A2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ311, andorB11.getPin("A3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ411, andorB11.getPin("A4"), new Point[0]);
-               new GUIWire(submodelModifiable, andA00  .getPin("Y1"), andorA01.getPin("C1"), new Point(290, 380), new Point(290, 445), new Point(230, 445), new Point(230, 490));
-               new GUIWire(submodelModifiable, andA00  .getPin("Y2"), andorA01.getPin("C2"), new Point(285, 390), new Point(285, 440), new Point(225, 440), new Point(225, 500));
-               new GUIWire(submodelModifiable, andA00  .getPin("Y3"), andorA01.getPin("C3"), new Point(280, 400), new Point(280, 435), new Point(220, 435), new Point(220, 510));
-               new GUIWire(submodelModifiable, andA00  .getPin("Y4"), andorA01.getPin("C4"), new Point(275, 410), new Point(275, 430), new Point(215, 430), new Point(215, 520));
-               new GUIWire(submodelModifiable, andorA01.getPin("Y1"), andorA10.getPin("C1"), new Point(290, 490), new Point(290, 595), new Point(230, 595), new Point(230, 640));
-               new GUIWire(submodelModifiable, andorA01.getPin("Y2"), andorA10.getPin("C2"), new Point(285, 500), new Point(285, 590), new Point(225, 590), new Point(225, 650));
-               new GUIWire(submodelModifiable, andorA01.getPin("Y3"), andorA10.getPin("C3"), new Point(280, 510), new Point(280, 585), new Point(220, 585), new Point(220, 660));
-               new GUIWire(submodelModifiable, andorA01.getPin("Y4"), andorA10.getPin("C4"), new Point(275, 520), new Point(275, 580), new Point(215, 580), new Point(215, 670));
-               new GUIWire(submodelModifiable, andorA10.getPin("Y1"), andorA11.getPin("C1"), new Point(290, 640), new Point(290, 745), new Point(230, 745), new Point(230, 790));
-               new GUIWire(submodelModifiable, andorA10.getPin("Y2"), andorA11.getPin("C2"), new Point(285, 650), new Point(285, 740), new Point(225, 740), new Point(225, 800));
-               new GUIWire(submodelModifiable, andorA10.getPin("Y3"), andorA11.getPin("C3"), new Point(280, 660), new Point(280, 735), new Point(220, 735), new Point(220, 810));
-               new GUIWire(submodelModifiable, andorA10.getPin("Y4"), andorA11.getPin("C4"), new Point(275, 670), new Point(275, 730), new Point(215, 730), new Point(215, 820));
-               new GUIWire(submodelModifiable, andorA11.getPin("Y1"), QA1                           , new Point(300, 790), new Point(300,  50));
-               new GUIWire(submodelModifiable, andorA11.getPin("Y2"), QA2                           , new Point(305, 800), new Point(305, 150));
-               new GUIWire(submodelModifiable, andorA11.getPin("Y3"), QA3                           , new Point(310, 810), new Point(310, 250));
-               new GUIWire(submodelModifiable, andorA11.getPin("Y4"), QA4                           , new Point(315, 820), new Point(315, 350));
-               new GUIWire(submodelModifiable, andB00  .getPin("Y1"), andorB01.getPin("C1"), new Point(190, 330), new Point(190, 430), new Point(130, 430), new Point(130, 440));
-               new GUIWire(submodelModifiable, andB00  .getPin("Y2"), andorB01.getPin("C2"), new Point(185, 340), new Point(185, 425), new Point(125, 425), new Point(125, 450));
-               new GUIWire(submodelModifiable, andB00  .getPin("Y3"), andorB01.getPin("C3"), new Point(180, 350), new Point(180, 420), new Point(120, 420), new Point(120, 460));
-               new GUIWire(submodelModifiable, andB00  .getPin("Y4"), andorB01.getPin("C4"), new Point(175, 360), new Point(175, 415), new Point(115, 415), new Point(115, 470));
-               new GUIWire(submodelModifiable, andorB01.getPin("Y1"), andorB10.getPin("C1"), new Point(190, 440), new Point(190, 580), new Point(130, 580), new Point(130, 590));
-               new GUIWire(submodelModifiable, andorB01.getPin("Y2"), andorB10.getPin("C2"), new Point(185, 450), new Point(185, 575), new Point(125, 575), new Point(125, 600));
-               new GUIWire(submodelModifiable, andorB01.getPin("Y3"), andorB10.getPin("C3"), new Point(180, 460), new Point(180, 570), new Point(120, 570), new Point(120, 610));
-               new GUIWire(submodelModifiable, andorB01.getPin("Y4"), andorB10.getPin("C4"), new Point(175, 470), new Point(175, 565), new Point(115, 565), new Point(115, 620));
-               new GUIWire(submodelModifiable, andorB10.getPin("Y1"), andorB11.getPin("C1"), new Point(190, 590), new Point(190, 730), new Point(130, 730), new Point(130, 740));
-               new GUIWire(submodelModifiable, andorB10.getPin("Y2"), andorB11.getPin("C2"), new Point(185, 600), new Point(185, 725), new Point(125, 725), new Point(125, 750));
-               new GUIWire(submodelModifiable, andorB10.getPin("Y3"), andorB11.getPin("C3"), new Point(180, 610), new Point(180, 720), new Point(120, 720), new Point(120, 760));
-               new GUIWire(submodelModifiable, andorB10.getPin("Y4"), andorB11.getPin("C4"), new Point(175, 620), new Point(175, 715), new Point(115, 715), new Point(115, 770));
-               new GUIWire(submodelModifiable, andorB11.getPin("Y1"), QB1                           , new Point(190, 740), new Point(190, 880), new Point(325, 880), new Point(325, 450));
-               new GUIWire(submodelModifiable, andorB11.getPin("Y2"), QB2                           , new Point(185, 750), new Point(185, 885), new Point(330, 885), new Point(330, 550));
-               new GUIWire(submodelModifiable, andorB11.getPin("Y3"), QB3                           , new Point(180, 760), new Point(180, 890), new Point(335, 890), new Point(335, 650));
-               new GUIWire(submodelModifiable, andorB11.getPin("Y4"), QB4                           , new Point(175, 770), new Point(175, 895), new Point(340, 895), new Point(340, 750));
-               //@formatter:on
-
-               StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
-               highLevelStateHandler.addSubcomponentHighLevelState("c00", DelegatingSubcomponentHighLevelStateHandler::new).set(cell00, null);
-               highLevelStateHandler.addSubcomponentHighLevelState("c01", DelegatingSubcomponentHighLevelStateHandler::new).set(cell01, null);
-               highLevelStateHandler.addSubcomponentHighLevelState("c10", DelegatingSubcomponentHighLevelStateHandler::new).set(cell10, null);
-               highLevelStateHandler.addSubcomponentHighLevelState("c11", DelegatingSubcomponentHighLevelStateHandler::new).set(cell11, null);
-               highLevelStateHandler.addAtomicHighLevelState("q", BitVectorSplittingAtomicHighLevelStateHandler::new)
-                               .set(Arrays.asList("c11.q", "c10.q", "c01.q", "c00.q"), Arrays.asList(4, 4, 4, 4));
-               setHighLevelStateHandler(highLevelStateHandler);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIram2.class.getCanonicalName(), (m, p, n) -> new GUIram2(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIram4.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIram4.java
deleted file mode 100644 (file)
index da1314b..0000000
+++ /dev/null
@@ -1,326 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import java.util.Arrays;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler;
-
-public class GUIram4 extends SimpleRectangularSubmodelComponent
-{
-       public GUIram4(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIram4(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIram4", name);
-               setSubmodelScale(.1);
-               setInputPins("A0", "A1", "A2", "A3", "B0", "B1", "B2", "B3", "WE", "D1", "D2", "D3", "D4");
-               setOutputPins("QA1", "QA2", "QA3", "QA4", "QB1", "QB2", "QB3", "QB4");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               //@formatter:off
-               Pin  A0 = getSubmodelPin("A0");
-               Pin  A1 = getSubmodelPin("A1");
-               Pin  A2 = getSubmodelPin("A2");
-               Pin  A3 = getSubmodelPin("A3");
-               Pin  B0 = getSubmodelPin("B0");
-               Pin  B1 = getSubmodelPin("B1");
-               Pin  B2 = getSubmodelPin("B2");
-               Pin  B3 = getSubmodelPin("B3");
-               Pin  WE = getSubmodelPin("WE");
-               Pin  D1 = getSubmodelPin("D1");
-               Pin  D2 = getSubmodelPin("D2");
-               Pin  D3 = getSubmodelPin("D3");
-               Pin  D4 = getSubmodelPin("D4");
-               Pin QA1 =getSubmodelPin("QA1");
-               Pin QA2 =getSubmodelPin("QA2");
-               Pin QA3 =getSubmodelPin("QA3");
-               Pin QA4 =getSubmodelPin("QA4");
-               Pin QB1 =getSubmodelPin("QB1");
-               Pin QB2 =getSubmodelPin("QB2");
-               Pin QB3 =getSubmodelPin("QB3");
-               Pin QB4 =getSubmodelPin("QB4");
-
-               GUIdemux2   demuxA   = new GUIdemux2  (submodelModifiable);
-               GUIdemux2   demuxB   = new GUIdemux2  (submodelModifiable);
-               GUIand41    weAndB   = new GUIand41   (submodelModifiable);
-               GUIram2     cell00   = new GUIram2    (submodelModifiable);
-               GUIram2     cell01   = new GUIram2    (submodelModifiable);
-               GUIram2     cell10   = new GUIram2    (submodelModifiable);
-               GUIram2     cell11   = new GUIram2    (submodelModifiable);
-               GUIand41    andB00   = new GUIand41   (submodelModifiable);
-               GUIandor414 andorB01 = new GUIandor414(submodelModifiable);
-               GUIandor414 andorB10 = new GUIandor414(submodelModifiable);
-               GUIandor414 andorB11 = new GUIandor414(submodelModifiable);
-               GUIand41    andA00   = new GUIand41   (submodelModifiable);
-               GUIandor414 andorA01 = new GUIandor414(submodelModifiable);
-               GUIandor414 andorA10 = new GUIandor414(submodelModifiable);
-               GUIandor414 andorA11 = new GUIandor414(submodelModifiable);
-
-               WireCrossPoint cpB00  = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB01  = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB10  = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB11  = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD_101 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD_201 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD_301 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD_401 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD_110 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD_210 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD_310 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD_410 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD_111 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD_211 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD_311 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpD_411 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpAB101 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpAB201 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpAB301 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpAB401 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpAB110 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpAB210 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpAB310 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpAB410 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpAB1in = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpAB2in = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpAB3in = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpAB4in = new WireCrossPoint(submodelModifiable, 1);
-
-               demuxA  .moveTo( 55,  45);
-               demuxB  .moveTo( 55, 150);
-               weAndB  .moveTo(235, 150);
-               cell00  .moveTo( 80, 330);
-               cell01  .moveTo( 80, 480);
-               cell10  .moveTo( 80, 630);
-               cell11  .moveTo( 80, 780);
-               andB00  .moveTo(250, 375);
-               andorB01.moveTo(250, 485);
-               andorB10.moveTo(250, 635);
-               andorB11.moveTo(250, 785);
-               andA00  .moveTo(155, 325);
-               andorA01.moveTo(155, 435);
-               andorA10.moveTo(155, 585);
-               andorA11.moveTo(155, 735);
-               cpB00 .moveCenterTo(230, 155);
-               cpB01 .moveCenterTo(225, 165);
-               cpB10 .moveCenterTo(220, 175);
-               cpB11 .moveCenterTo(215, 185);
-               cpD_101.moveCenterTo( 60, 535);
-               cpD_201.moveCenterTo( 65, 545);
-               cpD_301.moveCenterTo( 70, 555);
-               cpD_401.moveCenterTo( 75, 565);
-               cpD_110.moveCenterTo( 60, 685);
-               cpD_210.moveCenterTo( 65, 695);
-               cpD_310.moveCenterTo( 70, 705);
-               cpD_410.moveCenterTo( 75, 715);
-               cpD_111.moveCenterTo( 60, 835);
-               cpD_211.moveCenterTo( 65, 845);
-               cpD_311.moveCenterTo( 70, 855);
-               cpD_411.moveCenterTo( 75, 865);
-               cpAB101.moveCenterTo( 40, 485);
-               cpAB201.moveCenterTo( 45, 495);
-               cpAB301.moveCenterTo( 50, 505);
-               cpAB401.moveCenterTo( 55, 515);
-               cpAB110.moveCenterTo( 40, 635);
-               cpAB210.moveCenterTo( 45, 645);
-               cpAB310.moveCenterTo( 50, 655);
-               cpAB410.moveCenterTo( 55, 665);
-               cpAB1in.moveCenterTo( 40, 335);
-               cpAB2in.moveCenterTo( 45, 350);
-               cpAB3in.moveCenterTo( 50, 650);
-               cpAB4in.moveCenterTo( 55, 750);
-
-               new GUIWire(submodelModifiable, A0, demuxA.getPin("S0"), new Point[0]);
-               new GUIWire(submodelModifiable, A1, demuxA.getPin("S1"), new Point(10, 150), new Point(10,  60));
-               new GUIWire(submodelModifiable, B0, demuxB.getPin("S0"), new Point( 5, 450), new Point( 5, 155));
-               new GUIWire(submodelModifiable, B1, demuxB.getPin("S1"), new Point(10, 550), new Point(10, 165));
-               new GUIWire(submodelModifiable, demuxB.getPin("Y00"), cpB00, new Point[0]);
-               new GUIWire(submodelModifiable, demuxB.getPin("Y01"), cpB01, new Point[0]);
-               new GUIWire(submodelModifiable, demuxB.getPin("Y10"), cpB10, new Point[0]);
-               new GUIWire(submodelModifiable, demuxB.getPin("Y11"), cpB11, new Point[0]);
-               new GUIWire(submodelModifiable, cpB00, weAndB.getPin("A1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpB01, weAndB.getPin("A2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpB10, weAndB.getPin("A3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpB11, weAndB.getPin("A4"), new Point[0]);
-               new GUIWire(submodelModifiable, WE, weAndB.getPin("B"), new Point(15, 850), new Point(15, 195));
-               new GUIWire(submodelModifiable, weAndB.getPin("Y1"), cell00.getPin("WE"), new Point(290, 155), new Point(290, 230), new Point(35, 230), new Point(35, 375));
-               new GUIWire(submodelModifiable, weAndB.getPin("Y2"), cell01.getPin("WE"), new Point(285, 165), new Point(285, 225), new Point(30, 225), new Point(30, 525));
-               new GUIWire(submodelModifiable, weAndB.getPin("Y3"), cell10.getPin("WE"), new Point(280, 175), new Point(280, 220), new Point(25, 220), new Point(25, 675));
-               new GUIWire(submodelModifiable, weAndB.getPin("Y4"), cell11.getPin("WE"), new Point(275, 185), new Point(275, 215), new Point(20, 215), new Point(20, 825));
-               new GUIWire(submodelModifiable, cpAB101, cpAB1in            , new Point[0]);
-               new GUIWire(submodelModifiable, cpAB1in, cell00.getPin("A0"), new Point[0]);
-               new GUIWire(submodelModifiable, cpAB201, cpAB2in            , new Point[0]);
-               new GUIWire(submodelModifiable, cpAB2in, cell00.getPin("A1"), new Point(45, 345));
-               new GUIWire(submodelModifiable, cpAB301, cell00.getPin("B0"), new Point(50, 355));
-               new GUIWire(submodelModifiable, cpAB401, cell00.getPin("B1"), new Point(55, 365));
-               new GUIWire(submodelModifiable, cpAB101, cell01.getPin("A0"), new Point[0]);
-               new GUIWire(submodelModifiable, cpAB201, cell01.getPin("A1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpAB301, cell01.getPin("B0"), new Point[0]);
-               new GUIWire(submodelModifiable, cpAB401, cell01.getPin("B1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpAB101, cpAB110            , new Point[0]);
-               new GUIWire(submodelModifiable, cpAB201, cpAB210            , new Point[0]);
-               new GUIWire(submodelModifiable, cpAB301, cpAB3in            , new Point[0]);
-               new GUIWire(submodelModifiable, B2     , cpAB3in            , new Point[0]);
-               new GUIWire(submodelModifiable, cpAB3in, cpAB310            , new Point[0]);
-               new GUIWire(submodelModifiable, cpAB401, cpAB410            , new Point[0]);
-               new GUIWire(submodelModifiable, cpAB110, cell10.getPin("A0"), new Point[0]);
-               new GUIWire(submodelModifiable, cpAB210, cell10.getPin("A1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpAB310, cell10.getPin("B0"), new Point[0]);
-               new GUIWire(submodelModifiable, cpAB410, cell10.getPin("B1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpAB110, cell11.getPin("A0"), new Point(40, 785));
-               new GUIWire(submodelModifiable, cpAB210, cell11.getPin("A1"), new Point(45, 795));
-               new GUIWire(submodelModifiable, cpAB310, cell11.getPin("B0"), new Point(50, 805));
-               new GUIWire(submodelModifiable, cpAB410, cpAB4in            , new Point[0]);
-               new GUIWire(submodelModifiable, cpAB4in, cell11.getPin("B1"), new Point(55, 815));
-               new GUIWire(submodelModifiable, A2, cpAB1in                 , new Point(40, 250));
-               new GUIWire(submodelModifiable, A3, cpAB2in                 , new Point[0]);
-               new GUIWire(submodelModifiable, B3, cpAB4in                 , new Point[0]);
-               new GUIWire(submodelModifiable, cpD_101, cell00.getPin("D1"), new Point(60, 385));
-               new GUIWire(submodelModifiable, cpD_201, cell00.getPin("D2"), new Point(65, 395));
-               new GUIWire(submodelModifiable, cpD_301, cell00.getPin("D3"), new Point(70, 405));
-               new GUIWire(submodelModifiable, cpD_401, cell00.getPin("D4"), new Point(75, 415));
-               new GUIWire(submodelModifiable, cpD_101, cell01.getPin("D1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD_201, cell01.getPin("D2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD_301, cell01.getPin("D3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD_401, cell01.getPin("D4"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD_101, cpD_110            , new Point[0]);
-               new GUIWire(submodelModifiable, cpD_201, cpD_210            , new Point[0]);
-               new GUIWire(submodelModifiable, cpD_301, cpD_310            , new Point[0]);
-               new GUIWire(submodelModifiable, cpD_401, cpD_410            , new Point[0]);
-               new GUIWire(submodelModifiable, cpD_110, cell10.getPin("D1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD_210, cell10.getPin("D2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD_310, cell10.getPin("D3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD_410, cell10.getPin("D4"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD_110, cpD_111            , new Point[0]);
-               new GUIWire(submodelModifiable, cpD_210, cpD_211            , new Point[0]);
-               new GUIWire(submodelModifiable, cpD_310, cpD_311            , new Point[0]);
-               new GUIWire(submodelModifiable, cpD_410, cpD_411            , new Point[0]);
-               new GUIWire(submodelModifiable, cpD_111, cell11.getPin("D1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD_211, cell11.getPin("D2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD_311, cell11.getPin("D3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpD_411, cell11.getPin("D4"), new Point[0]);
-               new GUIWire(submodelModifiable, D1, cpD_111                 , new Point(60,  950));
-               new GUIWire(submodelModifiable, D2, cpD_211                 , new Point(65, 1050));
-               new GUIWire(submodelModifiable, D3, cpD_311                 , new Point(70, 1150));
-               new GUIWire(submodelModifiable, D4, cpD_411                 , new Point(75, 1250));
-               new GUIWire(submodelModifiable, demuxA.getPin("Y00"), andA00  .getPin("B"), new Point(135, 50), new Point(135, 370));
-               new GUIWire(submodelModifiable, demuxA.getPin("Y01"), andorA01.getPin("B"), new Point(130, 60), new Point(130, 520));
-               new GUIWire(submodelModifiable, demuxA.getPin("Y10"), andorA10.getPin("B"), new Point(125, 70), new Point(125, 670));
-               new GUIWire(submodelModifiable, demuxA.getPin("Y11"), andorA11.getPin("B"), new Point(120, 80), new Point(120, 820));
-               new GUIWire(submodelModifiable, cpB00, andB00  .getPin("B"), new Point(230, 420));
-               new GUIWire(submodelModifiable, cpB01, andorB01.getPin("B"), new Point(225, 570));
-               new GUIWire(submodelModifiable, cpB10, andorB10.getPin("B"), new Point(220, 720));
-               new GUIWire(submodelModifiable, cpB11, andorB11.getPin("B"), new Point(215, 870));
-               new GUIWire(submodelModifiable, cell00.getPin("QB1"), andB00  .getPin("A1"), new Point(140, 375), new Point(140, 380));
-               new GUIWire(submodelModifiable, cell00.getPin("QB2"), andB00  .getPin("A2"), new Point(140, 385), new Point(140, 390));
-               new GUIWire(submodelModifiable, cell00.getPin("QB3"), andB00  .getPin("A3"), new Point(140, 395), new Point(140, 400));
-               new GUIWire(submodelModifiable, cell00.getPin("QB4"), andB00  .getPin("A4"), new Point(140, 405), new Point(140, 410));
-               new GUIWire(submodelModifiable, cell01.getPin("QB1"), andorB01.getPin("A1"), new Point(140, 525), new Point(140, 530));
-               new GUIWire(submodelModifiable, cell01.getPin("QB2"), andorB01.getPin("A2"), new Point(140, 535), new Point(140, 540));
-               new GUIWire(submodelModifiable, cell01.getPin("QB3"), andorB01.getPin("A3"), new Point(140, 545), new Point(140, 550));
-               new GUIWire(submodelModifiable, cell01.getPin("QB4"), andorB01.getPin("A4"), new Point(140, 555), new Point(140, 560));
-               new GUIWire(submodelModifiable, cell10.getPin("QB1"), andorB10.getPin("A1"), new Point(140, 675), new Point(140, 680));
-               new GUIWire(submodelModifiable, cell10.getPin("QB2"), andorB10.getPin("A2"), new Point(140, 685), new Point(140, 690));
-               new GUIWire(submodelModifiable, cell10.getPin("QB3"), andorB10.getPin("A3"), new Point(140, 695), new Point(140, 700));
-               new GUIWire(submodelModifiable, cell10.getPin("QB4"), andorB10.getPin("A4"), new Point(140, 705), new Point(140, 710));
-               new GUIWire(submodelModifiable, cell11.getPin("QB1"), andorB11.getPin("A1"), new Point(140, 825), new Point(140, 830));
-               new GUIWire(submodelModifiable, cell11.getPin("QB2"), andorB11.getPin("A2"), new Point(140, 835), new Point(140, 840));
-               new GUIWire(submodelModifiable, cell11.getPin("QB3"), andorB11.getPin("A3"), new Point(140, 845), new Point(140, 850));
-               new GUIWire(submodelModifiable, cell11.getPin("QB4"), andorB11.getPin("A4"), new Point(140, 855), new Point(140, 860));
-               new GUIWire(submodelModifiable, cell00.getPin("QA1"), andA00  .getPin("A1"), new Point(140, 335), new Point(140, 330));
-               new GUIWire(submodelModifiable, cell00.getPin("QA2"), andA00  .getPin("A2"), new Point(140, 345), new Point(140, 340));
-               new GUIWire(submodelModifiable, cell00.getPin("QA3"), andA00  .getPin("A3"), new Point(140, 355), new Point(140, 350));
-               new GUIWire(submodelModifiable, cell00.getPin("QA4"), andA00  .getPin("A4"), new Point(140, 365), new Point(140, 360));
-               new GUIWire(submodelModifiable, cell01.getPin("QA1"), andorA01.getPin("A1"), new Point(140, 485), new Point(140, 480));
-               new GUIWire(submodelModifiable, cell01.getPin("QA2"), andorA01.getPin("A2"), new Point(140, 495), new Point(140, 490));
-               new GUIWire(submodelModifiable, cell01.getPin("QA3"), andorA01.getPin("A3"), new Point(140, 505), new Point(140, 500));
-               new GUIWire(submodelModifiable, cell01.getPin("QA4"), andorA01.getPin("A4"), new Point(140, 515), new Point(140, 510));
-               new GUIWire(submodelModifiable, cell10.getPin("QA1"), andorA10.getPin("A1"), new Point(140, 635), new Point(140, 630));
-               new GUIWire(submodelModifiable, cell10.getPin("QA2"), andorA10.getPin("A2"), new Point(140, 645), new Point(140, 640));
-               new GUIWire(submodelModifiable, cell10.getPin("QA3"), andorA10.getPin("A3"), new Point(140, 655), new Point(140, 650));
-               new GUIWire(submodelModifiable, cell10.getPin("QA4"), andorA10.getPin("A4"), new Point(140, 665), new Point(140, 660));
-               new GUIWire(submodelModifiable, cell11.getPin("QA1"), andorA11.getPin("A1"), new Point(140, 785), new Point(140, 780));
-               new GUIWire(submodelModifiable, cell11.getPin("QA2"), andorA11.getPin("A2"), new Point(140, 795), new Point(140, 790));
-               new GUIWire(submodelModifiable, cell11.getPin("QA3"), andorA11.getPin("A3"), new Point(140, 805), new Point(140, 800));
-               new GUIWire(submodelModifiable, cell11.getPin("QA4"), andorA11.getPin("A4"), new Point(140, 815), new Point(140, 810));
-               new GUIWire(submodelModifiable, andB00  .getPin("Y1"), andorB01.getPin("C1"), new Point(305, 380), new Point(305, 445), new Point(245, 445), new Point(245, 490));
-               new GUIWire(submodelModifiable, andB00  .getPin("Y2"), andorB01.getPin("C2"), new Point(300, 390), new Point(300, 440), new Point(240, 440), new Point(240, 500));
-               new GUIWire(submodelModifiable, andB00  .getPin("Y3"), andorB01.getPin("C3"), new Point(295, 400), new Point(295, 435), new Point(235, 435), new Point(235, 510));
-               new GUIWire(submodelModifiable, andB00  .getPin("Y4"), andorB01.getPin("C4"), new Point(290, 410), new Point(290, 430), new Point(230, 430), new Point(230, 520));
-               new GUIWire(submodelModifiable, andorB01.getPin("Y1"), andorB10.getPin("C1"), new Point(305, 490), new Point(305, 595), new Point(245, 595), new Point(245, 640));
-               new GUIWire(submodelModifiable, andorB01.getPin("Y2"), andorB10.getPin("C2"), new Point(300, 500), new Point(300, 590), new Point(240, 590), new Point(240, 650));
-               new GUIWire(submodelModifiable, andorB01.getPin("Y3"), andorB10.getPin("C3"), new Point(295, 510), new Point(295, 585), new Point(235, 585), new Point(235, 660));
-               new GUIWire(submodelModifiable, andorB01.getPin("Y4"), andorB10.getPin("C4"), new Point(290, 520), new Point(290, 580), new Point(230, 580), new Point(230, 670));
-               new GUIWire(submodelModifiable, andorB10.getPin("Y1"), andorB11.getPin("C1"), new Point(305, 640), new Point(305, 745), new Point(245, 745), new Point(245, 790));
-               new GUIWire(submodelModifiable, andorB10.getPin("Y2"), andorB11.getPin("C2"), new Point(300, 650), new Point(300, 740), new Point(240, 740), new Point(240, 800));
-               new GUIWire(submodelModifiable, andorB10.getPin("Y3"), andorB11.getPin("C3"), new Point(295, 660), new Point(295, 735), new Point(235, 735), new Point(235, 810));
-               new GUIWire(submodelModifiable, andorB10.getPin("Y4"), andorB11.getPin("C4"), new Point(290, 670), new Point(290, 730), new Point(230, 730), new Point(230, 820));
-               new GUIWire(submodelModifiable, andorB11.getPin("Y1"), QB1                           , new Point(330, 790), new Point(330, 450));
-               new GUIWire(submodelModifiable, andorB11.getPin("Y2"), QB2                           , new Point(335, 800), new Point(335, 550));
-               new GUIWire(submodelModifiable, andorB11.getPin("Y3"), QB3                           , new Point(340, 810), new Point(340, 650));
-               new GUIWire(submodelModifiable, andorB11.getPin("Y4"), QB4                           , new Point(345, 820), new Point(345, 750));
-               new GUIWire(submodelModifiable, andA00  .getPin("Y1"), andorA01.getPin("C1"), new Point(210, 330), new Point(210, 430), new Point(150, 430), new Point(150, 440));
-               new GUIWire(submodelModifiable, andA00  .getPin("Y2"), andorA01.getPin("C2"), new Point(205, 340), new Point(205, 425), new Point(145, 425), new Point(145, 450));
-               new GUIWire(submodelModifiable, andA00  .getPin("Y3"), andorA01.getPin("C3"), new Point(200, 350), new Point(200, 420), new Point(140, 420), new Point(140, 460));
-               new GUIWire(submodelModifiable, andA00  .getPin("Y4"), andorA01.getPin("C4"), new Point(195, 360), new Point(195, 415), new Point(135, 415), new Point(135, 470));
-               new GUIWire(submodelModifiable, andorA01.getPin("Y1"), andorA10.getPin("C1"), new Point(210, 440), new Point(210, 580), new Point(150, 580), new Point(150, 590));
-               new GUIWire(submodelModifiable, andorA01.getPin("Y2"), andorA10.getPin("C2"), new Point(205, 450), new Point(205, 575), new Point(145, 575), new Point(145, 600));
-               new GUIWire(submodelModifiable, andorA01.getPin("Y3"), andorA10.getPin("C3"), new Point(200, 460), new Point(200, 570), new Point(140, 570), new Point(140, 610));
-               new GUIWire(submodelModifiable, andorA01.getPin("Y4"), andorA10.getPin("C4"), new Point(195, 470), new Point(195, 565), new Point(135, 565), new Point(135, 620));
-               new GUIWire(submodelModifiable, andorA10.getPin("Y1"), andorA11.getPin("C1"), new Point(210, 590), new Point(210, 730), new Point(150, 730), new Point(150, 740));
-               new GUIWire(submodelModifiable, andorA10.getPin("Y2"), andorA11.getPin("C2"), new Point(205, 600), new Point(205, 725), new Point(145, 725), new Point(145, 750));
-               new GUIWire(submodelModifiable, andorA10.getPin("Y3"), andorA11.getPin("C3"), new Point(200, 610), new Point(200, 720), new Point(140, 720), new Point(140, 760));
-               new GUIWire(submodelModifiable, andorA10.getPin("Y4"), andorA11.getPin("C4"), new Point(195, 620), new Point(195, 715), new Point(135, 715), new Point(135, 770));
-               new GUIWire(submodelModifiable, andorA11.getPin("Y1"), QA1                           , new Point(210, 740), new Point(210, 880), new Point(310, 880), new Point(310,  50));
-               new GUIWire(submodelModifiable, andorA11.getPin("Y2"), QA2                           , new Point(205, 750), new Point(205, 885), new Point(315, 885), new Point(315, 150));
-               new GUIWire(submodelModifiable, andorA11.getPin("Y3"), QA3                           , new Point(200, 760), new Point(200, 890), new Point(320, 890), new Point(320, 250));
-               new GUIWire(submodelModifiable, andorA11.getPin("Y4"), QA4                           , new Point(195, 770), new Point(195, 895), new Point(325, 895), new Point(325, 350));
-               //@formatter:on
-
-               StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
-               highLevelStateHandler.addSubcomponentHighLevelState("c00", DelegatingSubcomponentHighLevelStateHandler::new).set(cell00, null);
-               highLevelStateHandler.addSubcomponentHighLevelState("c01", DelegatingSubcomponentHighLevelStateHandler::new).set(cell01, null);
-               highLevelStateHandler.addSubcomponentHighLevelState("c10", DelegatingSubcomponentHighLevelStateHandler::new).set(cell10, null);
-               highLevelStateHandler.addSubcomponentHighLevelState("c11", DelegatingSubcomponentHighLevelStateHandler::new).set(cell11, null);
-
-               highLevelStateHandler.addSubcomponentHighLevelState("c0000", DelegatingSubcomponentHighLevelStateHandler::new).set(cell00, "c00");
-               highLevelStateHandler.addSubcomponentHighLevelState("c0001", DelegatingSubcomponentHighLevelStateHandler::new).set(cell01, "c00");
-               highLevelStateHandler.addSubcomponentHighLevelState("c0010", DelegatingSubcomponentHighLevelStateHandler::new).set(cell10, "c00");
-               highLevelStateHandler.addSubcomponentHighLevelState("c0011", DelegatingSubcomponentHighLevelStateHandler::new).set(cell11, "c00");
-               highLevelStateHandler.addSubcomponentHighLevelState("c0100", DelegatingSubcomponentHighLevelStateHandler::new).set(cell00, "c01");
-               highLevelStateHandler.addSubcomponentHighLevelState("c0101", DelegatingSubcomponentHighLevelStateHandler::new).set(cell01, "c01");
-               highLevelStateHandler.addSubcomponentHighLevelState("c0110", DelegatingSubcomponentHighLevelStateHandler::new).set(cell10, "c01");
-               highLevelStateHandler.addSubcomponentHighLevelState("c0111", DelegatingSubcomponentHighLevelStateHandler::new).set(cell11, "c01");
-               highLevelStateHandler.addSubcomponentHighLevelState("c1000", DelegatingSubcomponentHighLevelStateHandler::new).set(cell00, "c10");
-               highLevelStateHandler.addSubcomponentHighLevelState("c1001", DelegatingSubcomponentHighLevelStateHandler::new).set(cell01, "c10");
-               highLevelStateHandler.addSubcomponentHighLevelState("c1010", DelegatingSubcomponentHighLevelStateHandler::new).set(cell10, "c10");
-               highLevelStateHandler.addSubcomponentHighLevelState("c1011", DelegatingSubcomponentHighLevelStateHandler::new).set(cell11, "c10");
-               highLevelStateHandler.addSubcomponentHighLevelState("c1100", DelegatingSubcomponentHighLevelStateHandler::new).set(cell00, "c11");
-               highLevelStateHandler.addSubcomponentHighLevelState("c1101", DelegatingSubcomponentHighLevelStateHandler::new).set(cell01, "c11");
-               highLevelStateHandler.addSubcomponentHighLevelState("c1110", DelegatingSubcomponentHighLevelStateHandler::new).set(cell10, "c11");
-               highLevelStateHandler.addSubcomponentHighLevelState("c1111", DelegatingSubcomponentHighLevelStateHandler::new).set(cell11, "c11");
-
-               highLevelStateHandler.addAtomicHighLevelState("q", BitVectorSplittingAtomicHighLevelStateHandler::new)
-                               .set(Arrays.asList("c11.q", "c10.q", "c01.q", "c00.q"), Arrays.asList(16, 16, 16, 16));
-               setHighLevelStateHandler(highLevelStateHandler);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIram4.class.getCanonicalName(), (m, p, n) -> new GUIram4(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIsel2_4.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIsel2_4.java
deleted file mode 100644 (file)
index 6f4a6cd..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIsel2_4 extends SimpleRectangularSubmodelComponent
-{
-       public GUIsel2_4(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIsel2_4(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIsel2_4", name);
-               setSubmodelScale(.4);
-               setInputPins("SA", "SB", "A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4");
-               setOutputPins("Y1", "Y2", "Y3", "Y4");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin SA = getSubmodelPin("SA");
-               Pin SB = getSubmodelPin("SB");
-               Pin A1 = getSubmodelPin("A1");
-               Pin A2 = getSubmodelPin("A2");
-               Pin A3 = getSubmodelPin("A3");
-               Pin A4 = getSubmodelPin("A4");
-               Pin B1 = getSubmodelPin("B1");
-               Pin B2 = getSubmodelPin("B2");
-               Pin B3 = getSubmodelPin("B3");
-               Pin B4 = getSubmodelPin("B4");
-               Pin Y1 = getSubmodelPin("Y1");
-               Pin Y2 = getSubmodelPin("Y2");
-               Pin Y3 = getSubmodelPin("Y3");
-               Pin Y4 = getSubmodelPin("Y4");
-
-               GUINandGate nandA1 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandA2 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandA3 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandA4 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandB1 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandB2 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandB3 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandB4 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY1 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY2 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY3 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY4 = new GUINandGate(submodelModifiable, 1);
-
-               WireCrossPoint cpA1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpA2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpA3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB3 = new WireCrossPoint(submodelModifiable, 1);
-
-               nandA1.moveTo(20, 2.5);
-               nandB1.moveTo(20, 27.5);
-               nandA2.moveTo(20, 52.5);
-               nandB2.moveTo(20, 77.5);
-               nandA3.moveTo(20, 102.5);
-               nandB3.moveTo(20, 127.5);
-               nandA4.moveTo(20, 152.5);
-               nandB4.moveTo(20, 177.5);
-               nandY1.moveTo(65, 2.5);
-               nandY2.moveTo(65, 27.5);
-               nandY3.moveTo(65, 52.5);
-               nandY4.moveTo(65, 77.5);
-               cpA1.moveCenterTo(7.5, 17.5);
-               cpB1.moveCenterTo(5, 42.5);
-               cpA2.moveCenterTo(7.5, 67.5);
-               cpB2.moveCenterTo(5, 92.5);
-               cpA3.moveCenterTo(7.5, 117.5);
-               cpB3.moveCenterTo(5, 142.5);
-
-               new GUIWire(submodelModifiable, A1, nandA1.getPin("A"), new Point(15, 62.5), new Point(15, 7.5));
-               new GUIWire(submodelModifiable, A2, nandA2.getPin("A"), new Point(17.5, 87.5), new Point(17.5, 57.5));
-               new GUIWire(submodelModifiable, A3, nandA3.getPin("A"), new Point(17.5, 112.5), new Point(17.5, 107.5));
-               new GUIWire(submodelModifiable, A4, nandA4.getPin("A"), new Point(17.5, 137.5), new Point(17.5, 157.5));
-               new GUIWire(submodelModifiable, B1, nandB1.getPin("A"), new Point(10, 162.5), new Point(10, 32.5));
-               new GUIWire(submodelModifiable, B2, nandB2.getPin("A"), new Point(12.5, 187.5), new Point(12.5, 82.5));
-               new GUIWire(submodelModifiable, B3, nandB3.getPin("A"), new Point(15, 212.5), new Point(15, 132.5));
-               new GUIWire(submodelModifiable, B4, nandB4.getPin("A"), new Point(10, 237.5), new Point(10, 182.5));
-               new GUIWire(submodelModifiable, SA, cpA1);
-               new GUIWire(submodelModifiable, SB, cpB1);
-               new GUIWire(submodelModifiable, cpA1, cpA2);
-               new GUIWire(submodelModifiable, cpA1, nandA1.getPin("B"));
-               new GUIWire(submodelModifiable, cpA2, cpA3);
-               new GUIWire(submodelModifiable, cpA2, nandA2.getPin("B"));
-               new GUIWire(submodelModifiable, cpA3, nandA3.getPin("B"));
-               new GUIWire(submodelModifiable, cpA3, nandA4.getPin("B"), new Point(7.5, 167.5));
-               new GUIWire(submodelModifiable, cpB1, cpB2);
-               new GUIWire(submodelModifiable, cpB1, nandB1.getPin("B"));
-               new GUIWire(submodelModifiable, cpB2, cpB3);
-               new GUIWire(submodelModifiable, cpB2, nandB2.getPin("B"));
-               new GUIWire(submodelModifiable, cpB3, nandB3.getPin("B"));
-               new GUIWire(submodelModifiable, cpB3, nandB4.getPin("B"), new Point(5, 192.5));
-               new GUIWire(submodelModifiable, nandA1.getPin("Y"), nandY1.getPin("A"), new Point(42.5, 12.5), new Point(42.5, 7.5));
-               new GUIWire(submodelModifiable, nandB1.getPin("Y"), nandY1.getPin("B"), new Point(45, 37.5), new Point(45, 17.5));
-               new GUIWire(submodelModifiable, nandA2.getPin("Y"), nandY2.getPin("A"), new Point(47.5, 62.5), new Point(47.5, 32.5));
-               new GUIWire(submodelModifiable, nandB2.getPin("Y"), nandY2.getPin("B"), new Point(50, 87.5), new Point(50, 42.5));
-               new GUIWire(submodelModifiable, nandA3.getPin("Y"), nandY3.getPin("A"), new Point(52.5, 112.5), new Point(52.5, 57.5));
-               new GUIWire(submodelModifiable, nandB3.getPin("Y"), nandY3.getPin("B"), new Point(55, 137.5), new Point(55, 67.5));
-               new GUIWire(submodelModifiable, nandA4.getPin("Y"), nandY4.getPin("A"), new Point(57.5, 162.5), new Point(57.5, 82.5));
-               new GUIWire(submodelModifiable, nandB4.getPin("Y"), nandY4.getPin("B"), new Point(60, 187.5), new Point(60, 92.5));
-               new GUIWire(submodelModifiable, nandY1.getPin("Y"), Y1, new Point[0]);
-               new GUIWire(submodelModifiable, nandY2.getPin("Y"), Y2, new Point[0]);
-               new GUIWire(submodelModifiable, nandY3.getPin("Y"), Y3, new Point[0]);
-               new GUIWire(submodelModifiable, nandY4.getPin("Y"), Y4, new Point[0]);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIsel2_4.class.getCanonicalName(), (m, p, n) -> new GUIsel2_4(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIsel3_4.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIsel3_4.java
deleted file mode 100644 (file)
index ec5891b..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIsel3_4 extends SimpleRectangularSubmodelComponent
-{
-       public GUIsel3_4(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIsel3_4(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIsel3_4", name);
-               setSubmodelScale(.2);
-               setInputPins("SA", "SB", "SC", "A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4", "C1", "C2", "C3", "C4");
-               setOutputPins("Y1", "Y2", "Y3", "Y4");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin SA = getSubmodelPin("SA");
-               Pin SB = getSubmodelPin("SB");
-               Pin SC = getSubmodelPin("SC");
-               Pin A1 = getSubmodelPin("A1");
-               Pin A2 = getSubmodelPin("A2");
-               Pin A3 = getSubmodelPin("A3");
-               Pin A4 = getSubmodelPin("A4");
-               Pin B1 = getSubmodelPin("B1");
-               Pin B2 = getSubmodelPin("B2");
-               Pin B3 = getSubmodelPin("B3");
-               Pin B4 = getSubmodelPin("B4");
-               Pin C1 = getSubmodelPin("C1");
-               Pin C2 = getSubmodelPin("C2");
-               Pin C3 = getSubmodelPin("C3");
-               Pin C4 = getSubmodelPin("C4");
-               Pin Y1 = getSubmodelPin("Y1");
-               Pin Y2 = getSubmodelPin("Y2");
-               Pin Y3 = getSubmodelPin("Y3");
-               Pin Y4 = getSubmodelPin("Y4");
-
-               GUIsel2_4 sel2_4 = new GUIsel2_4(submodelModifiable);
-               GUInot4 not4 = new GUInot4(submodelModifiable);
-               GUINandGate nandC1 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandC2 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandC3 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandC4 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY1 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY2 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY3 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY4 = new GUINandGate(submodelModifiable, 1);
-
-               WireCrossPoint cpSC1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpSC2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpSC3 = new WireCrossPoint(submodelModifiable, 1);
-
-               sel2_4.moveTo(35, 250);
-               not4.moveTo(75, 250);
-               nandC1.moveTo(50, 570);
-               nandC2.moveTo(50, 620);
-               nandC3.moveTo(50, 670);
-               nandC4.moveTo(50, 720);
-               nandY1.moveTo(152.5, 15);
-               nandY2.moveTo(152.5, 65);
-               nandY3.moveTo(152.5, 115);
-               nandY4.moveTo(152.5, 165);
-               cpSC1.moveCenterTo(30, 585);
-               cpSC2.moveCenterTo(30, 635);
-               cpSC3.moveCenterTo(30, 685);
-
-               new GUIWire(submodelModifiable, SA, sel2_4.getPin("SA"), new Point(25, 25), new Point(25, 255));
-               new GUIWire(submodelModifiable, SB, sel2_4.getPin("SB"), new Point(20, 75), new Point(20, 265));
-               new GUIWire(submodelModifiable, A1, sel2_4.getPin("A1"), new Point(15, 175), new Point(15, 275));
-               new GUIWire(submodelModifiable, A2, sel2_4.getPin("A2"), new Point(10, 225), new Point(10, 285));
-               new GUIWire(submodelModifiable, A3, sel2_4.getPin("A3"), new Point(5, 275), new Point(5, 295));
-               new GUIWire(submodelModifiable, A4, sel2_4.getPin("A4"), new Point(5, 325), new Point(5, 305));
-               new GUIWire(submodelModifiable, B1, sel2_4.getPin("B1"), new Point(10, 375), new Point(10, 315));
-               new GUIWire(submodelModifiable, B2, sel2_4.getPin("B2"), new Point(15, 425), new Point(15, 325));
-               new GUIWire(submodelModifiable, B3, sel2_4.getPin("B3"), new Point(20, 475), new Point(20, 335));
-               new GUIWire(submodelModifiable, B4, sel2_4.getPin("B4"), new Point(25, 525), new Point(25, 345));
-               new GUIWire(submodelModifiable, sel2_4.getPin("Y1"), not4.getPin("A1"), new Point[0]);
-               new GUIWire(submodelModifiable, sel2_4.getPin("Y2"), not4.getPin("A2"), new Point[0]);
-               new GUIWire(submodelModifiable, sel2_4.getPin("Y3"), not4.getPin("A3"), new Point[0]);
-               new GUIWire(submodelModifiable, sel2_4.getPin("Y4"), not4.getPin("A4"), new Point[0]);
-               new GUIWire(submodelModifiable, SC, cpSC1, new Point(30, 125));
-               new GUIWire(submodelModifiable, cpSC1, nandC1.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpSC1, cpSC2, new Point(30, 125));
-               new GUIWire(submodelModifiable, cpSC2, nandC2.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpSC2, cpSC3, new Point(30, 125));
-               new GUIWire(submodelModifiable, cpSC3, nandC3.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpSC3, nandC4.getPin("B"), new Point(30, 735));
-               new GUIWire(submodelModifiable, C1, nandC1.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, C2, nandC2.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, C3, nandC3.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, C4, nandC4.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, not4.getPin("Y1"), nandY1.getPin("A"), new Point(115, 255), new Point(115, 20));
-               new GUIWire(submodelModifiable, not4.getPin("Y2"), nandY2.getPin("A"), new Point(120, 265), new Point(120, 70));
-               new GUIWire(submodelModifiable, not4.getPin("Y3"), nandY3.getPin("A"), new Point(125, 275), new Point(125, 120));
-               new GUIWire(submodelModifiable, not4.getPin("Y4"), nandY4.getPin("A"), new Point(130, 285), new Point(130, 170));
-               new GUIWire(submodelModifiable, nandC1.getPin("Y"), nandY1.getPin("B"), new Point(135, 580), new Point(135, 30));
-               new GUIWire(submodelModifiable, nandC2.getPin("Y"), nandY2.getPin("B"), new Point(140, 630), new Point(140, 80));
-               new GUIWire(submodelModifiable, nandC3.getPin("Y"), nandY3.getPin("B"), new Point(145, 680), new Point(145, 130));
-               new GUIWire(submodelModifiable, nandC4.getPin("Y"), nandY4.getPin("B"), new Point(150, 730), new Point(150, 180));
-               new GUIWire(submodelModifiable, nandY1.getPin("Y"), Y1, new Point[0]);
-               new GUIWire(submodelModifiable, nandY2.getPin("Y"), Y2, new Point[0]);
-               new GUIWire(submodelModifiable, nandY3.getPin("Y"), Y3, new Point[0]);
-               new GUIWire(submodelModifiable, nandY4.getPin("Y"), Y4, new Point[0]);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIsel3_4.class.getCanonicalName(), (m, p, n) -> new GUIsel3_4(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIxor.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIxor.java
deleted file mode 100644 (file)
index 77b659d..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIxor extends SimpleRectangularSubmodelComponent
-{
-       public GUIxor(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIxor(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIxor", name);
-               setSubmodelScale(.4);
-               setInputPins("A", "B");
-               setOutputPins("Y");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin A = getSubmodelPin("A");
-               Pin B = getSubmodelPin("B");
-               Pin Y = getSubmodelPin("Y");
-
-               GUINandGate nandAB = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandYA = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandYB = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandY = new GUINandGate(submodelModifiable, 1);
-
-               WireCrossPoint cpA = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpB = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpAB = new WireCrossPoint(submodelModifiable, 1);
-
-               nandAB.moveTo(7.5, 15);
-               nandYA.moveTo(35, 2.5);
-               nandYB.moveTo(35, 27.5);
-               nandY.moveTo(62.5, 15);
-               cpA.moveCenterTo(5, 12.5);
-               cpB.moveCenterTo(5, 37.5);
-               cpAB.moveCenterTo(30, 25);
-
-               new GUIWire(submodelModifiable, A, cpA, new Point[0]);
-               new GUIWire(submodelModifiable, B, cpB, new Point[0]);
-               new GUIWire(submodelModifiable, cpA, nandAB.getPin("A"), new Point(5, 20));
-               new GUIWire(submodelModifiable, cpB, nandAB.getPin("B"), new Point(5, 30));
-               new GUIWire(submodelModifiable, nandAB.getPin("Y"), cpAB);
-               new GUIWire(submodelModifiable, cpAB, nandYA.getPin("B"), new Point(30, 17.5));
-               new GUIWire(submodelModifiable, cpAB, nandYB.getPin("A"), new Point(30, 32.5));
-               new GUIWire(submodelModifiable, cpA, nandYA.getPin("A"), new Point(5, 7.5));
-               new GUIWire(submodelModifiable, cpB, nandYB.getPin("B"), new Point(5, 42.5));
-               new GUIWire(submodelModifiable, nandYA.getPin("Y"), nandY.getPin("A"));
-               new GUIWire(submodelModifiable, nandYB.getPin("Y"), nandY.getPin("B"));
-               new GUIWire(submodelModifiable, nandY.getPin("Y"), Y);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIxor.class.getCanonicalName(), (m, p, n) -> new GUIxor(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901.java
deleted file mode 100644 (file)
index 418f5f9..0000000
+++ /dev/null
@@ -1,361 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased.am2901;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIand;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIdlatch4;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUImux1_4;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIor4;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIram4;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIsel3_4;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler;
-
-public class GUIAm2901 extends SimpleRectangularSubmodelComponent
-{
-       public GUIAm2901(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIAm2901(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIAm2901", name);
-               setSubmodelScale(.1);
-               setInputPins("I8", "I7", "I6", "I5", "I4", "I3", "I2", "I1", "I0", "C", "Cn", "D1", "D2", "D3", "D4", "A0", "A1", "A2", "A3", "B0",
-                               "B1", "B2", "B3", "IRAMn", "IRAMn+3", "IQn", "IQn+3");
-               setOutputPins("Y1", "Y2", "Y3", "Y4", "F=0", "Cn+4", "OVR", "F3", "ORAMn", "ORAMn+3", "OQn", "OQn+3");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin I8 = getSubmodelPin("I8");
-               Pin I7 = getSubmodelPin("I7");
-               Pin I6 = getSubmodelPin("I6");
-               Pin I5 = getSubmodelPin("I5");
-               Pin I4 = getSubmodelPin("I4");
-               Pin I3 = getSubmodelPin("I3");
-               Pin I2 = getSubmodelPin("I2");
-               Pin I1 = getSubmodelPin("I1");
-               Pin I0 = getSubmodelPin("I0");
-               Pin C = getSubmodelPin("C");
-               Pin Cn = getSubmodelPin("Cn");
-               Pin D1 = getSubmodelPin("D1");
-               Pin D2 = getSubmodelPin("D2");
-               Pin D3 = getSubmodelPin("D3");
-               Pin D4 = getSubmodelPin("D4");
-               Pin A0 = getSubmodelPin("A0");
-               Pin A1 = getSubmodelPin("A1");
-               Pin A2 = getSubmodelPin("A2");
-               Pin A3 = getSubmodelPin("A3");
-               Pin B0 = getSubmodelPin("B0");
-               Pin B1 = getSubmodelPin("B1");
-               Pin B2 = getSubmodelPin("B2");
-               Pin B3 = getSubmodelPin("B3");
-               Pin IRAMn = getSubmodelPin("IRAMn");
-               Pin IRAMnplus3 = getSubmodelPin("IRAMn+3");
-               Pin IQn = getSubmodelPin("IQn");
-               Pin IQnplus3 = getSubmodelPin("IQn+3");
-               Pin Y1 = getSubmodelPin("Y1");
-               Pin Y2 = getSubmodelPin("Y2");
-               Pin Y3 = getSubmodelPin("Y3");
-               Pin Y4 = getSubmodelPin("Y4");
-               Pin Feq0 = getSubmodelPin("F=0");
-               Pin Cnplus4 = getSubmodelPin("Cn+4");
-               Pin OVR = getSubmodelPin("OVR");
-               Pin F3 = getSubmodelPin("F3");
-               Pin ORAMn = getSubmodelPin("ORAMn");
-               Pin ORAMnplus3 = getSubmodelPin("ORAMn+3");
-               Pin OQn = getSubmodelPin("OQn");
-               Pin OQnplus3 = getSubmodelPin("OQn+3");
-
-               GUIAm2901DestDecode destDecode = new GUIAm2901DestDecode(submodelModifiable);
-               GUImux1_4 Ymux = new GUImux1_4(submodelModifiable);
-               GUIand ramweAnd = new GUIand(submodelModifiable);
-               GUINandGate notC = new GUINandGate(submodelModifiable, 1);
-               GUIAm2901ALUInclSourceDecodeInclFunctionDecode alu = new GUIAm2901ALUInclSourceDecodeInclFunctionDecode(submodelModifiable);
-               GUIor4 Fneq0 = new GUIor4(submodelModifiable);
-               GUINandGate notFneq0 = new GUINandGate(submodelModifiable, 1);
-               GUIram4 ram = new GUIram4(submodelModifiable);
-               GUIdlatch4 QAlatch = new GUIdlatch4(submodelModifiable);
-               GUIdlatch4 QBlatch = new GUIdlatch4(submodelModifiable);
-               GUIsel3_4 ramDsel = new GUIsel3_4(submodelModifiable);
-               GUIsel3_4 qregDsel = new GUIsel3_4(submodelModifiable);
-               GUIAm2901QReg qreg = new GUIAm2901QReg(submodelModifiable);
-
-               WireCrossPoint cpC1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpC2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpC3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpC4 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpLSH = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNSH = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpRSH = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQA1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQA2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQA3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQA4 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ4 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpOQn = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpOQnplus3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ2Rsh = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpQ3Rsh = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpORAMn = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpORAMnplus3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF11 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF21 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF31 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF41 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF12 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF22 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF32 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF42 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF1Lsh = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF2Lsh = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF3Lsh = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF2Rsh = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF3Rsh = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF4Rsh = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF13 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF23 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF33 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpF43 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpFneq0 = new WireCrossPoint(submodelModifiable, 1);
-
-               destDecode.moveTo(15, 45);
-               Ymux.moveTo(275, 135);
-               ramweAnd.moveTo(190, 65);
-               notC.moveTo(160, 75);
-               alu.moveTo(240, 2110);
-               Fneq0.moveTo(275, 445);
-               notFneq0.moveTo(320, 440);
-               ram.moveTo(95, 2220);
-               QAlatch.moveTo(160, 2220);
-               QBlatch.moveTo(160, 2275);
-               ramDsel.moveTo(45, 2310);
-               qregDsel.moveTo(45, 2510);
-               qreg.moveTo(90, 2490);
-               cpC1.moveCenterTo(155, 950);
-               cpC2.moveCenterTo(155, 90);
-               cpC3.moveCenterTo(155, 2265);
-               cpC4.moveCenterTo(155, 2320);
-               cpLSH.moveCenterTo(40, 2315);
-               cpNSH.moveCenterTo(35, 2325);
-               cpRSH.moveCenterTo(30, 2335);
-               cpQA1.moveCenterTo(220, 2225);
-               cpQA2.moveCenterTo(225, 2235);
-               cpQA3.moveCenterTo(230, 2245);
-               cpQA4.moveCenterTo(235, 2255);
-               cpQ1.moveCenterTo(130, 2495);
-               cpQ2.moveCenterTo(135, 2505);
-               cpQ3.moveCenterTo(140, 2515);
-               cpQ4.moveCenterTo(145, 2525);
-               cpOQn.moveCenterTo(220, 2495);
-               cpOQnplus3.moveCenterTo(235, 2525);
-               cpQ2Rsh.moveCenterTo(35, 2625);
-               cpQ3Rsh.moveCenterTo(40, 2635);
-               cpORAMn.moveCenterTo(280, 2115);
-               cpORAMnplus3.moveCenterTo(295, 2145);
-               cpF3.moveCenterTo(330, 950);
-               cpF11.moveCenterTo(255, 2090);
-               cpF21.moveCenterTo(260, 2095);
-               cpF31.moveCenterTo(265, 2100);
-               cpF41.moveCenterTo(270, 2105);
-               cpF12.moveCenterTo(255, 450);
-               cpF22.moveCenterTo(260, 460);
-               cpF32.moveCenterTo(265, 470);
-               cpF42.moveCenterTo(270, 480);
-               cpF1Lsh.moveCenterTo(10, 2355);
-               cpF2Lsh.moveCenterTo(15, 2365);
-               cpF3Lsh.moveCenterTo(20, 2375);
-               cpF2Rsh.moveCenterTo(15, 2395);
-               cpF3Rsh.moveCenterTo(20, 2405);
-               cpF4Rsh.moveCenterTo(25, 2415);
-               cpF13.moveCenterTo(10, 2385);
-               cpF23.moveCenterTo(15, 2425);
-               cpF33.moveCenterTo(20, 2435);
-               cpF43.moveCenterTo(25, 2445);
-               cpFneq0.moveCenterTo(315, 450);
-
-               new GUIWire(submodelModifiable, I8, destDecode.getPin("I8"), new Point[0]);
-               new GUIWire(submodelModifiable, I7, destDecode.getPin("I7"), new Point(5, 150), new Point(5, 60));
-               new GUIWire(submodelModifiable, I6, destDecode.getPin("I6"), new Point(10, 250), new Point(10, 70));
-               new GUIWire(submodelModifiable, I5, alu.getPin("I5"), new Point(130, 350), new Point(130, 2115));
-               new GUIWire(submodelModifiable, I4, alu.getPin("I4"), new Point(125, 450), new Point(125, 2125));
-               new GUIWire(submodelModifiable, I3, alu.getPin("I3"), new Point(120, 550), new Point(120, 2135));
-               new GUIWire(submodelModifiable, I2, alu.getPin("I2"), new Point(115, 650), new Point(115, 2145));
-               new GUIWire(submodelModifiable, I1, alu.getPin("I1"), new Point(110, 750), new Point(110, 2155));
-               new GUIWire(submodelModifiable, I0, alu.getPin("I0"), new Point(105, 850), new Point(105, 2165));
-               new GUIWire(submodelModifiable, C, cpC1, new Point[0]);
-               new GUIWire(submodelModifiable, cpC1, cpC2, new Point[0]);
-               new GUIWire(submodelModifiable, cpC2, notC.getPin("A"), new Point(155, 80));
-               new GUIWire(submodelModifiable, cpC2, notC.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpC1, cpC3, new Point[0]);
-               new GUIWire(submodelModifiable, cpC3, QAlatch.getPin("C"), new Point[0]);
-               new GUIWire(submodelModifiable, cpC3, cpC4, new Point[0]);
-               new GUIWire(submodelModifiable, cpC4, QBlatch.getPin("C"), new Point[0]);
-               new GUIWire(submodelModifiable, cpC4, qreg.getPin("C"), new Point(155, 2485), new Point(80, 2485), new Point(80, 2495));
-               new GUIWire(submodelModifiable, destDecode.getPin("LSH"), cpLSH, new Point(55, 90), new Point(55, 125), new Point(40, 125));
-               new GUIWire(submodelModifiable, destDecode.getPin("NSH"), cpNSH, new Point(60, 50), new Point(60, 120), new Point(35, 120));
-               new GUIWire(submodelModifiable, destDecode.getPin("RSH"), cpRSH, new Point(65, 60), new Point(65, 115), new Point(30, 115));
-               new GUIWire(submodelModifiable, cpLSH, ramDsel.getPin("SA"), new Point[0]);
-               new GUIWire(submodelModifiable, cpNSH, ramDsel.getPin("SB"), new Point[0]);
-               new GUIWire(submodelModifiable, cpRSH, ramDsel.getPin("SC"), new Point[0]);
-               new GUIWire(submodelModifiable, cpLSH, qregDsel.getPin("SA"), new Point(40, 2515));
-               new GUIWire(submodelModifiable, cpNSH, qregDsel.getPin("SB"), new Point(35, 2525));
-               new GUIWire(submodelModifiable, cpRSH, qregDsel.getPin("SC"), new Point(30, 2535));
-               new GUIWire(submodelModifiable, A0, ram.getPin("A0"), new Point(80, 1550), new Point(80, 2225));
-               new GUIWire(submodelModifiable, A1, ram.getPin("A1"), new Point(75, 1650), new Point(75, 2235));
-               new GUIWire(submodelModifiable, A2, ram.getPin("A2"), new Point(70, 1750), new Point(70, 2245));
-               new GUIWire(submodelModifiable, A3, ram.getPin("A3"), new Point(65, 1850), new Point(65, 2255));
-               new GUIWire(submodelModifiable, B0, ram.getPin("B0"), new Point(60, 1950), new Point(60, 2265));
-               new GUIWire(submodelModifiable, B1, ram.getPin("B1"), new Point(55, 2050), new Point(55, 2275));
-               new GUIWire(submodelModifiable, B2, ram.getPin("B2"), new Point(50, 2150), new Point(50, 2285));
-               new GUIWire(submodelModifiable, B3, ram.getPin("B3"), new Point(45, 2250), new Point(45, 2295));
-               new GUIWire(submodelModifiable, ram.getPin("QA1"), QAlatch.getPin("D1"), new Point[0]);
-               new GUIWire(submodelModifiable, ram.getPin("QA2"), QAlatch.getPin("D2"), new Point[0]);
-               new GUIWire(submodelModifiable, ram.getPin("QA3"), QAlatch.getPin("D3"), new Point[0]);
-               new GUIWire(submodelModifiable, ram.getPin("QA4"), QAlatch.getPin("D4"), new Point[0]);
-               new GUIWire(submodelModifiable, ram.getPin("QB1"), QBlatch.getPin("D1"), new Point(150, 2265), new Point(150, 2280));
-               new GUIWire(submodelModifiable, ram.getPin("QB2"), QBlatch.getPin("D2"), new Point(145, 2275), new Point(145, 2290));
-               new GUIWire(submodelModifiable, ram.getPin("QB3"), QBlatch.getPin("D3"), new Point(140, 2285), new Point(140, 2300));
-               new GUIWire(submodelModifiable, ram.getPin("QB4"), QBlatch.getPin("D4"), new Point(135, 2295), new Point(135, 2310));
-               new GUIWire(submodelModifiable, Cn, alu.getPin("Cn"), new Point(100, 1050), new Point(100, 2175));
-               new GUIWire(submodelModifiable, D1, alu.getPin("D1"), new Point(180, 1150), new Point(180, 2185));
-               new GUIWire(submodelModifiable, D2, alu.getPin("D2"), new Point(175, 1250), new Point(175, 2195));
-               new GUIWire(submodelModifiable, D3, alu.getPin("D3"), new Point(170, 1350), new Point(170, 2205));
-               new GUIWire(submodelModifiable, D4, alu.getPin("D4"), new Point(165, 1450), new Point(165, 2215));
-               new GUIWire(submodelModifiable, QAlatch.getPin("Q1"), cpQA1, new Point[0]);
-               new GUIWire(submodelModifiable, QAlatch.getPin("Q2"), cpQA2, new Point[0]);
-               new GUIWire(submodelModifiable, QAlatch.getPin("Q3"), cpQA3, new Point[0]);
-               new GUIWire(submodelModifiable, QAlatch.getPin("Q4"), cpQA4, new Point[0]);
-               new GUIWire(submodelModifiable, cpQA1, Ymux.getPin("I0_1"), new Point(220, 150));
-               new GUIWire(submodelModifiable, cpQA2, Ymux.getPin("I0_2"), new Point(225, 160));
-               new GUIWire(submodelModifiable, cpQA3, Ymux.getPin("I0_3"), new Point(230, 170));
-               new GUIWire(submodelModifiable, cpQA4, Ymux.getPin("I0_4"), new Point(235, 180));
-               new GUIWire(submodelModifiable, cpQA1, alu.getPin("A1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQA2, alu.getPin("A2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQA3, alu.getPin("A3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQA4, alu.getPin("A4"), new Point[0]);
-               new GUIWire(submodelModifiable, QBlatch.getPin("Q1"), alu.getPin("B1"), new Point(200, 2280), new Point(200, 2265));
-               new GUIWire(submodelModifiable, QBlatch.getPin("Q2"), alu.getPin("B2"), new Point(205, 2290), new Point(205, 2275));
-               new GUIWire(submodelModifiable, QBlatch.getPin("Q3"), alu.getPin("B3"), new Point(210, 2300), new Point(210, 2285));
-               new GUIWire(submodelModifiable, QBlatch.getPin("Q4"), alu.getPin("B4"), new Point(215, 2310), new Point(215, 2295));
-               new GUIWire(submodelModifiable, qreg.getPin("Q1"), cpQ1, new Point[0]);
-               new GUIWire(submodelModifiable, qreg.getPin("Q2"), cpQ2, new Point[0]);
-               new GUIWire(submodelModifiable, qreg.getPin("Q3"), cpQ3, new Point[0]);
-               new GUIWire(submodelModifiable, qreg.getPin("Q4"), cpQ4, new Point[0]);
-               new GUIWire(submodelModifiable, cpQ1, cpOQn, new Point[0]);
-               new GUIWire(submodelModifiable, cpOQn, OQn, new Point(335, 2495), new Point(335, 1050));
-               new GUIWire(submodelModifiable, cpQ4, cpOQnplus3, new Point[0]);
-               new GUIWire(submodelModifiable, cpOQnplus3, OQnplus3, new Point(340, 2525), new Point(340, 1150));
-               new GUIWire(submodelModifiable, cpQ2, cpQ2Rsh, new Point(135, 2670), new Point(30, 2670), new Point(30, 2635), new Point(35, 2635));
-               new GUIWire(submodelModifiable, cpQ3, cpQ3Rsh, new Point(140, 2675), new Point(35, 2675), new Point(35, 2640), new Point(40, 2640));
-               new GUIWire(submodelModifiable, cpQ2Rsh, qregDsel.getPin("C1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ3Rsh, qregDsel.getPin("C2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpQ4, qregDsel.getPin("C3"), new Point(145, 2680), new Point(40, 2680), new Point(40, 2645));
-               new GUIWire(submodelModifiable, IQnplus3, qregDsel.getPin("C4"), new Point(5, 2650), new Point(5, 2655));
-               new GUIWire(submodelModifiable, IQn, qregDsel.getPin("A1"), new Point(5, 2550), new Point(5, 2545));
-               new GUIWire(submodelModifiable, cpQ1, qregDsel.getPin("A2"), new Point(130, 2665), new Point(25, 2665), new Point(25, 2630),
-                               new Point(30, 2630), new Point(30, 2555));
-               new GUIWire(submodelModifiable, cpOQn, alu.getPin("Q1"), new Point(220, 2305));
-               new GUIWire(submodelModifiable, cpQ2, alu.getPin("Q2"), new Point(225, 2505), new Point(225, 2315));
-               new GUIWire(submodelModifiable, cpQ3, alu.getPin("Q3"), new Point(230, 2515), new Point(230, 2325));
-               new GUIWire(submodelModifiable, cpOQnplus3, alu.getPin("Q4"), new Point(235, 2335));
-               new GUIWire(submodelModifiable, cpQ2Rsh, qregDsel.getPin("A3"), new Point(35, 2565));
-               new GUIWire(submodelModifiable, cpQ3Rsh, qregDsel.getPin("A4"), new Point(40, 2575));
-               new GUIWire(submodelModifiable, qregDsel.getPin("Y1"), qreg.getPin("D1"), new Point[0]);
-               new GUIWire(submodelModifiable, qregDsel.getPin("Y2"), qreg.getPin("D2"), new Point[0]);
-               new GUIWire(submodelModifiable, qregDsel.getPin("Y3"), qreg.getPin("D3"), new Point[0]);
-               new GUIWire(submodelModifiable, qregDsel.getPin("Y4"), qreg.getPin("D4"), new Point[0]);
-               new GUIWire(submodelModifiable, alu.getPin("Cn+4"), Cnplus4, new Point(315, 2155), new Point(315, 550));
-               new GUIWire(submodelModifiable, alu.getPin("OVR"), OVR, new Point(320, 2165), new Point(320, 650));
-               new GUIWire(submodelModifiable, alu.getPin("F1"), cpORAMn, new Point[0]);
-               new GUIWire(submodelModifiable, alu.getPin("F4"), cpORAMnplus3, new Point[0]);
-               new GUIWire(submodelModifiable, cpORAMn, ORAMn, new Point(325, 2115), new Point(325, 850));
-               new GUIWire(submodelModifiable, cpORAMnplus3, cpF3, new Point(330, 2145));
-               new GUIWire(submodelModifiable, cpF3, ORAMnplus3, new Point[0]);
-               new GUIWire(submodelModifiable, cpF3, F3, new Point(330, 750));
-               new GUIWire(submodelModifiable, cpORAMn, cpF11, new Point(280, 2090));
-               new GUIWire(submodelModifiable, alu.getPin("F2"), cpF21, new Point(285, 2125), new Point(285, 2095));
-               new GUIWire(submodelModifiable, alu.getPin("F3"), cpF31, new Point(290, 2135), new Point(290, 2100));
-               new GUIWire(submodelModifiable, cpORAMnplus3, cpF41, new Point(295, 2105));
-               new GUIWire(submodelModifiable, cpF11, cpF12, new Point[0]);
-               new GUIWire(submodelModifiable, cpF21, cpF22, new Point[0]);
-               new GUIWire(submodelModifiable, cpF31, cpF32, new Point[0]);
-               new GUIWire(submodelModifiable, cpF41, cpF42, new Point[0]);
-               new GUIWire(submodelModifiable, cpF12, Fneq0.getPin("A1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpF22, Fneq0.getPin("A2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpF32, Fneq0.getPin("A3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpF42, Fneq0.getPin("A4"), new Point[0]);
-               new GUIWire(submodelModifiable, cpF12, Ymux.getPin("I1_1"), new Point(255, 190));
-               new GUIWire(submodelModifiable, cpF22, Ymux.getPin("I1_2"), new Point(260, 200));
-               new GUIWire(submodelModifiable, cpF32, Ymux.getPin("I1_3"), new Point(265, 210));
-               new GUIWire(submodelModifiable, cpF42, Ymux.getPin("I1_4"), new Point(270, 220));
-               new GUIWire(submodelModifiable, cpF11, cpF1Lsh, new Point(10, 2090));
-               new GUIWire(submodelModifiable, cpF21, cpF2Lsh, new Point(15, 2095));
-               new GUIWire(submodelModifiable, cpF31, cpF3Lsh, new Point(20, 2100));
-               new GUIWire(submodelModifiable, IRAMn, ramDsel.getPin("A1"), new Point(5, 2350), new Point(5, 2345));
-               new GUIWire(submodelModifiable, cpF1Lsh, ramDsel.getPin("A2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpF2Lsh, ramDsel.getPin("A3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpF3Lsh, ramDsel.getPin("A4"), new Point[0]);
-               new GUIWire(submodelModifiable, cpF2Lsh, cpF2Rsh, new Point[0]);
-               new GUIWire(submodelModifiable, cpF3Lsh, cpF3Rsh, new Point[0]);
-               new GUIWire(submodelModifiable, cpF41, cpF4Rsh, new Point(25, 2105));
-               new GUIWire(submodelModifiable, cpF1Lsh, cpF13, new Point[0]);
-               new GUIWire(submodelModifiable, cpF13, ramDsel.getPin("B1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpF2Rsh, ramDsel.getPin("B2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpF3Rsh, ramDsel.getPin("B3"), new Point[0]);
-               new GUIWire(submodelModifiable, cpF4Rsh, ramDsel.getPin("B4"), new Point[0]);
-               new GUIWire(submodelModifiable, cpF2Rsh, cpF23, new Point[0]);
-               new GUIWire(submodelModifiable, cpF3Rsh, cpF33, new Point[0]);
-               new GUIWire(submodelModifiable, cpF4Rsh, cpF43, new Point[0]);
-               new GUIWire(submodelModifiable, cpF23, ramDsel.getPin("C1"), new Point[0]);
-               new GUIWire(submodelModifiable, cpF33, ramDsel.getPin("C2"), new Point[0]);
-               new GUIWire(submodelModifiable, cpF43, ramDsel.getPin("C3"), new Point[0]);
-               new GUIWire(submodelModifiable, IRAMnplus3, ramDsel.getPin("C4"), new Point(5, 2450), new Point(5, 2455));
-               new GUIWire(submodelModifiable, cpF13, qregDsel.getPin("B1"), new Point(10, 2585));
-               new GUIWire(submodelModifiable, cpF23, qregDsel.getPin("B2"), new Point(15, 2595));
-               new GUIWire(submodelModifiable, cpF33, qregDsel.getPin("B3"), new Point(20, 2605));
-               new GUIWire(submodelModifiable, cpF43, qregDsel.getPin("B4"), new Point(25, 2615));
-               new GUIWire(submodelModifiable, ramDsel.getPin("Y1"), ram.getPin("D1"), new Point[0]);
-               new GUIWire(submodelModifiable, ramDsel.getPin("Y2"), ram.getPin("D2"), new Point[0]);
-               new GUIWire(submodelModifiable, ramDsel.getPin("Y3"), ram.getPin("D3"), new Point[0]);
-               new GUIWire(submodelModifiable, ramDsel.getPin("Y4"), ram.getPin("D4"), new Point[0]);
-               new GUIWire(submodelModifiable, destDecode.getPin("RAMWE"), ramweAnd.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, notC.getPin("Y"), ramweAnd.getPin("B"));
-               new GUIWire(submodelModifiable, ramweAnd.getPin("Y"), ram.getPin("WE"), new Point(230, 70), new Point(230, 105), new Point(90, 105),
-                               new Point(90, 2305));
-               new GUIWire(submodelModifiable, destDecode.getPin("QWE"), qreg.getPin("WE"), new Point(85, 100), new Point(85, 2505));
-               new GUIWire(submodelModifiable, destDecode.getPin("YF"), Ymux.getPin("S0"), new Point(70, 80), new Point(70, 140));
-               new GUIWire(submodelModifiable, Ymux.getPin("Y1"), Y1, new Point(335, 140), new Point(335, 50));
-               new GUIWire(submodelModifiable, Ymux.getPin("Y2"), Y2, new Point[0]);
-               new GUIWire(submodelModifiable, Ymux.getPin("Y3"), Y3, new Point(335, 160), new Point(335, 250));
-               new GUIWire(submodelModifiable, Ymux.getPin("Y4"), Y4, new Point(325, 170), new Point(325, 350));
-               new GUIWire(submodelModifiable, Fneq0.getPin("Y"), cpFneq0, new Point[0]);
-               new GUIWire(submodelModifiable, cpFneq0, notFneq0.getPin("A"), new Point(315, 445));
-               new GUIWire(submodelModifiable, cpFneq0, notFneq0.getPin("B"), new Point(315, 455));
-               new GUIWire(submodelModifiable, notFneq0.getPin("Y"), Feq0, new Point[0]);
-
-               StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
-               highLevelStateHandler.addSubcomponentHighLevelState("regs", DelegatingSubcomponentHighLevelStateHandler::new).set(ram, null);
-               highLevelStateHandler.addSubcomponentHighLevelState("qreg", DelegatingSubcomponentHighLevelStateHandler::new).set(qreg, null);
-               setHighLevelStateHandler(highLevelStateHandler);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901.class.getCanonicalName(), (m, p, n) -> new GUIAm2901(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUFuncDecode.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUFuncDecode.java
deleted file mode 100644 (file)
index 8a62634..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased.am2901;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIand;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUInand3;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIAm2901ALUFuncDecode extends SimpleRectangularSubmodelComponent
-{
-       public GUIAm2901ALUFuncDecode(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIAm2901ALUFuncDecode(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIAm2901ALUFuncDecode", name);
-               setSubmodelScale(.25);
-               setInputPins("I5", "I4", "I3");
-               setOutputPins("CinE", "L", "SN", "SBE", "FN", "RN");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin I5 = getSubmodelPin("I5");
-               Pin I4 = getSubmodelPin("I4");
-               Pin I3 = getSubmodelPin("I3");
-               Pin CinE = getSubmodelPin("CinE");
-               Pin L = getSubmodelPin("L");
-               Pin SN = getSubmodelPin("SN");
-               Pin SBE = getSubmodelPin("SBE");
-               Pin FN = getSubmodelPin("FN");
-               Pin RN = getSubmodelPin("RN");
-
-               GUINandGate notI5 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notI4 = new GUINandGate(submodelModifiable, 1);
-               GUInand3 nandI4I3NotI5 = new GUInand3(submodelModifiable);
-               GUINandGate nandI5NotI4 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandI3I4 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandL = new GUINandGate(submodelModifiable, 1);
-               GUIand andSBE = new GUIand(submodelModifiable);
-
-               WireCrossPoint cpI51 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI52 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI53 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI41 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI42 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI43 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI44 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI31 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI32 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNotI51 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNotI52 = new WireCrossPoint(submodelModifiable, 1);
-
-               notI5.moveTo(15, 10);
-               notI4.moveTo(15, 50);
-               nandI4I3NotI5.moveTo(55, 10);
-               nandI5NotI4.moveTo(55, 45);
-               nandI3I4.moveTo(55, 70);
-               nandL.moveTo(100, 50);
-               andSBE.moveTo(100, 135);
-               cpI51.moveCenterTo(5, 20);
-               cpI52.moveCenterTo(5, 25);
-               cpI53.moveCenterTo(5, 45);
-               cpI41.moveCenterTo(10, 60);
-               cpI42.moveCenterTo(10, 55);
-               cpI43.moveCenterTo(10, 65);
-               cpI44.moveCenterTo(10, 85);
-               cpI31.moveCenterTo(50, 100);
-               cpI32.moveCenterTo(50, 75);
-               cpNotI51.moveCenterTo(40, 20);
-               cpNotI52.moveCenterTo(40, 35);
-
-               new GUIWire(submodelModifiable, I5, cpI51, new Point[0]);
-               new GUIWire(submodelModifiable, cpI51, notI5.getPin("A"), new Point(5, 15));
-               new GUIWire(submodelModifiable, cpI51, cpI52, new Point[0]);
-               new GUIWire(submodelModifiable, cpI52, notI5.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpI52, cpI53, new Point[0]);
-               new GUIWire(submodelModifiable, cpI53, nandI5NotI4.getPin("A"), new Point(45, 45), new Point(45, 50));
-               new GUIWire(submodelModifiable, cpI53, FN, new Point(5, 180));
-               new GUIWire(submodelModifiable, I4, cpI41, new Point[0]);
-               new GUIWire(submodelModifiable, cpI41, cpI42, new Point[0]);
-               new GUIWire(submodelModifiable, cpI42, nandI4I3NotI5.getPin("A"), new Point(10, 40), new Point(45, 40), new Point(45, 15));
-               new GUIWire(submodelModifiable, cpI42, notI4.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, cpI41, cpI43, new Point[0]);
-               new GUIWire(submodelModifiable, cpI43, notI4.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpI43, cpI44, new Point[0]);
-               new GUIWire(submodelModifiable, cpI44, nandI3I4.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpI44, SN, new Point(10, 105), new Point(135, 105), new Point(135, 100));
-               new GUIWire(submodelModifiable, I3, cpI31, new Point(50, 100));
-               new GUIWire(submodelModifiable, cpI31, RN, new Point(50, 220));
-               new GUIWire(submodelModifiable, cpI31, cpI32, new Point[0]);
-               new GUIWire(submodelModifiable, cpI32, nandI4I3NotI5.getPin("B"), new Point(50, 25));
-               new GUIWire(submodelModifiable, cpI32, nandI3I4.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, notI5.getPin("Y"), cpNotI51, new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI51, CinE, new Point(40, 5), new Point(115, 5), new Point(115, 20));
-               new GUIWire(submodelModifiable, cpNotI51, cpNotI52, new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI52, nandI4I3NotI5.getPin("C"), new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI52, andSBE.getPin("B"), new Point(40, 150));
-               new GUIWire(submodelModifiable, notI4.getPin("Y"), nandI5NotI4.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, nandI4I3NotI5.getPin("Y"), nandL.getPin("A"));
-               new GUIWire(submodelModifiable, nandI5NotI4.getPin("Y"), nandL.getPin("B"));
-               new GUIWire(submodelModifiable, nandI3I4.getPin("Y"), andSBE.getPin("A"));
-               new GUIWire(submodelModifiable, nandL.getPin("Y"), L, new Point[0]);
-               new GUIWire(submodelModifiable, andSBE.getPin("Y"), SBE, new Point[0]);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901ALUFuncDecode.class.getCanonicalName(),
-                               (m, p, n) -> new GUIAm2901ALUFuncDecode(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUInclDecode.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUInclDecode.java
deleted file mode 100644 (file)
index 5c1afe1..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased.am2901;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIxor;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIAm2901ALUInclDecode extends SimpleRectangularSubmodelComponent
-{
-       public GUIAm2901ALUInclDecode(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIAm2901ALUInclDecode(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIAm2901ALUInclDecode", name);
-               setSubmodelScale(.25);
-               setInputPins("I5", "I4", "I3", "Cn", "R1", "R2", "R3", "R4", "S1", "S2", "S3", "S4");
-               setOutputPins("F1", "F2", "F3", "F4", "Cn+4", "OVR");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin I5 = getSubmodelPin("I5");
-               Pin I4 = getSubmodelPin("I4");
-               Pin I3 = getSubmodelPin("I3");
-               Pin Cn = getSubmodelPin("Cn");
-               Pin R1 = getSubmodelPin("R1");
-               Pin R2 = getSubmodelPin("R2");
-               Pin R3 = getSubmodelPin("R3");
-               Pin R4 = getSubmodelPin("R4");
-               Pin S1 = getSubmodelPin("S1");
-               Pin S2 = getSubmodelPin("S2");
-               Pin S3 = getSubmodelPin("S3");
-               Pin S4 = getSubmodelPin("S4");
-               Pin F1 = getSubmodelPin("F1");
-               Pin F2 = getSubmodelPin("F2");
-               Pin F3 = getSubmodelPin("F3");
-               Pin F4 = getSubmodelPin("F4");
-               Pin Cnplus4 = getSubmodelPin("Cn+4");
-               Pin OVR = getSubmodelPin("OVR");
-
-               GUIAm2901ALUFuncDecode funcDecode = new GUIAm2901ALUFuncDecode(submodelModifiable);
-               GUIAm2901ALUOneBit alu1 = new GUIAm2901ALUOneBit(submodelModifiable);
-               GUIAm2901ALUOneBit alu2 = new GUIAm2901ALUOneBit(submodelModifiable);
-               GUIAm2901ALUOneBit alu3 = new GUIAm2901ALUOneBit(submodelModifiable);
-               GUIAm2901ALUOneBit alu4 = new GUIAm2901ALUOneBit(submodelModifiable);
-               GUIxor xorOVR = new GUIxor(submodelModifiable);
-
-               WireCrossPoint cpCoutE1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpCoutE2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpCoutE3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpCinE1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpCinE2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpCinE3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpRN1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpRN2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpRN3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpSN1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpSN2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpSN3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpFN1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpFN2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpFN3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpL1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpL2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpL3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpCnplus3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpCnplus4 = new WireCrossPoint(submodelModifiable, 1);
-
-               funcDecode.moveTo(20, 2.5);
-               alu1.moveTo(45, 80);
-               alu2.moveTo(45, 180);
-               alu3.moveTo(45, 280);
-               alu4.moveTo(45, 380);
-               xorOVR.moveTo(95, 400);
-               cpCoutE1.moveCenterTo(25, 95);
-               cpCoutE2.moveCenterTo(25, 195);
-               cpCoutE3.moveCenterTo(25, 295);
-               cpCinE1.moveCenterTo(27.5, 105);
-               cpCinE2.moveCenterTo(27.5, 205);
-               cpCinE3.moveCenterTo(27.5, 305);
-               cpRN1.moveCenterTo(30, 125);
-               cpRN2.moveCenterTo(30, 225);
-               cpRN3.moveCenterTo(30, 325);
-               cpSN1.moveCenterTo(32.5, 145);
-               cpSN2.moveCenterTo(32.5, 245);
-               cpSN3.moveCenterTo(32.5, 345);
-               cpFN1.moveCenterTo(35, 155);
-               cpFN2.moveCenterTo(35, 255);
-               cpFN3.moveCenterTo(35, 355);
-               cpL1.moveCenterTo(37.5, 165);
-               cpL2.moveCenterTo(37.5, 265);
-               cpL3.moveCenterTo(37.5, 365);
-               cpCnplus3.moveCenterTo(85, 375);
-               cpCnplus4.moveCenterTo(85, 385);
-
-               new GUIWire(submodelModifiable, I5, funcDecode.getPin("I5"), new Point(5, 20), new Point(5, 7.5));
-               new GUIWire(submodelModifiable, I4, funcDecode.getPin("I4"), new Point(10, 60), new Point(10, 17.5));
-               new GUIWire(submodelModifiable, I3, funcDecode.getPin("I3"), new Point(15, 100), new Point(15, 27.5));
-               new GUIWire(submodelModifiable, funcDecode.getPin("SBE"), cpCoutE1, new Point(62.5, 37.5), new Point(62.5, 70), new Point(25, 70));
-               new GUIWire(submodelModifiable, cpCoutE1, cpCoutE2, new Point[0]);
-               new GUIWire(submodelModifiable, cpCoutE2, cpCoutE3, new Point[0]);
-               new GUIWire(submodelModifiable, cpCoutE1, alu1.getPin("CoutE"), new Point[0]);
-               new GUIWire(submodelModifiable, cpCoutE2, alu2.getPin("CoutE"), new Point[0]);
-               new GUIWire(submodelModifiable, cpCoutE3, alu3.getPin("CoutE"), new Point[0]);
-               new GUIWire(submodelModifiable, cpCoutE3, alu4.getPin("CoutE"), new Point(25, 395));
-               new GUIWire(submodelModifiable, funcDecode.getPin("CinE"), cpCinE1, new Point(70, 7.5), new Point(70, 77.5), new Point(27.5, 77.5));
-               new GUIWire(submodelModifiable, cpCinE1, cpCinE2, new Point[0]);
-               new GUIWire(submodelModifiable, cpCinE2, cpCinE3, new Point[0]);
-               new GUIWire(submodelModifiable, cpCinE1, alu1.getPin("CinE"), new Point[0]);
-               new GUIWire(submodelModifiable, cpCinE2, alu2.getPin("CinE"), new Point[0]);
-               new GUIWire(submodelModifiable, cpCinE3, alu3.getPin("CinE"), new Point[0]);
-               new GUIWire(submodelModifiable, cpCinE3, alu4.getPin("CinE"), new Point(27.5, 405));
-               new GUIWire(submodelModifiable, funcDecode.getPin("RN"), cpRN1, new Point(57.5, 57.5), new Point(57.5, 65), new Point(30, 65));
-               new GUIWire(submodelModifiable, cpRN1, cpRN2, new Point[0]);
-               new GUIWire(submodelModifiable, cpRN2, cpRN3, new Point[0]);
-               new GUIWire(submodelModifiable, cpRN1, alu1.getPin("RN"), new Point[0]);
-               new GUIWire(submodelModifiable, cpRN2, alu2.getPin("RN"), new Point[0]);
-               new GUIWire(submodelModifiable, cpRN3, alu3.getPin("RN"), new Point[0]);
-               new GUIWire(submodelModifiable, cpRN3, alu4.getPin("RN"), new Point(30, 425));
-               new GUIWire(submodelModifiable, funcDecode.getPin("SN"), cpSN1, new Point(65, 27.5), new Point(65, 72.5), new Point(32.5, 72.5));
-               new GUIWire(submodelModifiable, cpSN1, cpSN2, new Point[0]);
-               new GUIWire(submodelModifiable, cpSN2, cpSN3, new Point[0]);
-               new GUIWire(submodelModifiable, cpSN1, alu1.getPin("SN"), new Point[0]);
-               new GUIWire(submodelModifiable, cpSN2, alu2.getPin("SN"), new Point[0]);
-               new GUIWire(submodelModifiable, cpSN3, alu3.getPin("SN"), new Point[0]);
-               new GUIWire(submodelModifiable, cpSN3, alu4.getPin("SN"), new Point(32.5, 445));
-               new GUIWire(submodelModifiable, funcDecode.getPin("FN"), cpFN1, new Point(60, 47.5), new Point(60, 67.5), new Point(35, 67.5));
-               new GUIWire(submodelModifiable, cpFN1, cpFN2, new Point[0]);
-               new GUIWire(submodelModifiable, cpFN2, cpFN3, new Point[0]);
-               new GUIWire(submodelModifiable, cpFN1, alu1.getPin("FN"), new Point[0]);
-               new GUIWire(submodelModifiable, cpFN2, alu2.getPin("FN"), new Point[0]);
-               new GUIWire(submodelModifiable, cpFN3, alu3.getPin("FN"), new Point[0]);
-               new GUIWire(submodelModifiable, cpFN3, alu4.getPin("FN"), new Point(35, 455));
-               new GUIWire(submodelModifiable, funcDecode.getPin("L"), cpL1, new Point(67.5, 17.5), new Point(67.5, 75), new Point(37.5, 75));
-               new GUIWire(submodelModifiable, cpL1, cpL2, new Point[0]);
-               new GUIWire(submodelModifiable, cpL2, cpL3, new Point[0]);
-               new GUIWire(submodelModifiable, cpL1, alu1.getPin("L"), new Point[0]);
-               new GUIWire(submodelModifiable, cpL2, alu2.getPin("L"), new Point[0]);
-               new GUIWire(submodelModifiable, cpL3, alu3.getPin("L"), new Point[0]);
-               new GUIWire(submodelModifiable, cpL3, alu4.getPin("L"), new Point(37.5, 465));
-               new GUIWire(submodelModifiable, R1, alu1.getPin("R"), new Point(10, 180), new Point(10, 115));
-               new GUIWire(submodelModifiable, R2, alu2.getPin("R"), new Point(10, 220), new Point(10, 215));
-               new GUIWire(submodelModifiable, R3, alu3.getPin("R"), new Point(10, 260), new Point(10, 315));
-               new GUIWire(submodelModifiable, R4, alu4.getPin("R"), new Point(20, 300), new Point(20, 415));
-               new GUIWire(submodelModifiable, S1, alu1.getPin("S"), new Point(15, 340), new Point(15, 135));
-               new GUIWire(submodelModifiable, S2, alu2.getPin("S"), new Point(5, 380), new Point(5, 235));
-               new GUIWire(submodelModifiable, S3, alu3.getPin("S"), new Point(10, 420), new Point(10, 335));
-               new GUIWire(submodelModifiable, S4, alu4.getPin("S"), new Point(10, 460), new Point(10, 435));
-               new GUIWire(submodelModifiable, Cn, alu1.getPin("Cin"), new Point(5, 140), new Point(5, 85));
-               new GUIWire(submodelModifiable, alu1.getPin("Cout"), alu2.getPin("Cin"), new Point(85, 85), new Point(85, 175), new Point(40, 175),
-                               new Point(40, 185));
-               new GUIWire(submodelModifiable, alu2.getPin("Cout"), alu3.getPin("Cin"), new Point(85, 185), new Point(85, 275), new Point(40, 275),
-                               new Point(40, 285));
-               new GUIWire(submodelModifiable, alu3.getPin("Cout"), cpCnplus3, new Point(85, 285));
-               new GUIWire(submodelModifiable, cpCnplus3, alu4.getPin("Cin"), new Point(40, 375), new Point(40, 385));
-               new GUIWire(submodelModifiable, alu4.getPin("Cout"), cpCnplus4, new Point[0]);
-               new GUIWire(submodelModifiable, alu1.getPin("F"), F1, new Point(90, 95), new Point(90, 20));
-               new GUIWire(submodelModifiable, alu2.getPin("F"), F2, new Point(95, 195), new Point(95, 60));
-               new GUIWire(submodelModifiable, alu3.getPin("F"), F3, new Point(100, 295), new Point(100, 100));
-               new GUIWire(submodelModifiable, alu4.getPin("F"), F4, new Point(105, 395), new Point(105, 140));
-               new GUIWire(submodelModifiable, cpCnplus3, xorOVR.getPin("A"), new Point(90, 375), new Point(90, 405));
-               new GUIWire(submodelModifiable, cpCnplus4, xorOVR.getPin("B"), new Point(85, 415));
-               new GUIWire(submodelModifiable, cpCnplus4, Cnplus4, new Point(130, 385), new Point(130, 180));
-               new GUIWire(submodelModifiable, xorOVR.getPin("Y"), OVR);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901ALUInclDecode.class.getCanonicalName(),
-                               (m, p, n) -> new GUIAm2901ALUInclDecode(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.java
deleted file mode 100644 (file)
index a57e315..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased.am2901;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIsel2_4;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIsel3_4;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIAm2901ALUInclSourceDecodeInclFunctionDecode extends SimpleRectangularSubmodelComponent
-{
-       public GUIAm2901ALUInclSourceDecodeInclFunctionDecode(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIAm2901ALUInclSourceDecodeInclFunctionDecode(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIAm2901ALUInclSourceDecodeInclFunctionDecode", name);
-               setSubmodelScale(.25);
-               setInputPins("I5", "I4", "I3", "I2", "I1", "I0", "Cn", "D1", "D2", "D3", "D4", "A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4", "Q1",
-                               "Q2", "Q3", "Q4");
-               setOutputPins("F1", "F2", "F3", "F4", "Cn+4", "OVR");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin I5 = getSubmodelPin("I5");
-               Pin I4 = getSubmodelPin("I4");
-               Pin I3 = getSubmodelPin("I3");
-               Pin I2 = getSubmodelPin("I2");
-               Pin I1 = getSubmodelPin("I1");
-               Pin I0 = getSubmodelPin("I0");
-               Pin Cn = getSubmodelPin("Cn");
-               Pin D1 = getSubmodelPin("D1");
-               Pin D2 = getSubmodelPin("D2");
-               Pin D3 = getSubmodelPin("D3");
-               Pin D4 = getSubmodelPin("D4");
-               Pin A1 = getSubmodelPin("A1");
-               Pin A2 = getSubmodelPin("A2");
-               Pin A3 = getSubmodelPin("A3");
-               Pin A4 = getSubmodelPin("A4");
-               Pin B1 = getSubmodelPin("B1");
-               Pin B2 = getSubmodelPin("B2");
-               Pin B3 = getSubmodelPin("B3");
-               Pin B4 = getSubmodelPin("B4");
-               Pin Q1 = getSubmodelPin("Q1");
-               Pin Q2 = getSubmodelPin("Q2");
-               Pin Q3 = getSubmodelPin("Q3");
-               Pin Q4 = getSubmodelPin("Q4");
-               Pin F1 = getSubmodelPin("F1");
-               Pin F2 = getSubmodelPin("F2");
-               Pin F3 = getSubmodelPin("F3");
-               Pin F4 = getSubmodelPin("F4");
-               Pin Cnplus4 = getSubmodelPin("Cn+4");
-               Pin OVR = getSubmodelPin("OVR");
-
-               GUIAm2901SourceDecode sourceDecode = new GUIAm2901SourceDecode(submodelModifiable);
-               GUIsel2_4 selR = new GUIsel2_4(submodelModifiable);
-               GUIsel3_4 selS = new GUIsel3_4(submodelModifiable);
-               GUIAm2901ALUInclDecode alu = new GUIAm2901ALUInclDecode(submodelModifiable);
-
-               WireCrossPoint cpA1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpA2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpA3 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpA4 = new WireCrossPoint(submodelModifiable, 1);
-
-               sourceDecode.moveTo(15, 165);
-               selR.moveTo(45, 365);
-               selS.moveTo(45, 575);
-               alu.moveTo(60, 15);
-               cpA1.moveCenterTo(10, 460);
-               cpA2.moveCenterTo(15, 500);
-               cpA3.moveCenterTo(20, 540);
-               cpA4.moveCenterTo(25, 580);
-
-               new GUIWire(submodelModifiable, I5, alu.getPin("I5"), new Point[0]);
-               new GUIWire(submodelModifiable, I4, alu.getPin("I4"), new Point(5, 60), new Point(5, 30));
-               new GUIWire(submodelModifiable, I3, alu.getPin("I3"), new Point(15, 100), new Point(15, 40));
-               new GUIWire(submodelModifiable, I2, sourceDecode.getPin("I2"), new Point(5, 140), new Point(5, 170));
-               new GUIWire(submodelModifiable, I1, sourceDecode.getPin("I1"), new Point[0]);
-               new GUIWire(submodelModifiable, I0, sourceDecode.getPin("I0"), new Point(5, 220), new Point(5, 190));
-               new GUIWire(submodelModifiable, Cn, alu.getPin("Cn"), new Point(10, 260), new Point(10, 50));
-               new GUIWire(submodelModifiable, D1, selR.getPin("A1"), new Point(15, 300), new Point(15, 390));
-               new GUIWire(submodelModifiable, D2, selR.getPin("A2"), new Point(10, 340), new Point(10, 400));
-               new GUIWire(submodelModifiable, D3, selR.getPin("A3"), new Point(5, 380), new Point(5, 410));
-               new GUIWire(submodelModifiable, D4, selR.getPin("A4"), new Point[0]);
-               new GUIWire(submodelModifiable, A1, cpA1, new Point[0]);
-               new GUIWire(submodelModifiable, A2, cpA2, new Point[0]);
-               new GUIWire(submodelModifiable, A3, cpA3, new Point[0]);
-               new GUIWire(submodelModifiable, A4, cpA4, new Point[0]);
-               new GUIWire(submodelModifiable, cpA1, selR.getPin("B1"), new Point(10, 430));
-               new GUIWire(submodelModifiable, cpA2, selR.getPin("B2"), new Point(15, 440));
-               new GUIWire(submodelModifiable, cpA3, selR.getPin("B3"), new Point(20, 450));
-               new GUIWire(submodelModifiable, cpA4, selR.getPin("B4"), new Point(25, 460));
-               new GUIWire(submodelModifiable, cpA1, selS.getPin("A1"), new Point(10, 610));
-               new GUIWire(submodelModifiable, cpA2, selS.getPin("A2"), new Point(15, 620));
-               new GUIWire(submodelModifiable, cpA3, selS.getPin("A3"), new Point(20, 630));
-               new GUIWire(submodelModifiable, cpA4, selS.getPin("A4"), new Point(25, 640));
-               new GUIWire(submodelModifiable, B1, selS.getPin("B1"), new Point(5, 620), new Point(5, 650));
-               new GUIWire(submodelModifiable, B2, selS.getPin("B2"), new Point[0]);
-               new GUIWire(submodelModifiable, B3, selS.getPin("B3"), new Point(5, 700), new Point(5, 670));
-               new GUIWire(submodelModifiable, B4, selS.getPin("B4"), new Point(10, 740), new Point(10, 680));
-               new GUIWire(submodelModifiable, Q1, selS.getPin("C1"), new Point(15, 780), new Point(15, 690));
-               new GUIWire(submodelModifiable, Q2, selS.getPin("C2"), new Point(20, 820), new Point(20, 700));
-               new GUIWire(submodelModifiable, Q3, selS.getPin("C3"), new Point(25, 860), new Point(25, 710));
-               new GUIWire(submodelModifiable, Q4, selS.getPin("C4"), new Point(30, 900), new Point(30, 720));
-               new GUIWire(submodelModifiable, sourceDecode.getPin("SQ"), selS.getPin("SC"), new Point(75, 170), new Point(75, 240),
-                               new Point(30, 240), new Point(30, 600));
-               new GUIWire(submodelModifiable, sourceDecode.getPin("RA"), selR.getPin("SB"), new Point(70, 180), new Point(70, 235),
-                               new Point(20, 235), new Point(20, 380));
-               new GUIWire(submodelModifiable, sourceDecode.getPin("SB"), selS.getPin("SB"), new Point(65, 190), new Point(65, 230),
-                               new Point(35, 230), new Point(35, 590));
-               new GUIWire(submodelModifiable, sourceDecode.getPin("SA"), selS.getPin("SA"), new Point(60, 200), new Point(60, 225),
-                               new Point(40, 225), new Point(40, 580));
-               new GUIWire(submodelModifiable, sourceDecode.getPin("RD"), selR.getPin("SA"), new Point(55, 210), new Point(55, 220),
-                               new Point(25, 220), new Point(25, 370));
-               new GUIWire(submodelModifiable, selR.getPin("Y1"), alu.getPin("R1"), new Point(82.5, 370), new Point(82.5, 162.5),
-                               new Point(20, 162.5), new Point(20, 60));
-               new GUIWire(submodelModifiable, selR.getPin("Y2"), alu.getPin("R2"), new Point(85, 380), new Point(85, 160), new Point(22.5, 160),
-                               new Point(22.5, 70));
-               new GUIWire(submodelModifiable, selR.getPin("Y3"), alu.getPin("R3"), new Point(87.5, 390), new Point(87.5, 157.5),
-                               new Point(25, 157.5), new Point(25, 80));
-               new GUIWire(submodelModifiable, selR.getPin("Y4"), alu.getPin("R4"), new Point(90, 400), new Point(90, 155), new Point(27.5, 155),
-                               new Point(27.5, 90));
-               new GUIWire(submodelModifiable, selS.getPin("Y1"), alu.getPin("S1"), new Point(92.5, 580), new Point(92.5, 152.5),
-                               new Point(30, 152.5), new Point(30, 100));
-               new GUIWire(submodelModifiable, selS.getPin("Y2"), alu.getPin("S2"), new Point(95, 590), new Point(95, 150), new Point(32.5, 150),
-                               new Point(32.5, 110));
-               new GUIWire(submodelModifiable, selS.getPin("Y3"), alu.getPin("S3"), new Point(97.5, 600), new Point(97.5, 147.5),
-                               new Point(35, 147.5), new Point(35, 120));
-               new GUIWire(submodelModifiable, selS.getPin("Y4"), alu.getPin("S4"), new Point(100, 610), new Point(100, 145), new Point(37.5, 145),
-                               new Point(37.5, 130));
-               new GUIWire(submodelModifiable, alu.getPin("F1"), F1, new Point[0]);
-               new GUIWire(submodelModifiable, alu.getPin("F2"), F2, new Point(135, 30), new Point(135, 60));
-               new GUIWire(submodelModifiable, alu.getPin("F3"), F3, new Point(130, 40), new Point(130, 100));
-               new GUIWire(submodelModifiable, alu.getPin("F4"), F4, new Point(125, 50), new Point(125, 140));
-               new GUIWire(submodelModifiable, alu.getPin("Cn+4"), Cnplus4, new Point(120, 60), new Point(120, 180));
-               new GUIWire(submodelModifiable, alu.getPin("OVR"), OVR, new Point(115, 70), new Point(115, 220));
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901ALUInclSourceDecodeInclFunctionDecode.class.getCanonicalName(),
-                               (m, p, n) -> new GUIAm2901ALUInclSourceDecodeInclFunctionDecode(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUOneBit.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUOneBit.java
deleted file mode 100644 (file)
index 453a669..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased.am2901;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIand;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIfulladder;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUImux1;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIxor;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIAm2901ALUOneBit extends SimpleRectangularSubmodelComponent
-{
-       public GUIAm2901ALUOneBit(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIAm2901ALUOneBit(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIAm2901ALUOneBit", name);
-               setSubmodelScale(.2);
-               setInputPins("Cin", "CoutE", "CinE", "R", "RN", "S", "SN", "FN", "L");
-               setOutputPins("Cout", "F");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin Cin = getSubmodelPin("Cin");
-               Pin CoutE = getSubmodelPin("CoutE");
-               Pin CinE = getSubmodelPin("CinE");
-               Pin R = getSubmodelPin("R");
-               Pin RN = getSubmodelPin("RN");
-               Pin S = getSubmodelPin("S");
-               Pin SN = getSubmodelPin("SN");
-               Pin FN = getSubmodelPin("FN");
-               Pin L = getSubmodelPin("L");
-               Pin Cout = getSubmodelPin("Cout");
-               Pin F = getSubmodelPin("F");
-
-               GUIand Cinand = new GUIand(submodelModifiable);
-               GUIxor Rxor = new GUIxor(submodelModifiable);
-               GUIxor Sxor = new GUIxor(submodelModifiable);
-               GUIfulladder add = new GUIfulladder(submodelModifiable);
-               GUINandGate nand = new GUINandGate(submodelModifiable, 1);
-               GUIand Coutand = new GUIand(submodelModifiable);
-               GUImux1 Fsel = new GUImux1(submodelModifiable);
-               GUIxor Fxor = new GUIxor(submodelModifiable);
-
-               WireCrossPoint cpRXored = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpSXored = new WireCrossPoint(submodelModifiable, 1);
-
-               Cinand.moveTo(10, 20);
-               Rxor.moveTo(10, 190);
-               Sxor.moveTo(10, 290);
-               add.moveTo(60, 20);
-               nand.moveTo(60, 55);
-               Coutand.moveTo(135, 20);
-               Fsel.moveTo(90, 70);
-               Fxor.moveTo(135, 70);
-               cpRXored.moveCenterTo(50, 60);
-               cpSXored.moveCenterTo(55, 70);
-
-               new GUIWire(submodelModifiable, Cin, Cinand.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, CoutE, Coutand.getPin("A"), new Point(5, 75), new Point(5, 10), new Point(130, 10),
-                               new Point(130, 25));
-               new GUIWire(submodelModifiable, CinE, Cinand.getPin("B"), new Point(7.5, 125), new Point(7.5, 35));
-               new GUIWire(submodelModifiable, R, Rxor.getPin("A"));
-               new GUIWire(submodelModifiable, RN, Rxor.getPin("B"));
-               new GUIWire(submodelModifiable, S, Sxor.getPin("A"));
-               new GUIWire(submodelModifiable, SN, Sxor.getPin("B"));
-               new GUIWire(submodelModifiable, FN, Fxor.getPin("B"), new Point(130, 375), new Point(130, 85));
-               new GUIWire(submodelModifiable, L, Fsel.getPin("S0"), new Point(87.5, 425), new Point(87.5, 75));
-               new GUIWire(submodelModifiable, Cinand.getPin("Y"), add.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, Rxor.getPin("Y"), cpRXored, new Point(50, 195));
-               new GUIWire(submodelModifiable, cpRXored, add.getPin("B"), new Point(50, 35));
-               new GUIWire(submodelModifiable, cpRXored, nand.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, Sxor.getPin("Y"), cpSXored, new Point(55, 295));
-               new GUIWire(submodelModifiable, cpSXored, add.getPin("C"), new Point(55, 45));
-               new GUIWire(submodelModifiable, cpSXored, nand.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, add.getPin("Y"), Fsel.getPin("I0"), new Point(100, 25), new Point(100, 65), new Point(85, 65),
-                               new Point(85, 85));
-               new GUIWire(submodelModifiable, add.getPin("Z"), Coutand.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, nand.getPin("Y"), Fsel.getPin("I1"), new Point(82.5, 65), new Point(82.5, 95));
-               new GUIWire(submodelModifiable, Fsel.getPin("Y"), Fxor.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, Coutand.getPin("Y"), Cout, new Point[0]);
-               new GUIWire(submodelModifiable, Fxor.getPin("Y"), F, new Point[0]);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901ALUOneBit.class.getCanonicalName(),
-                               (m, p, n) -> new GUIAm2901ALUOneBit(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901DestDecode.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901DestDecode.java
deleted file mode 100644 (file)
index fbdaeab..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased.am2901;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIAm2901DestDecode extends SimpleRectangularSubmodelComponent
-{
-       public GUIAm2901DestDecode(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIAm2901DestDecode(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIAm2901DestDecode", name);
-               setSubmodelScale(.25);
-               setInputPins("I8", "I7", "I6");
-               setOutputPins("NSH", "RSH", "RAMWE", "YF", "LSH", "QWE");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin I8 = getSubmodelPin("I8");
-               Pin I7 = getSubmodelPin("I7");
-               Pin I6 = getSubmodelPin("I6");
-               Pin NSH = getSubmodelPin("NSH");
-               Pin RSH = getSubmodelPin("RSH");
-               Pin RAMWE = getSubmodelPin("RAMWE");
-               Pin YF = getSubmodelPin("YF");
-               Pin LSH = getSubmodelPin("LSH");
-               Pin QWE = getSubmodelPin("QWE");
-
-               GUINandGate notI8 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notI7 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandI8I7 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notI6 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandRSH = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandRAMWE = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandI7NotI8 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandLSH = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notRSH = new GUINandGate(submodelModifiable, 1);
-               GUINandGate andI7NotI8 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandQWE = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nandYF = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notQWE = new GUINandGate(submodelModifiable, 1);
-
-               WireCrossPoint cpI81 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI82 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI83 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI71 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI72 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI73 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI6 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNotI7 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNotI81 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNotI82 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNandI8I7 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNotRSH = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNandI7NotI81 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNandI7NotI82 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNotI6 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNandQWE = new WireCrossPoint(submodelModifiable, 1);
-
-               notI8.moveTo(15, 10);
-               notI7.moveTo(15, 50);
-               nandI8I7.moveTo(15, 90);
-               notI6.moveTo(15, 150);
-               nandRSH.moveTo(50, 10);
-               nandRAMWE.moveTo(50, 50);
-               nandI7NotI8.moveTo(50, 90);
-               nandLSH.moveTo(50, 130);
-               notRSH.moveTo(80, 10);
-               andI7NotI8.moveTo(80, 90);
-               nandQWE.moveTo(80, 145);
-               nandYF.moveTo(110, 105);
-               notQWE.moveTo(115, 210);
-               cpI81.moveCenterTo(5, 20);
-               cpI82.moveCenterTo(5, 15);
-               cpI83.moveCenterTo(5, 25);
-               cpI71.moveCenterTo(10, 60);
-               cpI72.moveCenterTo(10, 65);
-               cpI73.moveCenterTo(10, 105);
-               cpI6.moveCenterTo(5, 155);
-               cpNotI7.moveCenterTo(40, 60);
-               cpNotI81.moveCenterTo(45, 20);
-               cpNotI82.moveCenterTo(45, 55);
-               cpNandI8I7.moveCenterTo(40, 135);
-               cpNotRSH.moveCenterTo(75, 20);
-               cpNandI7NotI81.moveCenterTo(75, 100);
-               cpNandI7NotI82.moveCenterTo(75, 105);
-               cpNotI6.moveCenterTo(75, 160);
-               cpNandQWE.moveCenterTo(110, 215);
-
-               new GUIWire(submodelModifiable, I8, cpI81, new Point[0]);
-               new GUIWire(submodelModifiable, cpI81, cpI82, new Point[0]);
-               new GUIWire(submodelModifiable, cpI81, cpI83, new Point[0]);
-               new GUIWire(submodelModifiable, cpI82, notI8.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, cpI83, notI8.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, I7, cpI71, new Point[0]);
-               new GUIWire(submodelModifiable, cpI71, notI7.getPin("A"), new Point(10, 55));
-               new GUIWire(submodelModifiable, cpI71, cpI72, new Point[0]);
-               new GUIWire(submodelModifiable, cpI72, notI7.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpI72, cpI73, new Point[0]);
-               new GUIWire(submodelModifiable, cpI73, nandI8I7.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpI83, nandI8I7.getPin("A"), new Point(5, 95));
-               new GUIWire(submodelModifiable, I6, cpI6, new Point(5, 100));
-               new GUIWire(submodelModifiable, cpI6, notI6.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, cpI6, notI6.getPin("B"), new Point(5, 165));
-               new GUIWire(submodelModifiable, cpI82, nandRSH.getPin("A"), new Point(5, 5), new Point(40, 5), new Point(40, 15));
-               new GUIWire(submodelModifiable, notI7.getPin("Y"), cpNotI7, new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI7, nandRSH.getPin("B"), new Point(40, 25));
-               new GUIWire(submodelModifiable, cpNotI7, nandRAMWE.getPin("B"), new Point(40, 65));
-               new GUIWire(submodelModifiable, notI8.getPin("Y"), cpNotI81, new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI81, NSH, new Point(45, 5), new Point(135, 5), new Point(135, 20));
-               new GUIWire(submodelModifiable, cpNotI81, cpNotI82, new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI82, nandRAMWE.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI82, nandI7NotI8.getPin("A"), new Point(45, 95));
-               new GUIWire(submodelModifiable, cpI73, nandI7NotI8.getPin("B"), new Point(10, 115), new Point(45, 115), new Point(45, 105));
-               new GUIWire(submodelModifiable, nandI8I7.getPin("Y"), cpNandI8I7, new Point(40, 100));
-               new GUIWire(submodelModifiable, cpNandI8I7, nandLSH.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, cpNandI8I7, nandLSH.getPin("B"), new Point(40, 145));
-               new GUIWire(submodelModifiable, nandRSH.getPin("Y"), cpNotRSH, new Point[0]);
-               new GUIWire(submodelModifiable, cpNotRSH, notRSH.getPin("A"), new Point(75, 15));
-               new GUIWire(submodelModifiable, cpNotRSH, notRSH.getPin("B"), new Point(75, 25));
-               new GUIWire(submodelModifiable, nandRAMWE.getPin("Y"), RAMWE, new Point(125, 60), new Point(125, 100));
-               new GUIWire(submodelModifiable, nandI7NotI8.getPin("Y"), cpNandI7NotI81, new Point[0]);
-               new GUIWire(submodelModifiable, cpNandI7NotI81, andI7NotI8.getPin("A"), new Point(75, 95));
-               new GUIWire(submodelModifiable, cpNandI7NotI81, cpNandI7NotI82, new Point[0]);
-               new GUIWire(submodelModifiable, cpNandI7NotI82, andI7NotI8.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, nandLSH.getPin("Y"), LSH, new Point(125, 140), new Point(125, 180));
-               new GUIWire(submodelModifiable, cpNandI7NotI82, nandQWE.getPin("A"), new Point(75, 150));
-               new GUIWire(submodelModifiable, notI6.getPin("Y"), cpNotI6, new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI6, nandQWE.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, notRSH.getPin("Y"), RSH, new Point(130, 20), new Point(130, 60));
-               new GUIWire(submodelModifiable, andI7NotI8.getPin("Y"), nandYF.getPin("A"));
-               new GUIWire(submodelModifiable, cpNotI6, nandYF.getPin("B"), new Point(75, 170), new Point(105, 170), new Point(105, 120));
-               new GUIWire(submodelModifiable, nandQWE.getPin("Y"), cpNandQWE, new Point(110, 155));
-               new GUIWire(submodelModifiable, cpNandQWE, notQWE.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, cpNandQWE, notQWE.getPin("B"), new Point(110, 225));
-               new GUIWire(submodelModifiable, nandYF.getPin("Y"), YF);
-               new GUIWire(submodelModifiable, notQWE.getPin("Y"), QWE, new Point[0]);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901DestDecode.class.getCanonicalName(),
-                               (m, p, n) -> new GUIAm2901DestDecode(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901QReg.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901QReg.java
deleted file mode 100644 (file)
index f4ce869..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased.am2901;
-
-import java.util.Arrays;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIand;
-import net.mograsim.logic.model.model.components.mi.nandbased.GUIdff;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler;
-
-public class GUIAm2901QReg extends SimpleRectangularSubmodelComponent
-{
-       public GUIAm2901QReg(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIAm2901QReg(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "GUIAm2901QReg", name);
-               setSubmodelScale(.4);
-               setInputPins("C", "WE", "D1", "D2", "D3", "D4");
-               setOutputPins("Q1", "Q2", "Q3", "Q4");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin C = getSubmodelPin("C");
-               Pin WE = getSubmodelPin("WE");
-               Pin D1 = getSubmodelPin("D1");
-               Pin D2 = getSubmodelPin("D2");
-               Pin D3 = getSubmodelPin("D3");
-               Pin D4 = getSubmodelPin("D4");
-               Pin Q1 = getSubmodelPin("Q1");
-               Pin Q2 = getSubmodelPin("Q2");
-               Pin Q3 = getSubmodelPin("Q3");
-               Pin Q4 = getSubmodelPin("Q4");
-
-               GUIand and = new GUIand(submodelModifiable);
-               GUIdff dff1 = new GUIdff(submodelModifiable);
-               GUIdff dff2 = new GUIdff(submodelModifiable);
-               GUIdff dff3 = new GUIdff(submodelModifiable);
-               GUIdff dff4 = new GUIdff(submodelModifiable);
-
-               WireCrossPoint cpC1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpC2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpC3 = new WireCrossPoint(submodelModifiable, 1);
-
-               and.moveTo(5, 15);
-               dff1.moveTo(50, 7.5);
-               dff2.moveTo(50, 32.5);
-               dff3.moveTo(50, 57.5);
-               dff4.moveTo(50, 82.5);
-               cpC1.moveCenterTo(42.5, 20);
-               cpC2.moveCenterTo(42.5, 37.5);
-               cpC3.moveCenterTo(42.5, 62.5);
-
-               new GUIWire(submodelModifiable, C, and.getPin("A"));
-               new GUIWire(submodelModifiable, WE, and.getPin("B"));
-               new GUIWire(submodelModifiable, and.getPin("Y"), cpC1, new Point[0]);
-               new GUIWire(submodelModifiable, cpC1, dff1.getPin("C"), new Point(42.5, 12.5));
-               new GUIWire(submodelModifiable, cpC1, cpC2, new Point[0]);
-               new GUIWire(submodelModifiable, cpC2, dff2.getPin("C"), new Point[0]);
-               new GUIWire(submodelModifiable, cpC2, cpC3, new Point[0]);
-               new GUIWire(submodelModifiable, cpC3, dff3.getPin("C"), new Point[0]);
-               new GUIWire(submodelModifiable, cpC3, dff4.getPin("C"), new Point(42.5, 87.5));
-               new GUIWire(submodelModifiable, D1, dff1.getPin("D"), new Point(17.5, 62.5), new Point(17.5, 42.5), new Point(45, 42.5),
-                               new Point(45, 22.5));
-               new GUIWire(submodelModifiable, D2, dff2.getPin("D"), new Point(22.5, 87.5), new Point(22.5, 47.5));
-               new GUIWire(submodelModifiable, D3, dff3.getPin("D"), new Point(27.5, 112.5), new Point(27.5, 72.5));
-               new GUIWire(submodelModifiable, D4, dff4.getPin("D"), new Point(32.5, 137.5), new Point(32.5, 97.5));
-               new GUIWire(submodelModifiable, dff1.getPin("Q"), Q1, new Point[0]);
-               new GUIWire(submodelModifiable, dff2.getPin("Q"), Q2, new Point[0]);
-               new GUIWire(submodelModifiable, dff3.getPin("Q"), Q3, new Point[0]);
-               new GUIWire(submodelModifiable, dff4.getPin("Q"), Q4, new Point[0]);
-
-               StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
-               highLevelStateHandler.addAtomicHighLevelState("q1", DelegatingAtomicHighLevelStateHandler::new).set(dff1, "q");
-               highLevelStateHandler.addAtomicHighLevelState("q2", DelegatingAtomicHighLevelStateHandler::new).set(dff2, "q");
-               highLevelStateHandler.addAtomicHighLevelState("q3", DelegatingAtomicHighLevelStateHandler::new).set(dff3, "q");
-               highLevelStateHandler.addAtomicHighLevelState("q4", DelegatingAtomicHighLevelStateHandler::new).set(dff4, "q");
-               highLevelStateHandler.addAtomicHighLevelState("q", BitVectorSplittingAtomicHighLevelStateHandler::new)
-                               .set(Arrays.asList("q1", "q2", "q3", "q4"), Arrays.asList(1, 1, 1, 1));
-               setHighLevelStateHandler(highLevelStateHandler);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901QReg.class.getCanonicalName(), (m, p, n) -> new GUIAm2901QReg(m, n));
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901SourceDecode.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901SourceDecode.java
deleted file mode 100644 (file)
index dbe3a76..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-package net.mograsim.logic.model.model.components.mi.nandbased.am2901;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.atomic.GUINandGate;
-import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.WireCrossPoint;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class GUIAm2901SourceDecode extends SimpleRectangularSubmodelComponent
-{
-       public GUIAm2901SourceDecode(ViewModelModifiable model)
-       {
-               this(model, null);
-       }
-
-       public GUIAm2901SourceDecode(ViewModelModifiable model, String name)
-       {
-               super(model, 1, "Am2901SourceDecode", name);
-               setSubmodelScale(.25);
-               setInputPins("I2", "I1", "I0");
-               setOutputPins("SQ", "RA", "SB", "SA", "RD");
-               initSubmodelComponents();
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       private void initSubmodelComponents()
-       {
-               Pin I2 = getSubmodelPin("I2");
-               Pin I1 = getSubmodelPin("I1");
-               Pin I0 = getSubmodelPin("I0");
-               Pin SQ = getSubmodelPin("SQ");
-               Pin RA = getSubmodelPin("RA");
-               Pin SB = getSubmodelPin("SB");
-               Pin SA = getSubmodelPin("SA");
-               Pin RD = getSubmodelPin("RD");
-
-               GUINandGate notI2 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notI1 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate notI0 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand21 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand22 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand23 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand24 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand25 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand31 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand32 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand33 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand34 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand35 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand41 = new GUINandGate(submodelModifiable, 1);
-               GUINandGate nand42 = new GUINandGate(submodelModifiable, 1);
-
-               WireCrossPoint cpI21 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI22 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI23 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI1 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI01 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpI02 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNotI2 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNotI11 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNotI12 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNotI13 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNotI0 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNand22 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNand23 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNand24 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNand31 = new WireCrossPoint(submodelModifiable, 1);
-               WireCrossPoint cpNand35 = new WireCrossPoint(submodelModifiable, 1);
-
-               notI2.moveTo(10, 10);
-               notI1.moveTo(10, 50);
-               notI0.moveTo(10, 90);
-               nand21.moveTo(40, 10);
-               nand22.moveTo(40, 50);
-               nand23.moveTo(40, 90);
-               nand24.moveTo(40, 130);
-               nand25.moveTo(40, 170);
-               nand31.moveTo(70, 10);
-               nand32.moveTo(70, 50);
-               nand33.moveTo(70, 90);
-               nand34.moveTo(70, 130);
-               nand35.moveTo(70, 170);
-               nand41.moveTo(100, 10);
-               nand42.moveTo(100, 170);
-               cpI21.moveCenterTo(5, 20);
-               cpI22.moveCenterTo(7.5, 20);
-               cpI23.moveCenterTo(5, 145);
-               cpI1.moveCenterTo(7.5, 60);
-               cpI01.moveCenterTo(7.5, 100);
-               cpI02.moveCenterTo(7.5, 105);
-               cpNotI2.moveCenterTo(32.5, 55);
-               cpNotI11.moveCenterTo(35, 60);
-               cpNotI12.moveCenterTo(35, 65);
-               cpNotI13.moveCenterTo(35, 135);
-               cpNotI0.moveCenterTo(37.5, 100);
-               cpNand22.moveCenterTo(65, 60);
-               cpNand23.moveCenterTo(65, 100);
-               cpNand24.moveCenterTo(65, 140);
-               cpNand31.moveCenterTo(95, 20);
-               cpNand35.moveCenterTo(95, 180);
-
-               new GUIWire(submodelModifiable, I2, cpI21, new Point[0]);
-               new GUIWire(submodelModifiable, cpI21, nand21.getPin("A"), new Point(5, 5), new Point(35, 5), new Point(35, 15));
-               new GUIWire(submodelModifiable, cpI21, cpI22, new Point[0]);
-               new GUIWire(submodelModifiable, cpI22, notI2.getPin("A"), new Point(7.5, 15));
-               new GUIWire(submodelModifiable, cpI22, notI2.getPin("B"), new Point(7.5, 25));
-               new GUIWire(submodelModifiable, cpI21, cpI23, new Point[0]);
-               new GUIWire(submodelModifiable, cpI23, nand24.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpI23, nand35.getPin("B"), new Point(5, 195), new Point(65, 195), new Point(65, 185));
-               new GUIWire(submodelModifiable, I1, cpI1, new Point[0]);
-               new GUIWire(submodelModifiable, cpI1, notI1.getPin("A"), new Point(7.5, 55));
-               new GUIWire(submodelModifiable, cpI1, notI1.getPin("B"), new Point(7.5, 65));
-               new GUIWire(submodelModifiable, I0, cpI01, new Point[0]);
-               new GUIWire(submodelModifiable, cpI01, notI0.getPin("A"), new Point(7.5, 95));
-               new GUIWire(submodelModifiable, cpI01, cpI02, new Point[0]);
-               new GUIWire(submodelModifiable, cpI02, notI0.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpI02, nand23.getPin("B"), new Point(7.5, 112.5), new Point(32.5, 112.5), new Point(32.5, 105));
-               new GUIWire(submodelModifiable, notI2.getPin("Y"), cpNotI2, new Point(32.5, 20));
-               new GUIWire(submodelModifiable, cpNotI2, nand22.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI2, nand23.getPin("A"), new Point(32.5, 95));
-               new GUIWire(submodelModifiable, notI1.getPin("Y"), cpNotI11, new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI11, nand21.getPin("B"), new Point(35, 25));
-               new GUIWire(submodelModifiable, cpNotI11, cpNotI12, new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI12, nand22.getPin("B"), new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI12, cpNotI13, new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI13, nand24.getPin("A"), new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI13, nand25.getPin("A"), new Point(35, 175));
-               new GUIWire(submodelModifiable, notI0.getPin("Y"), cpNotI0, new Point[0]);
-               new GUIWire(submodelModifiable, cpNotI0, nand31.getPin("B"), new Point(37.5, 35), new Point(65, 35), new Point(65, 25));
-               new GUIWire(submodelModifiable, cpNotI0, nand25.getPin("B"), new Point(37.5, 185));
-               new GUIWire(submodelModifiable, nand21.getPin("Y"), nand31.getPin("A"));
-               new GUIWire(submodelModifiable, nand22.getPin("Y"), cpNand22, new Point[0]);
-               new GUIWire(submodelModifiable, cpNand22, nand32.getPin("A"), new Point(65, 55));
-               new GUIWire(submodelModifiable, cpNand22, nand32.getPin("B"), new Point(65, 65));
-               new GUIWire(submodelModifiable, nand23.getPin("Y"), cpNand23, new Point[0]);
-               new GUIWire(submodelModifiable, cpNand23, nand33.getPin("A"), new Point(65, 95));
-               new GUIWire(submodelModifiable, cpNand23, nand33.getPin("B"), new Point(65, 105));
-               new GUIWire(submodelModifiable, nand24.getPin("Y"), cpNand24, new Point[0]);
-               new GUIWire(submodelModifiable, cpNand24, nand34.getPin("A"), new Point(65, 135));
-               new GUIWire(submodelModifiable, cpNand24, nand34.getPin("B"), new Point(65, 145));
-               new GUIWire(submodelModifiable, nand25.getPin("Y"), nand35.getPin("A"));
-               new GUIWire(submodelModifiable, nand31.getPin("Y"), cpNand31, new Point[0]);
-               new GUIWire(submodelModifiable, cpNand31, nand41.getPin("A"), new Point(95, 15));
-               new GUIWire(submodelModifiable, cpNand31, nand41.getPin("B"), new Point(95, 25));
-               new GUIWire(submodelModifiable, nand32.getPin("Y"), RA, new Point[0]);
-               new GUIWire(submodelModifiable, nand33.getPin("Y"), SB, new Point[0]);
-               new GUIWire(submodelModifiable, nand34.getPin("Y"), SA, new Point[0]);
-               new GUIWire(submodelModifiable, nand35.getPin("Y"), cpNand35, new Point[0]);
-               new GUIWire(submodelModifiable, cpNand35, nand42.getPin("A"), new Point(95, 175));
-               new GUIWire(submodelModifiable, cpNand35, nand42.getPin("B"), new Point(95, 185));
-               new GUIWire(submodelModifiable, nand41.getPin("Y"), SQ, new Point[0]);
-               new GUIWire(submodelModifiable, nand42.getPin("Y"), RD, new Point[0]);
-       }
-
-       static
-       {
-               IndirectGUIComponentCreator.setComponentSupplier(GUIAm2901SourceDecode.class.getCanonicalName(),
-                               (m, p, n) -> new GUIAm2901SourceDecode(m, n));
-       }
-}
\ No newline at end of file