/// <summary> /// Setups this hardware device driver /// </summary> /// <param name="hardwareResources"></param> /// <returns></returns> public override bool Setup(IHardwareResources hardwareResources) { this.hardwareResources = hardwareResources; base.name = "IDE_0x" + base.hardwareResources.GetIOPort(0, 0).Address.ToString("X"); DataPort = base.hardwareResources.GetIOPort(0, 0); ErrorPort = base.hardwareResources.GetIOPort(0, 1); FeaturePort = base.hardwareResources.GetIOPort(0, 1); SectorCountPort = base.hardwareResources.GetIOPort(0, 2); LBALowPort = base.hardwareResources.GetIOPort(0, 3); LBAMidPort = base.hardwareResources.GetIOPort(0, 4); LBAHighPort = base.hardwareResources.GetIOPort(0, 5); DeviceHeadPort = base.hardwareResources.GetIOPort(0, 6); CommandPort = base.hardwareResources.GetIOPort(0, 7); StatusPort = base.hardwareResources.GetIOPort(0, 7); for (int drive = 0; drive < DrivesPerConroller; drive++) { driveInfo[drive].Present = false; driveInfo[drive].MaxLBA = 0; } base.deviceStatus = DeviceStatus.Online; return(true); }
/// <summary> /// Setups this hardware device driver /// </summary> /// <returns></returns> public override bool Setup(IHardwareResources hardwareResources) { this.hardwareResources = hardwareResources; base.name = "GenericVGA"; byte portBar = (byte)(base.hardwareResources.IOPointRegionCount - 1); miscellaneousOutputRead = base.hardwareResources.GetIOPort(portBar, 0x1C); crtControllerIndex = base.hardwareResources.GetIOPort(portBar, 0x04); crtControllerData = base.hardwareResources.GetIOPort(portBar, 0x05); crtControllerIndexColor = base.hardwareResources.GetIOPort(portBar, 0x24); crtControllerDataColor = base.hardwareResources.GetIOPort(portBar, 0x25); dacPaletteMask = base.hardwareResources.GetIOPort(portBar, 0x16); dacIndexRead = base.hardwareResources.GetIOPort(portBar, 0x17); dacIndexWrite = base.hardwareResources.GetIOPort(portBar, 0x18); dacData = base.hardwareResources.GetIOPort(portBar, 0x19); inputStatus1 = base.hardwareResources.GetIOPort(portBar, 0x12); miscellaneousOutputWrite = base.hardwareResources.GetIOPort(portBar, 0x12); sequencerAddress = base.hardwareResources.GetIOPort(portBar, 0x14); sequencerData = base.hardwareResources.GetIOPort(portBar, 0x15); graphicsControllerAddress = base.hardwareResources.GetIOPort(portBar, 0x1E); graphicsControllerData = base.hardwareResources.GetIOPort(portBar, 0x1F); inputStatus1ReadB = base.hardwareResources.GetIOPort(portBar, 0x2A); attributeAddress = base.hardwareResources.GetIOPort(portBar, 0x10); attributeData = base.hardwareResources.GetIOPort(portBar, 0x11); memory = base.hardwareResources.GetMemory((byte)(base.hardwareResources.MemoryRegionCount - 1)); return(true); }
/// <summary> /// Setups this hardware device driver /// </summary> /// <returns></returns> public override bool Setup(IHardwareResources hardwareResources) { this.hardwareResources = hardwareResources; base.name = "COM_0x" + base.hardwareResources.GetIOPort(0, 0).Address.ToString("X"); rbrBase = base.hardwareResources.GetIOPort(0, 0); // Receive Buffer Register (read only) thrBase = base.hardwareResources.GetIOPort(0, 0); // Transmitter Holding Register (write only) ierBase = base.hardwareResources.GetIOPort(0, 1); // Interrupt Enable Register dllBase = base.hardwareResources.GetIOPort(0, 0); // Divisor Latch (LSB and MSB) dlmBase = base.hardwareResources.GetIOPort(0, 1); iirBase = base.hardwareResources.GetIOPort(0, 2); // Interrupt Identification Register (read only) fcrBase = base.hardwareResources.GetIOPort(0, 2); // FIFO Control Register (write only, 16550+ only) lcrBase = base.hardwareResources.GetIOPort(0, 3); // Line Control Register mcrBase = base.hardwareResources.GetIOPort(0, 4); // Modem Control Register lsrBase = base.hardwareResources.GetIOPort(0, 5); // Line Status Register msrBase = base.hardwareResources.GetIOPort(0, 6); // Modem Status Register scrBase = base.hardwareResources.GetIOPort(0, 7); // Scratch Register (16450+ and some 8250s, special use with some boards) fifoBuffer = new byte[fifoSize]; fifoStart = 0; fifoEnd = 0; base.deviceStatus = DeviceStatus.Online; return(true); }
public SerialDevice(ushort ioBase, byte irq) { base.name = "COM_0x" + ((uint)ioBase).ToString("X"); base.parent = null; // no parent base.deviceStatus = DeviceStatus.Initializing; this.ioBase = ioBase; this.fifoBuffer = new byte[FIFOSize]; this.fifoStart = 0; this.fifoEnd = 0; // Receive Buffer Register (read only) RBRBase = base.CreateIOPort(ioBase); // Transmitter Holding Register (write only) THRBase = base.CreateIOPort(ioBase); // Interrupt Enable Register IERBase = base.CreateIOPort(ioBase, 1); // Divisor Latch (LSB and MSB) DLLBase = base.CreateIOPort(ioBase); DLMBase = base.CreateIOPort(ioBase, 1); // Interrupt Identification Register (read only) IIRBase = base.CreateIOPort(ioBase, 2); // FIFO Control Register (write only, 16550+ only) FCRBase = base.CreateIOPort(ioBase, 2); // Line Control Register LCRBase = base.CreateIOPort(ioBase, 3); // Modem Control Register MCRBase = base.CreateIOPort(ioBase, 4); // Line Status Register LSRBase = base.CreateIOPort(ioBase, 5); // Modem Status Register MSRBase = base.CreateIOPort(ioBase, 6); // Scratch Register (16450+ and some 8250s, special use with some boards) SCRBase = base.CreateIOPort(ioBase, 7); serialIRQ = base.CreateIRQHandler(irq); this.Initialize(); }
public IDEDiskDriver(ushort ioBase) { base.name = "IDE_0x" + ioBase.ToString("X"); base.parent = null; // no parent base.deviceStatus = DeviceStatus.Initializing; this.ioBase = ioBase; DataPort = base.CreateIOPort(ioBase); ErrorPort = base.CreateIOPort(ioBase, 1); FeaturePort = base.CreateIOPort(ioBase, 1); SectorCountPort = base.CreateIOPort(ioBase, 2); LBALowPort = base.CreateIOPort(ioBase, 3); LBAMidPort = base.CreateIOPort(ioBase, 4); LBAHighPort = base.CreateIOPort(ioBase, 5); DeviceHeadPort = base.CreateIOPort(ioBase, 6); CommandPort = base.CreateIOPort(ioBase, 7); StatusPort = base.CreateIOPort(ioBase, 7); this.Initialize(); }
/// <summary> /// Setups this hardware device driver /// </summary> /// <returns></returns> public override bool Setup(IHardwareResources hardwareResources) { this.hardwareResources = hardwareResources; base.name = "DMA_0x" + base.hardwareResources.GetIOPort(0, 0).Address.ToString("X"); statusRegister = base.hardwareResources.GetIOPort(0, 0x08); commandRegister = base.hardwareResources.GetIOPort(0, 0x08); requestRegister = base.hardwareResources.GetIOPort(0, 0x09); channelMaskRegister = base.hardwareResources.GetIOPort(0, 0x0A); modeRegister = base.hardwareResources.GetIOPort(0, 0x0B); byteWordRegister = base.hardwareResources.GetIOPort(0, 0x0C); intermediateRegister = base.hardwareResources.GetIOPort(0, 0x0D); maskRegister = base.hardwareResources.GetIOPort(0, 0x0F); channel0Address = base.hardwareResources.GetIOPort(0, 0x00); channel0Count = base.hardwareResources.GetIOPort(0, 0x01); channel0Page = base.hardwareResources.GetIOPort(0, 0x87); channel1Address = base.hardwareResources.GetIOPort(0, 0x02); channel1Count = base.hardwareResources.GetIOPort(0, 0x03); channel1Page = base.hardwareResources.GetIOPort(0, 0x83); channel2Address = base.hardwareResources.GetIOPort(0, 0x04); channel2Count = base.hardwareResources.GetIOPort(0, 0x05); channel2Page = base.hardwareResources.GetIOPort(0, 0x81); channel3Address = base.hardwareResources.GetIOPort(0, 0x06); channel3Count = base.hardwareResources.GetIOPort(0, 0x07); channel3Page = base.hardwareResources.GetIOPort(0, 0x82); memory0 = base.hardwareResources.GetMemory(0); memory1 = base.hardwareResources.GetMemory(1); memory2 = base.hardwareResources.GetMemory(2); memory3 = base.hardwareResources.GetMemory(3); return(true); }
/// <summary> /// Setups this hardware device driver /// </summary> /// <returns></returns> public override bool Setup(IHardwareResources hardwareResources) { this.hardwareResources = hardwareResources; base.name = "DMA_0x" + base.hardwareResources.GetIOPort(0, 0).Address.ToString("X"); statusRegister = base.hardwareResources.GetIOPort(0, 0x08); commandRegister = base.hardwareResources.GetIOPort(0, 0x08); requestRegister = base.hardwareResources.GetIOPort(0, 0x09); channelMaskRegister = base.hardwareResources.GetIOPort(0, 0x0A); modeRegister = base.hardwareResources.GetIOPort(0, 0x0B); byteWordRegister = base.hardwareResources.GetIOPort(0, 0x0C); intermediateRegister = base.hardwareResources.GetIOPort(0, 0x0D); maskRegister = base.hardwareResources.GetIOPort(0, 0x0F); channel0Address = base.hardwareResources.GetIOPort(0, 0x00); channel0Count = base.hardwareResources.GetIOPort(0, 0x01); channel0Page = base.hardwareResources.GetIOPort(0, 0x87); channel1Address = base.hardwareResources.GetIOPort(0, 0x02); channel1Count = base.hardwareResources.GetIOPort(0, 0x03); channel1Page = base.hardwareResources.GetIOPort(0, 0x83); channel2Address = base.hardwareResources.GetIOPort(0, 0x04); channel2Count = base.hardwareResources.GetIOPort(0, 0x05); channel2Page = base.hardwareResources.GetIOPort(0, 0x81); channel3Address = base.hardwareResources.GetIOPort(0, 0x06); channel3Count = base.hardwareResources.GetIOPort(0, 0x07); channel3Page = base.hardwareResources.GetIOPort(0, 0x82); memory0 = base.hardwareResources.GetMemory(0); memory1 = base.hardwareResources.GetMemory(1); memory2 = base.hardwareResources.GetMemory(2); memory3 = base.hardwareResources.GetMemory(3); return true; }
/// <summary> /// Setups this hardware device driver /// </summary> /// <returns></returns> public override bool Setup(IHardwareResources hardwareResources) { this.hardwareResources = hardwareResources; base.name = "COM_0x" + base.hardwareResources.GetIOPort(0, 0).Address.ToString("X"); rbrBase = base.hardwareResources.GetIOPort(0, 0); // Receive Buffer Register (read only) thrBase = base.hardwareResources.GetIOPort(0, 0); // Transmitter Holding Register (write only) ierBase = base.hardwareResources.GetIOPort(0, 1); // Interrupt Enable Register dllBase = base.hardwareResources.GetIOPort(0, 0); // Divisor Latch (LSB and MSB) dlmBase = base.hardwareResources.GetIOPort(0, 1); iirBase = base.hardwareResources.GetIOPort(0, 2); // Interrupt Identification Register (read only) fcrBase = base.hardwareResources.GetIOPort(0, 2); // FIFO Control Register (write only, 16550+ only) lcrBase = base.hardwareResources.GetIOPort(0, 3); // Line Control Register mcrBase = base.hardwareResources.GetIOPort(0, 4); // Modem Control Register lsrBase = base.hardwareResources.GetIOPort(0, 5); // Line Status Register msrBase = base.hardwareResources.GetIOPort(0, 6); // Modem Status Register scrBase = base.hardwareResources.GetIOPort(0, 7); // Scratch Register (16450+ and some 8250s, special use with some boards) fifoBuffer = new byte[fifoSize]; fifoStart = 0; fifoEnd = 0; base.deviceStatus = DeviceStatus.Online; return true; }
public IDEDiskDriver (ushort ioBase) { base.name = "IDE_0x" + ioBase.ToString ("X"); base.parent = null; // no parent base.deviceStatus = DeviceStatus.Initializing; this.ioBase = ioBase; DataPort = base.CreateIOPort (ioBase); ErrorPort = base.CreateIOPort (ioBase, 1); FeaturePort = base.CreateIOPort (ioBase, 1); SectorCountPort = base.CreateIOPort (ioBase, 2); LBALowPort = base.CreateIOPort (ioBase, 3); LBAMidPort = base.CreateIOPort (ioBase, 4); LBAHighPort = base.CreateIOPort (ioBase, 5); DeviceHeadPort = base.CreateIOPort (ioBase, 6); CommandPort = base.CreateIOPort (ioBase, 7); StatusPort = base.CreateIOPort (ioBase, 7); this.Initialize (); }
/// <summary> /// Setups this hardware device driver /// </summary> /// <returns></returns> public override bool Setup(IHardwareResources hardwareResources) { this.hardwareResources = hardwareResources; base.name = "GenericVGA"; byte portBar = (byte)(base.hardwareResources.IOPointRegionCount - 1); miscellaneousOutputRead = base.hardwareResources.GetIOPort(portBar, 0x1C); crtControllerIndex = base.hardwareResources.GetIOPort(portBar, 0x04); crtControllerData = base.hardwareResources.GetIOPort(portBar, 0x05); crtControllerIndexColor = base.hardwareResources.GetIOPort(portBar, 0x24); crtControllerDataColor = base.hardwareResources.GetIOPort(portBar, 0x25); dacPaletteMask = base.hardwareResources.GetIOPort(portBar, 0x16); dacIndexRead = base.hardwareResources.GetIOPort(portBar, 0x17); dacIndexWrite = base.hardwareResources.GetIOPort(portBar, 0x18); dacData = base.hardwareResources.GetIOPort(portBar, 0x19); inputStatus1 = base.hardwareResources.GetIOPort(portBar, 0x12); miscellaneousOutputWrite = base.hardwareResources.GetIOPort(portBar, 0x12); sequencerAddress = base.hardwareResources.GetIOPort(portBar, 0x14); sequencerData = base.hardwareResources.GetIOPort(portBar, 0x15); graphicsControllerAddress = base.hardwareResources.GetIOPort(portBar, 0x1E); graphicsControllerData = base.hardwareResources.GetIOPort(portBar, 0x1F); inputStatus1ReadB = base.hardwareResources.GetIOPort(portBar, 0x2A); attributeAddress = base.hardwareResources.GetIOPort(portBar, 0x10); attributeData = base.hardwareResources.GetIOPort(portBar, 0x11); memory = base.hardwareResources.GetMemory((byte)(base.hardwareResources.MemoryRegionCount - 1)); return true; }
/// <summary> /// Setups this hardware device driver /// </summary> /// <param name="hardwareResources"></param> /// <returns></returns> public override bool Setup(HardwareResources hardwareResources) { this.HardwareResources = hardwareResources; base.Name = "IDE_0x" + base.HardwareResources.GetIOPort(0, 0).Address.ToString("X"); DataPort = base.HardwareResources.GetIOPort(0, 0); ErrorPort = base.HardwareResources.GetIOPort(0, 1); FeaturePort = base.HardwareResources.GetIOPort(0, 1); SectorCountPort = base.HardwareResources.GetIOPort(0, 2); LBALowPort = base.HardwareResources.GetIOPort(0, 3); LBAMidPort = base.HardwareResources.GetIOPort(0, 4); LBAHighPort = base.HardwareResources.GetIOPort(0, 5); DeviceHeadPort = base.HardwareResources.GetIOPort(0, 6); CommandPort = base.HardwareResources.GetIOPort(0, 7); StatusPort = base.HardwareResources.GetIOPort(0, 7); for (int drive = 0; drive < DrivesPerConroller; drive++) { driveInfo[drive].Present = false; driveInfo[drive].MaxLBA = 0; } base.DeviceStatus = DeviceStatus.Online; return true; }
public SerialDevice (ushort ioBase, byte irq) { base.name = "COM_0x" + ((uint)ioBase).ToString ("X"); base.parent = null; // no parent base.deviceStatus = DeviceStatus.Initializing; this.ioBase = ioBase; this.fifoBuffer = new byte[FIFOSize]; this.fifoStart = 0; this.fifoEnd = 0; // Receive Buffer Register (read only) RBRBase = base.CreateIOPort (ioBase); // Transmitter Holding Register (write only) THRBase = base.CreateIOPort (ioBase); // Interrupt Enable Register IERBase = base.CreateIOPort (ioBase, 1); // Divisor Latch (LSB and MSB) DLLBase = base.CreateIOPort (ioBase); DLMBase = base.CreateIOPort (ioBase, 1); // Interrupt Identification Register (read only) IIRBase = base.CreateIOPort (ioBase, 2); // FIFO Control Register (write only, 16550+ only) FCRBase = base.CreateIOPort (ioBase, 2); // Line Control Register LCRBase = base.CreateIOPort (ioBase, 3); // Modem Control Register MCRBase = base.CreateIOPort (ioBase, 4); // Line Status Register LSRBase = base.CreateIOPort (ioBase, 5); // Modem Status Register MSRBase = base.CreateIOPort (ioBase, 6); // Scratch Register (16450+ and some 8250s, special use with some boards) SCRBase = base.CreateIOPort (ioBase, 7); serialIRQ = base.CreateIRQHandler (irq); this.Initialize (); }