X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=net.mograsim.logic.ui.am2900%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodel%2Fcomponents%2Fmi%2Fnandbased%2Fam2901%2FGUIAm2901DestDecode.java;fp=net.mograsim.logic.ui.am2900%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodel%2Fcomponents%2Fmi%2Fnandbased%2Fam2901%2FGUIAm2901DestDecode.java;h=59df09bc32e1ad6bba4fb9bea37d082de757b6a6;hb=f14ea37d69488dd51518a36413af7176916b8bd7;hp=0000000000000000000000000000000000000000;hpb=a84700145147c263ad6692c99117a7cf37832378;p=Mograsim.git diff --git a/net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901DestDecode.java b/net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901DestDecode.java new file mode 100644 index 00000000..59df09bc --- /dev/null +++ b/net.mograsim.logic.ui.am2900/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901DestDecode.java @@ -0,0 +1,147 @@ +package net.mograsim.logic.ui.model.components.mi.nandbased.am2901; + +import net.haspamelodica.swt.helper.swtobjectwrappers.Point; +import net.mograsim.logic.ui.model.ViewModelModifiable; +import net.mograsim.logic.ui.model.components.GUINandGate; +import net.mograsim.logic.ui.model.components.SimpleRectangularSubmodelComponent; +import net.mograsim.logic.ui.model.wires.GUIWire; +import net.mograsim.logic.ui.model.wires.Pin; +import net.mograsim.logic.ui.model.wires.WireCrossPoint; + +public class GUIAm2901DestDecode extends SimpleRectangularSubmodelComponent +{ + public GUIAm2901DestDecode(ViewModelModifiable model) + { + super(model, 1, "GUIAm2901DestDecode"); + 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]); + } +} \ No newline at end of file