Fixed a bug in Am2900; created dlatch8/80; relayouted some components
[Mograsim.git] / net.mograsim.plugin.core / src / net / mograsim / plugin / tables / mi / InstructionTableContentProvider.java
index 00a6f19..b8021b7 100644 (file)
@@ -4,25 +4,35 @@ import org.eclipse.jface.viewers.ILazyContentProvider;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.Viewer;
 
-import net.mograsim.machine.mi.MicroprogramMemory;
+import net.mograsim.machine.mi.MicroInstructionMemory;
 
 public class InstructionTableContentProvider implements ILazyContentProvider
 {
        private TableViewer viewer;
-       private MicroprogramMemory memory;
+       private MicroInstructionMemory memory;
+       private long minAddr = 0;
 
        @Override
        public void updateElement(int index)
        {
-               viewer.replace(memory.getCell(index), index);
+               long address = memory.getDefinition().getMinimalAddress() + index;
+               viewer.replace(new InstructionTableRow(address, memory.getCell(address)), index);
        }
 
        @Override
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
        {
                this.viewer = (TableViewer) viewer;
-               this.memory = (MicroprogramMemory) newInput;
+               this.memory = (MicroInstructionMemory) newInput;
                if (this.memory != null)
+               {
                        this.viewer.setItemCount((int) memory.size());
+                       this.minAddr = memory.getDefinition().getMinimalAddress();
+               }
+       }
+
+       public void update(long address)
+       {
+               updateElement((int) (address - minAddr));
        }
 }