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));
        }