Ejemplo n.º 1
0
Archivo: RAM.cs Proyecto: mrgrey/Snow
 /// <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;
 }
Ejemplo n.º 2
0
Archivo: RAM.cs Proyecto: mrgrey/Snow
        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;
        }