private void RefreshMemoryReference()
{
// set byte[] reference.
if (IsNotPresent) {
MemoryReference = null;
}
else {
if (IsDevice) {
// will select rom if index == 0, device memory if index is between 1-15.
m_Bus.GetDeviceMemoryReference(this, DeviceIndex);
}
else {
m_Bus.GetRAMReference(this);
}
}
// get size
uint s = (m_Register & c_SegRegSize) >> c_SegRegSizeShift;
m_Size = s == 0 ? ushort.MaxValue + 1 : s;
// get base
if (IsDevice) {
uint b = m_Register & c_SegRegDeviceBase;
Base = b << 8;
}
else {
uint b = m_Register & c_SegRegMemBase;
Base = b << 8;
}
}