public void Map(ushort baseAddress, ushort sizeInBytes, IDevice device) { ArgumentCheck.NotNull(device, "device"); if (device.RequestSnooping) { if (snooper != null) throw new InternalErrorException("Only one snooper is allowed."); snooper = device; } for (int addr = baseAddress; addr < baseAddress + sizeInBytes; addr += pageSize) { int pageno = (addr & addrSpaceMask) >> pageShift; memoryMap[pageno] = device; } device.Map(this); Debug.WriteLine(String.Format("{0}: Mapped {1} to ${2:x4}:${3:x4}", this, device, baseAddress, baseAddress + sizeInBytes)); }
public void Map(ushort basea, ushort size, IDevice device) { if (device == null) { throw new ArgumentNullException("device"); } for (int addr = basea; addr < basea + size; addr += PageSize) { int pageno = (addr & AddrSpaceMask) >> PageShift; MemoryMap[pageno] = device; } device.Map(this); Debug.WriteLine(String.Format("{0}: Mapped {1} to ${2:x4}:${3:x4}", this, device, basea, basea + size)); }