diff --git a/src/main/java/de/neemann/digital/core/memory/CounterPreset.java b/src/main/java/de/neemann/digital/core/memory/CounterPreset.java
index b7293bc95..303a31b92 100644
--- a/src/main/java/de/neemann/digital/core/memory/CounterPreset.java
+++ b/src/main/java/de/neemann/digital/core/memory/CounterPreset.java
@@ -99,14 +99,17 @@ public class CounterPreset extends Node implements Element {
counter = in.getValue();
}
- if (dir)
- ovfOut = (counter == 0) && enable;
- else
- ovfOut = (counter == maxValue) && enable;
-
+ ovfOut = getOvfValue(counter, dir, enable);
lastClock = clock;
}
+ private boolean getOvfValue(long counter, boolean dir, boolean enable) {
+ if (dir)
+ return (counter == 0) && enable;
+ else
+ return (counter == maxValue) && enable;
+ }
+
@Override
public void writeOutputs() throws NodeException {
ovf.setBool(ovfOut);
@@ -135,7 +138,7 @@ public class CounterPreset extends Node implements Element {
if (probe)
model.addSignal(new Signal(label, out, (v, z) -> {
counter = v;
- boolean o = (counter == maxValue) && enable.getBool();
+ boolean o = getOvfValue(counter, dir.getBool(), enable.getBool());
out.setValue(counter);
ovf.setBool(o);
}));
diff --git a/src/main/resources/lang/lang_de.xml b/src/main/resources/lang/lang_de.xml
index 98a294b18..d2c9fc8fb 100644
--- a/src/main/resources/lang/lang_de.xml
+++ b/src/main/resources/lang/lang_de.xml
@@ -528,7 +528,7 @@
Der Zähler zählt nur, wenn dieser Eingang auf 1 gesetzt ist.
Zähler, beschreibbar
- Zähler, dessen Wert gesetzt werden kann.
+ Zähler, dessen Wert gesetzt werden kann. Zudem kann ein Maximalwert und eine Zählrichtung vorgegeben werden.
Zähler
Gibt den gezählten Wert aus.
Overflow Ausgang. Wird auf 1 gesetzt, der 'en' Eingang auf 1 gesetzt ist
diff --git a/src/main/resources/lang/lang_en.xml b/src/main/resources/lang/lang_en.xml
index 834e19ffc..071953200 100644
--- a/src/main/resources/lang/lang_en.xml
+++ b/src/main/resources/lang/lang_en.xml
@@ -531,7 +531,7 @@
If set to 1 the counter is enabled!
Counter with preset
- Counter with preset.
+ A counter whose value can be set. In addition, a maximum value and a counting direction can be specified.
Counter
Returns the counted value.
Overflow output. It is set to 1 if the 'en' input is set to 1 and if the