{
super(model, 1, "GUIAm2901ALUFuncDecode");
setSubmodelScale(.25);
- setInputCount(3);
- setOutputCount(3);
+ setInputPins("I5", "I4", "I3");
+ 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);
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);
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