/// <summary> /// ¬озвращает дамп пригодный дл¤ сериализации /// </summary> /// <returns></returns> public MemoryDump Dump(ushort startAddr, ushort endAddr) { MemoryDump result = new MemoryDump(); result.CellsOffset = "0"; result.Cells = new DumpMemoryCell[_cells.Count]; for ( int e = startAddr; e <= ((endAddr < _cells.Count - 1) ? endAddr : _cells.Count - 1); e++) result.Cells[e] = new DumpMemoryCell( String.Format("{0:X3}", e), String.Format("{0:X4}", _cells[e].Data)); return result; }
public void LoadDump(MemoryDump dump) { ushort cellsOffset = (ushort)Misc.Helper.ParseHexNumber(dump.CellsOffset); Dictionary<ushort, ushort> dumpSource = new Dictionary<ushort, ushort>(); ushort address; for (int e = 0; e < dump.Cells.Length; e++) { address = (ushort)Misc.Helper.ParseHexNumber(dump.Cells[e].Address); if (address >= this._cells.Count) throw new ArgumentException("Cannot load dump"); dumpSource.Add(address, (ushort)Misc.Helper.ParseHexNumber(dump.Cells[e].Value)); } foreach (KeyValuePair<ushort, ushort> currentCell in dumpSource) this._cells[currentCell.Key].Data = currentCell.Value; }