From 31cd0d1b4b6cc5009f681dea692c17ed9303464a Mon Sep 17 00:00:00 2001 From: hneemann Date: Sat, 20 Aug 2016 20:24:29 +0200 Subject: [PATCH] refactored the add-sub dependency --- .../neemann/digital/core/arithmetic/Add.java | 22 ++++++++++++++----- .../neemann/digital/core/arithmetic/Sub.java | 5 ++--- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/main/java/de/neemann/digital/core/arithmetic/Add.java b/src/main/java/de/neemann/digital/core/arithmetic/Add.java index 061191e79..f75ce9c3d 100644 --- a/src/main/java/de/neemann/digital/core/arithmetic/Add.java +++ b/src/main/java/de/neemann/digital/core/arithmetic/Add.java @@ -29,10 +29,10 @@ public class Add extends Node implements Element { private final ObservableValue sum; private final ObservableValue cOut; private final long mask; - protected ObservableValue a; - protected ObservableValue b; - protected ObservableValue cIn; - protected long value; + private ObservableValue a; + private ObservableValue b; + private ObservableValue cIn; + private long value; /** * Create a new instance @@ -49,7 +49,19 @@ public class Add extends Node implements Element { @Override public void readInputs() throws NodeException { - value = a.getValue() + b.getValue() + cIn.getValue(); + value = calc(a.getValue(), b.getValue(), cIn.getValue()); + } + + /** + * Performs the add operation + * + * @param a a + * @param b b + * @param c carry + * @return the result + */ + protected long calc(long a, long b, long c) { + return a + b + c; } @Override diff --git a/src/main/java/de/neemann/digital/core/arithmetic/Sub.java b/src/main/java/de/neemann/digital/core/arithmetic/Sub.java index 9cb09520f..b78c25e7a 100644 --- a/src/main/java/de/neemann/digital/core/arithmetic/Sub.java +++ b/src/main/java/de/neemann/digital/core/arithmetic/Sub.java @@ -1,6 +1,5 @@ package de.neemann.digital.core.arithmetic; -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 Sub extends Add { } @Override - public void readInputs() throws NodeException { - value = a.getValue() - b.getValue() - cIn.getValue(); + protected long calc(long a, long b, long c) { + return a - b - c; } }