X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model.am2900%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fam2900%2Fcomponents%2FGUIinc12.java;h=cbd1f9f036ed5d98c276dedb1ec7978a5c7c62c3;hb=04801b6a8f9589855e8f9d8586e033088aa9ed3b;hp=20925444619697d447322cc455d6ccb6e843a280;hpb=af730951db57d13d0b25671991f5bac36daabb85;p=Mograsim.git diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIinc12.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIinc12.java index 20925444..cbd1f9f0 100644 --- a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIinc12.java +++ b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIinc12.java @@ -1,6 +1,5 @@ package net.mograsim.logic.model.am2900.components; -import static net.mograsim.logic.core.types.Bit.ONE; import static net.mograsim.logic.core.types.Bit.U; import static net.mograsim.logic.core.types.Bit.X; import static net.mograsim.logic.core.types.Bit.Z; @@ -15,6 +14,7 @@ import net.mograsim.logic.core.wires.Wire.ReadWriteEnd; import net.mograsim.logic.model.model.ViewModelModifiable; import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent; import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator; import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position; public class GUIinc12 extends SimpleRectangularHardcodedGUIComponent @@ -50,23 +50,16 @@ public class GUIinc12 extends SimpleRectangularHardcodedGUIComponent for (int i = 11; i >= 0; i--) { Bit a = ABits[i]; - Bit z; - if (a.isBinary() && carry.isBinary()) - { - boolean aBool = a == ONE; - boolean carryBool = carry == ONE; - z = aBool ^ carryBool ? ONE : ZERO; - carry = aBool && carryBool ? ONE : ZERO; - } else - { - carry = carry.join(a); - z = carry; - } - YBits[i] = z; + YBits[i] = a.xor(carry); + carry = a.and(carry); } } readWriteEnds.get("Y").feedSignals(YBits); return null; } + static + { + IndirectGUIComponentCreator.setComponentSupplier(GUIinc12.class.getCanonicalName(), (m, p, n) -> new GUIinc12(m, n)); + } } \ No newline at end of file