/// <summary> /// Adds a series of data byte to the memory chunks list as decoded from an IHex32 data record. /// </summary> /// <remarks> /// The current implementation assumes that each IHex32 data record loads unique data block (no overlap). /// </remarks> /// <param name="address">The address from the decoded IHex32 record.</param> /// <param name="data">The binary bytes contained in the IHex32 record.</param> public void AddData(Address address, byte[] data) { if (data == null || data.Length < 1) { return; } if (currAddr == null) { currAddr = address; currMemChunk = new MemoryChunk(currAddr); memChunks.Add(currAddr, currMemChunk); } else { currAddr = address; if (nextAddr != currAddr) { currMemChunk = GetPredChunk(currAddr); if (currMemChunk == null) { currMemChunk = new MemoryChunk(currAddr); memChunks.Add(currAddr, currMemChunk); } } } currMemChunk !.Datum.AddRange(data); nextAddr = currAddr + data.Length; }