+ notifyMemoryChanged(address);
+ }
+
+ @Override
+ public void setActiveInstruction(long address)
+ {
+ real.setActiveInstruction(address);
+ }
+
+ @Override
+ public void activeMicroInstructionChanged(long address)
+ {
+ notifyActiveInstructionChanged(address);
+ }
+
+ public void registerMemoryReassignedListener(MIMemoryReassignedListener listener)
+ {
+ reassignmentListeners.add(listener);
+ }
+
+ public void deregisterMemoryReassignedListener(MIMemoryReassignedListener listener)
+ {
+ reassignmentListeners.remove(listener);
+ }
+
+ private void notifyMemoryReassigned(MicroInstructionMemory newAssignee)
+ {
+ reassignmentListeners.forEach(l -> l.reassigned(newAssignee));
+ }
+
+ public static interface MIMemoryReassignedListener
+ {
+ public void reassigned(MicroInstructionMemory newAssignee);