From 9a76150d36f8c896c13682aa3dd588de401a2917 Mon Sep 17 00:00:00 2001 From: Daniel Kirschten Date: Wed, 17 Jul 2019 14:08:32 +0200 Subject: [PATCH] Removed Java classes for components since they are now fully serialized --- .../META-INF/MANIFEST.MF | 4 +- .../model/examples/ComponenetSerializer.java | 66 ---- .../logic/model/examples/JsonExample.java | 173 --------- .../components/mi/nandbased/GUI_rsLatch.java | 71 ---- .../model/components/mi/nandbased/GUIand.java | 56 --- .../components/mi/nandbased/GUIand41.java | 78 ---- .../components/mi/nandbased/GUIandor414.java | 76 ---- .../components/mi/nandbased/GUIdemux2.java | 99 ----- .../model/components/mi/nandbased/GUIdff.java | 82 ---- .../components/mi/nandbased/GUIdlatch.java | 71 ---- .../components/mi/nandbased/GUIdlatch4.java | 92 ----- .../components/mi/nandbased/GUIfulladder.java | 59 --- .../components/mi/nandbased/GUIhalfadder.java | 72 ---- .../components/mi/nandbased/GUImux1.java | 68 ---- .../components/mi/nandbased/GUImux1_4.java | 87 ----- .../components/mi/nandbased/GUInand3.java | 61 --- .../components/mi/nandbased/GUInot4.java | 81 ---- .../model/components/mi/nandbased/GUIor4.java | 101 ----- .../components/mi/nandbased/GUIor_4.java | 129 ------- .../components/mi/nandbased/GUIram2.java | 300 --------------- .../components/mi/nandbased/GUIram4.java | 326 ---------------- .../components/mi/nandbased/GUIsel2_4.java | 125 ------ .../components/mi/nandbased/GUIsel3_4.java | 123 ------ .../model/components/mi/nandbased/GUIxor.java | 70 ---- .../mi/nandbased/am2901/GUIAm2901.java | 361 ------------------ .../am2901/GUIAm2901ALUFuncDecode.java | 121 ------ .../am2901/GUIAm2901ALUInclDecode.java | 181 --------- ...ALUInclSourceDecodeInclFunctionDecode.java | 152 -------- .../nandbased/am2901/GUIAm2901ALUOneBit.java | 101 ----- .../nandbased/am2901/GUIAm2901DestDecode.java | 157 -------- .../mi/nandbased/am2901/GUIAm2901QReg.java | 100 ----- .../am2901/GUIAm2901SourceDecode.java | 163 -------- 32 files changed, 1 insertion(+), 3805 deletions(-) delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ComponenetSerializer.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/JsonExample.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUI_rsLatch.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIand.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIand41.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIandor414.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdemux2.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdff.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdlatch.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdlatch4.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIfulladder.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIhalfadder.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUImux1.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUImux1_4.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUInand3.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUInot4.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIor4.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIor_4.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIram2.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIram4.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIsel2_4.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIsel3_4.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIxor.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUFuncDecode.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUInclDecode.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUOneBit.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901DestDecode.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901QReg.java delete mode 100644 net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901SourceDecode.java diff --git a/net.mograsim.logic.model.am2900/META-INF/MANIFEST.MF b/net.mograsim.logic.model.am2900/META-INF/MANIFEST.MF index 4854d0b9..048d1503 100644 --- a/net.mograsim.logic.model.am2900/META-INF/MANIFEST.MF +++ b/net.mograsim.logic.model.am2900/META-INF/MANIFEST.MF @@ -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 index 8699c3b8..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ComponenetSerializer.java +++ /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 index 5f95c3e4..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/JsonExample.java +++ /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 index ba61eda4..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUI_rsLatch.java +++ /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 index 1e350e3e..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIand.java +++ /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 index 1074ab28..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIand41.java +++ /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 index 963649a3..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIandor414.java +++ /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 index 2b61cd4f..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdemux2.java +++ /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 index 22d013fc..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdff.java +++ /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 index e24c4789..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdlatch.java +++ /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 index acca4ab2..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdlatch4.java +++ /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 index 258da912..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIfulladder.java +++ /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 index 3b100fde..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIhalfadder.java +++ /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 index 53682e9d..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUImux1.java +++ /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 index 8bfcce67..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUImux1_4.java +++ /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 index 99e204df..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUInand3.java +++ /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 index d524332d..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUInot4.java +++ /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 index ab3ed897..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIor4.java +++ /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 index 3082f72f..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIor_4.java +++ /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 index 2f45cb7d..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIram2.java +++ /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 index da1314b2..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIram4.java +++ /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 index 6f4a6cdd..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIsel2_4.java +++ /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 index ec5891bb..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIsel3_4.java +++ /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 index 77b659d8..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIxor.java +++ /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 index 418f5f93..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901.java +++ /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 index 8a62634b..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUFuncDecode.java +++ /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 index 5c1afe11..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUInclDecode.java +++ /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 index a57e315b..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.java +++ /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 index 453a6694..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901ALUOneBit.java +++ /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 index fbdaeabe..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901DestDecode.java +++ /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 index f4ce8690..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901QReg.java +++ /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 index dbe3a761..00000000 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/am2901/GUIAm2901SourceDecode.java +++ /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 -- 2.17.1