X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodel%2Fcomponents%2Fmi%2Fnandbased%2Fam2901%2FGUIAm2901ALUFuncDecode.java;h=e2d30f07856d8e10c5762774234b081447313eea;hb=a84700145147c263ad6692c99117a7cf37832378;hp=0f5b1393cee88d09395272f06eb30ed26fc06f22;hpb=ae74a6a022756a4cc7ee5b453ad7a68e13832788;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUFuncDecode.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUFuncDecode.java index 0f5b1393..e2d30f07 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUFuncDecode.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/mi/nandbased/am2901/GUIAm2901ALUFuncDecode.java @@ -17,19 +17,22 @@ public class GUIAm2901ALUFuncDecode extends SimpleRectangularSubmodelComponent super(model, 1, "GUIAm2901ALUFuncDecode"); setSubmodelScale(.25); setInputPins("I5", "I4", "I3"); - setOutputPins("CinE", "L", "SBE"); + setOutputPins("CinE", "L", "SN", "SBE", "FN", "RN"); initSubmodelComponents(); } @SuppressWarnings("unused") // for GUIWires being created private void initSubmodelComponents() { - Pin I5 = getInputSubmodelPins().get(0); - Pin I4 = getInputSubmodelPins().get(1); - Pin I3 = getInputSubmodelPins().get(2); - Pin CinE = getOutputSubmodelPins().get(0); - Pin L = getOutputSubmodelPins().get(1); - Pin SBE = getOutputSubmodelPins().get(2); + 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); @@ -41,10 +44,13 @@ public class GUIAm2901ALUFuncDecode extends SimpleRectangularSubmodelComponent 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 cpI3 = 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); @@ -54,42 +60,50 @@ public class GUIAm2901ALUFuncDecode extends SimpleRectangularSubmodelComponent nandI5NotI4.moveTo(55, 45); nandI3I4.moveTo(55, 70); nandL.moveTo(100, 50); - andSBE.moveTo(100, 95); + 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); - cpI3.moveCenterTo(50, 75); + 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.getInputPins().get(0), new Point(5, 15)); + new GUIWire(submodelModifiable, cpI51, notI5.getPin("A"), new Point(5, 15)); new GUIWire(submodelModifiable, cpI51, cpI52, new Point[0]); - new GUIWire(submodelModifiable, cpI52, notI5.getInputPins().get(1), new Point[0]); - new GUIWire(submodelModifiable, cpI52, nandI5NotI4.getInputPins().get(0), new Point(5, 45), new Point(45, 45), new Point(45, 50)); + 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.getInputPins().get(0), new Point(10, 40), new Point(45, 40), - new Point(45, 15)); - new GUIWire(submodelModifiable, cpI42, notI4.getInputPins().get(0), 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.getInputPins().get(1), new Point[0]); - new GUIWire(submodelModifiable, cpI43, nandI3I4.getInputPins().get(1), new Point(10, 85)); - new GUIWire(submodelModifiable, I3, cpI3, new Point(50, 100)); - new GUIWire(submodelModifiable, cpI3, nandI4I3NotI5.getInputPins().get(1), new Point(50, 25)); - new GUIWire(submodelModifiable, cpI3, nandI3I4.getInputPins().get(0), new Point[0]); - new GUIWire(submodelModifiable, notI5.getOutputPin(), cpNotI51, 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.getInputPins().get(2), new Point[0]); - new GUIWire(submodelModifiable, cpNotI52, andSBE.getInputPins().get(1), new Point(40, 110)); - new GUIWire(submodelModifiable, notI4.getOutputPin(), nandI5NotI4.getInputPins().get(1), new Point[0]); - new GUIWire(submodelModifiable, nandI4I3NotI5.getOutputPins().get(0), nandL.getInputPins().get(0)); - new GUIWire(submodelModifiable, nandI5NotI4.getOutputPin(), nandL.getInputPins().get(1)); - new GUIWire(submodelModifiable, nandI3I4.getOutputPin(), andSBE.getInputPins().get(0)); - new GUIWire(submodelModifiable, nandL.getOutputPin(), L, new Point[0]); - new GUIWire(submodelModifiable, andSBE.getOutputPins().get(0), SBE, 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]); } } \ No newline at end of file