--- trunk/RomCheater.EmuMMAPPlugin/EmuMEMMapDockControl.cs 2013/06/09 00:34:29 653 +++ trunk/RomCheater.EmuMMAPPlugin/EmuMEMMapDockControl.cs 2013/06/17 08:33:06 683 @@ -7,14 +7,18 @@ using System.Text; using System.Windows.Forms; using WeifenLuo.WinFormsUI.Docking; +using RomCheater.PluginFramework.Core; namespace RomCheater.EmuMMAPPlugin { + #region EmuMEMMapDockControl public partial class EmuMEMMapDockControl : DockContent { + private UserControlPlugin plugin; private List DeviceMemoryMaps = new List(); - public EmuMEMMapDockControl() + public EmuMEMMapDockControl(UserControlPlugin plugin) { + this.plugin = plugin; InitializeComponent(); CreateMaps(); } @@ -39,7 +43,6 @@ private void CreateMaps() { var map = new DeviceMemoryMap(); - #region NES map = CreateNESMemMap(); DeviceMemoryMaps.Add(map); @@ -68,15 +71,14 @@ map = CreateWIIMemMap(); DeviceMemoryMaps.Add(map); #endregion - map = null; + map = null; // free memory } - #region NES private DeviceMemoryMap CreateNESMemMap() { /* http://en.wikibooks.org/wiki/NES_Programming */ const string name = "NES"; - DeviceMemoryMap map = new DeviceMemoryMap(); + DeviceMemoryMap map = new DeviceMemoryMap(); List maprange = new List(); #region memory maps //maprange.Add(new MemMap(string.Format("{0}_test", name), 0, 0)); @@ -90,7 +92,7 @@ maprange.Add(new MemMap("ZeroPage/Stack/Ram Mirror2", 0x1000, 0x17FF)); // mirror maprange.Add(new MemMap("ZeroPage/Stack/Ram Mirror3", 0x1800, 0x1FFF)); - + maprange.Add(new MemMap("IO Reg1", 0x2000, 0x2007)); maprange.Add(new MemMap("IO reg1 mirror - repeated", 0x2000, 0x3FFF)); maprange.Add(new MemMap("IO Reg2", 0x4000, 0x401F)); @@ -136,7 +138,7 @@ maprange.Add(new MemMap("User Memory", 0x00010000, 0x001FFFFF)); maprange.Add(new MemMap("Parallel Port", 0x1f000000, 0x1f00ffff)); maprange.Add(new MemMap("Scratch Pad", 0x1f800000, 0x1f8003ff)); - maprange.Add(new MemMap("HW Registers", 0x1f801000, 0x1f802fff)); + maprange.Add(new MemMap("HW Registers", 0x1f801000, 0x1f802fff)); maprange.Add(new MemMap("BIOS", 0x1FC00000, 0x1FC7FFFF)); maprange.Add(new MemMap("Kernel & User Memory (cached)", 0x80000000, 0x801fffff)); @@ -231,8 +233,10 @@ } #endregion } + #endregion #region Memory Map Helper Classes + #region IMemMap internal interface IMemMap { string MapName { get; } @@ -241,30 +245,29 @@ string MapSize { get; } string ToString(); } + #endregion + #region IDeviceMemoryMap internal interface IDeviceMemoryMap { string DeviceName { get; } IDictionary MemoryMap { get; } string ToString(); } - + #endregion + #region MemMap internal class MemMap : IMemMap { public MemMap() : this(string.Empty, 0, 0) { } - public MemMap(string name) - { - this.MapName = name; - } - public MemMap(string name, ulong start, ulong end) : this(name, string.Format("0x{0}", start.ToString("X")), string.Format("0x{0}", end.ToString("X")), end-start) { } + public MemMap(string name) { this.MapName = name; } + public MemMap(string name, ulong start, ulong end) : this(name, string.Format("0x{0}", start.ToString("X")), string.Format("0x{0}", end.ToString("X")), end - start) { } public MemMap(string name, string start, string end, ulong size) : this(name) { this.MapStart = start; this.MapEnd = end; - ulong _size = size + 1; double t = 1024.0 * 1024.0; - double __size = (double)_size/t; + double __size = (double)_size / t; this.MapSize = string.Format("0x{0}={1:0.000000}MB", _size.ToString("X"), __size); } #region IMappedMemRange Members @@ -272,13 +275,11 @@ public string MapStart { get; private set; } public string MapEnd { get; private set; } public string MapSize { get; private set; } - public override string ToString() - { - return string.Format("[{0}]==>[{1}-{2}] [{3}]", MapName, MapStart, MapEnd, MapSize); - } + public override string ToString() { return string.Format("[{0}]==>[{1}-{2}] [{3}]", MapName, MapStart, MapEnd, MapSize); } #endregion } - + #endregion + #region DeviceMemoryMap internal class DeviceMemoryMap : IDeviceMemoryMap { public DeviceMemoryMap() { this.DeviceName = string.Empty; this.MemoryMap = this.MemoryMap = new Dictionary(); } @@ -286,24 +287,14 @@ { this.DeviceName = device; this.MemoryMap = new Dictionary(); - - foreach (var map in memorymap) - { - this.MemoryMap.Add(map.MapName, map); - } - + foreach (var map in memorymap) { this.MemoryMap.Add(map.MapName, map); } } - #region IDeviceMemoryMap Members public string DeviceName { get; private set; } public IDictionary MemoryMap { get; private set; } - public override string ToString() - { - return string.Format("[{0}]==>{1} mapped memory range(s)", DeviceName, MemoryMap.Count); - } + public override string ToString() { return string.Format("[{0}]==>{1} mapped memory range(s)", DeviceName, MemoryMap.Count); } #endregion } - + #endregion #endregion } -