From a90052b2d3403aa82c2d5456b8e7a2f4cb13db7c Mon Sep 17 00:00:00 2001 From: hneemann Date: Mon, 20 Mar 2017 17:39:10 +0100 Subject: [PATCH] correct code address is returned to assembler if a von Neumann cpu is simulated. --- src/main/java/de/neemann/digital/core/memory/ROM.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/neemann/digital/core/memory/ROM.java b/src/main/java/de/neemann/digital/core/memory/ROM.java index 2be292269..6d187ed8e 100644 --- a/src/main/java/de/neemann/digital/core/memory/ROM.java +++ b/src/main/java/de/neemann/digital/core/memory/ROM.java @@ -81,9 +81,6 @@ public class ROM extends Node implements Element { public void readInputs() throws NodeException { addr = (int) addrIn.getValue(); sel = selIn.getBool(); - if (sel) { - romAddr = addr; - } } @Override @@ -107,6 +104,11 @@ public class ROM extends Node implements Element { throw new NodeException(e.getMessage(), this, null); } } + if (isProgramMemory) + model.addObserver(event -> { + if (event == ModelEvent.STEP && sel) + romAddr = addr; + }); } /**