diff --git a/src/main/java/de/neemann/digital/core/basic/XNOr.java b/src/main/java/de/neemann/digital/core/basic/XNOr.java index 26cf94657..e28837824 100644 --- a/src/main/java/de/neemann/digital/core/basic/XNOr.java +++ b/src/main/java/de/neemann/digital/core/basic/XNOr.java @@ -1,6 +1,5 @@ package de.neemann.digital.core.basic; -import de.neemann.digital.core.NodeException; import de.neemann.digital.core.element.ElementAttributes; import de.neemann.digital.core.element.ElementTypeDescription; import de.neemann.digital.core.element.Keys; @@ -31,7 +30,7 @@ public class XNOr extends XOr { } @Override - public void readInputs() throws NodeException { - value = ~(a.getValue() ^ b.getValue()); + protected long calc(long a, long b) { + return ~super.calc(a, b); } } diff --git a/src/main/java/de/neemann/digital/core/basic/XOr.java b/src/main/java/de/neemann/digital/core/basic/XOr.java index 69caedebb..49184e6b7 100644 --- a/src/main/java/de/neemann/digital/core/basic/XOr.java +++ b/src/main/java/de/neemann/digital/core/basic/XOr.java @@ -23,9 +23,9 @@ public class XOr extends Node implements Element { private final int bits; private final ObservableValue out; - protected ObservableValue a; - protected ObservableValue b; - protected long value; + private ObservableValue a; + private ObservableValue b; + private long value; /** * Creates a new instance @@ -39,7 +39,18 @@ public class XOr extends Node implements Element { @Override public void readInputs() throws NodeException { - value = a.getValue() ^ b.getValue(); + value = calc(a.getValue(), b.getValue()); + } + + /** + * Performs the operation + * + * @param a a + * @param b b + * @return result + */ + protected long calc(long a, long b) { + return a ^ b; } @Override