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));
}
}