public void GetMemoryData(uint address, out UInt32 data) { IMemoryData md; if (SpecialMemory.TryGetValue(address, out md)) { data = (UInt32)(md.Read() << 24); return; } var mem = Memory; if (address >= 0x10000000) { address -= 0x10000000; mem = ExternalRam; } data = BitConverter.ToUInt32(mem, (int)address); }
public void GetMemoryData(uint address, out byte data) { IMemoryData md; if (SpecialMemory.TryGetValue(address, out md)) { data = (byte)md.Read(); return; } var mem = Memory; if (address >= 0x10000000) { address -= 0x10000000; mem = ExternalRam; } data = mem[(int)address]; }
public void SetMemoryData(uint address, byte data) { IMemoryData md; if (SpecialMemory.TryGetValue(address, out md)) { md.Write(((uint)data)); return; } var mem = Memory; if (address >= 0x10000000) { address -= 0x10000000; mem = ExternalRam; } mem[(int)address] = data; }
public void SetMemoryData(uint address, UInt16 data) { IMemoryData md; if (SpecialMemory.TryGetValue(address, out md)) { md.Write(((uint)(data)) >> 8); return; } var mem = Memory; if (address >= 0x10000000) { address -= 0x10000000; mem = ExternalRam; } var dt = BitConverter.GetBytes(data); Array.Copy(dt, 0, mem, (int)address, 2); }