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