//called when content of any register is changed to inform the UI private void InvokeMemoryChanged(int memoryAddress, int memoryContent) { var memoryContentChangedEventArgs = new MemoryContentChangedEventArgs(); memoryContentChangedEventArgs.MemoryAddress.Add(memoryAddress); memoryContentChangedEventArgs.MemoryContent = memoryContent; CheckForMirroredMemory(memoryAddress, ref memoryContentChangedEventArgs); _syncContext.Post(new SendOrPostCallback((o) => OnMemoryContentChanged(memoryContentChangedEventArgs)), null); }
//called to see if the updated register is mirrored in bank 0/1 private void CheckForMirroredMemory(int memoryAddress, ref MemoryContentChangedEventArgs memoryContentChangedEventArgs) { if (memoryAddress == 0) { memoryContentChangedEventArgs.MemoryAddress.Add(128); } else if (memoryAddress == 2) { memoryContentChangedEventArgs.MemoryAddress.Add(130); } else if (memoryAddress == 3) { memoryContentChangedEventArgs.MemoryAddress.Add(131); } else if (memoryAddress == 4) { memoryContentChangedEventArgs.MemoryAddress.Add(132); } else if (memoryAddress == 10) { memoryContentChangedEventArgs.MemoryAddress.Add(138); } else if (memoryAddress == 11) { memoryContentChangedEventArgs.MemoryAddress.Add(139); } if (memoryAddress == 128) { memoryContentChangedEventArgs.MemoryAddress.Add(0); } else if (memoryAddress == 130) { memoryContentChangedEventArgs.MemoryAddress.Add(2); } else if (memoryAddress == 131) { memoryContentChangedEventArgs.MemoryAddress.Add(3); } else if (memoryAddress == 132) { memoryContentChangedEventArgs.MemoryAddress.Add(4); } else if (memoryAddress == 138) { memoryContentChangedEventArgs.MemoryAddress.Add(10); } else if (memoryAddress == 139) { memoryContentChangedEventArgs.MemoryAddress.Add(11); } }
public void OnMemoryContentChanged(MemoryContentChangedEventArgs e) { MemoryContentChanged?.Invoke(this, e); }