Example #1
0
        public override void Start()
        {
            if (Device.Status != DeviceStatus.Available)
            {
                return;
            }

            WriteSettings(VGAText80x25);

            colorMode = ((miscellaneousOutput.Read8() & 1) == 1);

            if (colorMode)
            {
                offset                = 0x8000;
                bytePerChar           = 2;
                activeControllerIndex = crtControllerIndexColor;
                activeControllerData  = crtControllerDataColor;
            }
            else
            {
                offset                = 0x0;
                bytePerChar           = 1;
                activeControllerIndex = crtControllerIndex;
                activeControllerData  = crtControllerData;
            }

            width  = GetValue(CRTCommands.HorizontalDisplayEnableEnd);
            height = GetValue(CRTCommands.VerticalDisplayEnableEnd);

            width++;
            height = 25;

            Device.Status = DeviceStatus.Online;
        }
Example #2
0
        public override void Initialize()
        {
            Device.Name        = "IDE_0x" + Device.Resources.GetIOPortRegion(0).BaseIOPort.ToString("X");
            Device.ComponentID = Device.Resources.GetIOPortRegion(0).BaseIOPort;

            DataPort        = Device.Resources.GetIOPortReadWrite(0, 0);
            ErrorPort       = Device.Resources.GetIOPortReadWrite(0, 1);
            FeaturePort     = Device.Resources.GetIOPortReadWrite(0, 1);
            SectorCountPort = Device.Resources.GetIOPortReadWrite(0, 2);
            LBALowPort      = Device.Resources.GetIOPortReadWrite(0, 3);
            LBAMidPort      = Device.Resources.GetIOPortReadWrite(0, 4);
            LBAHighPort     = Device.Resources.GetIOPortReadWrite(0, 5);
            DeviceHeadPort  = Device.Resources.GetIOPortReadWrite(0, 6);
            CommandPort     = Device.Resources.GetIOPortWrite(0, 7);
            StatusPort      = Device.Resources.GetIOPortReadWrite(0, 7);
            ControlPort     = Device.Resources.GetIOPortWrite(1, 0);
            AltStatusPort   = Device.Resources.GetIOPortReadWrite(1, 6);

            MaximumDriveCount = 2;

            for (var drive = 0; drive < DrivesPerConroller; drive++)
            {
                driveInfo[drive].Present = false;
                driveInfo[drive].MaxLBA  = 0;
            }
        }
Example #3
0
        public override void Initialize()
        {
            Device.Name = "GenericVGA_0x" + Device.Resources.GetIOPortRegion(0).BaseIOPort.ToString("X");

            byte portBar = (byte)(Device.Resources.IOPointRegionCount - 1);

            miscellaneousOutputRead = Device.Resources.GetIOPortReadWrite(portBar, 0x1C);
            crtControllerIndex      = Device.Resources.GetIOPortReadWrite(portBar, 0x04);
            crtControllerData       = Device.Resources.GetIOPortReadWrite(portBar, 0x05);
            crtControllerIndexColor = Device.Resources.GetIOPortReadWrite(portBar, 0x24);
            crtControllerDataColor  = Device.Resources.GetIOPortReadWrite(portBar, 0x25);
            dacPaletteMask          = Device.Resources.GetIOPortReadWrite(portBar, 0x16);
            dacIndexRead            = Device.Resources.GetIOPortReadWrite(portBar, 0x17);
            dacIndexWrite           = Device.Resources.GetIOPortReadWrite(portBar, 0x18);
            dacData                   = Device.Resources.GetIOPortReadWrite(portBar, 0x19);
            inputStatus1              = Device.Resources.GetIOPortReadWrite(portBar, 0x12);
            miscellaneousOutputWrite  = Device.Resources.GetIOPortWrite(portBar, 0x12);
            sequencerAddress          = Device.Resources.GetIOPortReadWrite(portBar, 0x14);
            sequencerData             = Device.Resources.GetIOPortReadWrite(portBar, 0x15);
            graphicsControllerAddress = Device.Resources.GetIOPortReadWrite(portBar, 0x1E);
            graphicsControllerData    = Device.Resources.GetIOPortReadWrite(portBar, 0x1F);
            inputStatus1ReadB         = Device.Resources.GetIOPortReadWrite(portBar, 0x2A);
            attributeAddress          = Device.Resources.GetIOPortReadWrite(portBar, 0x10);
            attributeData             = Device.Resources.GetIOPortReadWrite(portBar, 0x11);

            memory = Device.Resources.GetMemory((byte)(Device.Resources.MemoryRegionCount - 1));
        }
Example #4
0
        /// <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.GetIOPortRegion(0).BaseIOPort.ToString("X");

            DataPort        = base.HardwareResources.GetIOPortReadWrite(0, 0);
            ErrorPort       = base.HardwareResources.GetIOPortReadWrite(0, 1);
            FeaturePort     = base.HardwareResources.GetIOPortReadWrite(0, 1);
            SectorCountPort = base.HardwareResources.GetIOPortReadWrite(0, 2);
            LBALowPort      = base.HardwareResources.GetIOPortReadWrite(0, 3);
            LBAMidPort      = base.HardwareResources.GetIOPortReadWrite(0, 4);
            LBAHighPort     = base.HardwareResources.GetIOPortReadWrite(0, 5);
            DeviceHeadPort  = base.HardwareResources.GetIOPortReadWrite(0, 6);
            CommandPort     = base.HardwareResources.GetIOPortWrite(0, 7);
            StatusPort      = base.HardwareResources.GetIOPortReadWrite(0, 7);
            ControlPort     = base.HardwareResources.GetIOPortWrite(1, 0);
            AltStatusPort   = base.HardwareResources.GetIOPortReadWrite(1, 6);

            for (var drive = 0; drive < DrivesPerConroller; drive++)
            {
                driveInfo[drive].Present = false;
                driveInfo[drive].MaxLBA  = 0;
            }

            base.DeviceStatus = DeviceStatus.Online;

            return(true);
        }
Example #5
0
        protected override void Initialize()
        {
            Device.Name = "AMDPCNet_0x" + Device.Resources.GetIOPortRegion(0).BaseIOPort.ToString("X");

            ioProm1 = Device.Resources.GetIOPortReadWrite(0, 0x0);
            ioProm4 = Device.Resources.GetIOPortReadWrite(0, 0x4);
            rdp     = Device.Resources.GetIOPortReadWrite(0, 0x10);
            rap     = Device.Resources.GetIOPortReadWrite(0, 0x14);
            bdp     = Device.Resources.GetIOPortReadWrite(0, 0x1C);

            initBlock    = Device.Resources.GetMemory(0);
            txDescriptor = Device.Resources.GetMemory(1);
            rxDescriptor = Device.Resources.GetMemory(2);
            buffers      = Device.Resources.GetMemory(3);

            bufferSize = 2048;
            uint len = (ushort)(~bufferSize);

            len = ((len + 1) & 0x0FFF) | 0x8000F000;

            physicalBufferAddress = HAL.GetPhysicalAddress(buffers);

            for (uint index = 0; index < 16; index++)
            {
                uint offset = index * 4;
                rxDescriptor.Write32((offset + 1) * 4, len);
                rxDescriptor.Write32((offset + 2) * 4, physicalBufferAddress + (bufferSize * index));
                txDescriptor.Write32((offset + 2) * 4, physicalBufferAddress + (bufferSize * (index + 16)));
            }

            nextTXDesc = 0;
        }
Example #6
0
        public override void Initialize()
        {
            Device.Name = "PCI_0x" + Device.Resources.GetIOPortRegion(0).BaseIOPort.ToString("X");

            configAddress = Device.Resources.GetIOPortReadWrite(0, 0);
            configData    = Device.Resources.GetIOPortReadWrite(0, 4);
        }
Example #7
0
        /// <summary>
        /// Initializes this device.
        /// </summary>
        protected override void Initialize()
        {
            Device.Name = "PIT_0x" + Device.Resources.GetIOPortRegion(0).BaseIOPort.ToString("X");

            modeControlPort = Device.Resources.GetIOPortReadWrite(0, 3);
            counter0Divisor = Device.Resources.GetIOPortReadWrite(0, 0);
        }
Example #8
0
        /// <summary>
        /// Setups this hardware device driver
        /// </summary>
        /// <param name="hardwareResources"></param>
        /// <returns></returns>
        public override bool Setup(HardwareResources hardwareResources)
        {
            this.HardwareResources = hardwareResources;
            base.Name = "GenericVGA";

            byte portBar = (byte)(base.HardwareResources.IOPointRegionCount - 1);

            miscellaneousOutputRead = base.HardwareResources.GetIOPortReadWrite(portBar, 0x1C);
            crtControllerIndex      = base.HardwareResources.GetIOPortReadWrite(portBar, 0x04);
            crtControllerData       = base.HardwareResources.GetIOPortReadWrite(portBar, 0x05);
            crtControllerIndexColor = base.HardwareResources.GetIOPortReadWrite(portBar, 0x24);
            crtControllerDataColor  = base.HardwareResources.GetIOPortReadWrite(portBar, 0x25);
            dacPaletteMask          = base.HardwareResources.GetIOPortReadWrite(portBar, 0x16);
            dacIndexRead            = base.HardwareResources.GetIOPortReadWrite(portBar, 0x17);
            dacIndexWrite           = base.HardwareResources.GetIOPortReadWrite(portBar, 0x18);
            dacData                   = base.HardwareResources.GetIOPortReadWrite(portBar, 0x19);
            inputStatus1              = base.HardwareResources.GetIOPortReadWrite(portBar, 0x12);
            miscellaneousOutputWrite  = base.HardwareResources.GetIOPortWrite(portBar, 0x12);
            sequencerAddress          = base.HardwareResources.GetIOPortReadWrite(portBar, 0x14);
            sequencerData             = base.HardwareResources.GetIOPortReadWrite(portBar, 0x15);
            graphicsControllerAddress = base.HardwareResources.GetIOPortReadWrite(portBar, 0x1E);
            graphicsControllerData    = base.HardwareResources.GetIOPortReadWrite(portBar, 0x1F);
            inputStatus1ReadB         = base.HardwareResources.GetIOPortReadWrite(portBar, 0x2A);
            attributeAddress          = base.HardwareResources.GetIOPortReadWrite(portBar, 0x10);
            attributeData             = base.HardwareResources.GetIOPortReadWrite(portBar, 0x11);

            memory = base.HardwareResources.GetMemory((byte)(base.HardwareResources.MemoryRegionCount - 1));

            return(true);
        }
Example #9
0
        /// <summary>
        /// Setups this hardware device driver
        /// </summary>
        /// <param name="hardwareResources"></param>
        /// <returns></returns>
        public override bool Setup(HardwareResources hardwareResources)
        {
            this.HardwareResources = hardwareResources;
            base.Name = "AMDPCNet_0x" + hardwareResources.GetIOPortRegion(0).BaseIOPort.ToString("X");

            ioProm1 = hardwareResources.GetIOPortReadWrite(0, 0x0);
            ioProm4 = hardwareResources.GetIOPortReadWrite(0, 0x4);
            rdp     = hardwareResources.GetIOPortReadWrite(0, 0x10);
            rap     = hardwareResources.GetIOPortReadWrite(0, 0x14);
            bdp     = hardwareResources.GetIOPortReadWrite(0, 0x1C);

            initBlock    = hardwareResources.GetMemory(0);
            txDescriptor = hardwareResources.GetMemory(1);
            rxDescriptor = hardwareResources.GetMemory(2);
            buffers      = hardwareResources.GetMemory(3);

            bufferSize = 2048;
            uint len = (ushort)(~bufferSize);

            len = ((len + 1) & 0x0FFF) | 0x8000F000;

            physicalBufferAddress = HAL.GetPhysicalAddress(buffers);

            for (uint index = 0; index < 16; index++)
            {
                uint offset = index * 4;
                rxDescriptor.Write32((offset + 1) * 4, len);
                rxDescriptor.Write32((offset + 2) * 4, physicalBufferAddress + (bufferSize * index));
                txDescriptor.Write32((offset + 2) * 4, physicalBufferAddress + (bufferSize * (index + 16)));
            }

            nextTXDesc = 0;

            return(true);
        }
Example #10
0
        public override void Initialize()
        {
            Device.Name = "CMOS";

            commandPort = Device.Resources.GetIOPortReadWrite(0, 0);
            dataPort    = Device.Resources.GetIOPortReadWrite(0, 4);
        }
Example #11
0
        public override void Initialize()
        {
            Device.Name = "VMWARE_SVGA_0x" + Device.Resources.GetIOPortRegion(0).BaseIOPort.ToString("X");

            indexPort = Device.Resources.GetIOPortReadWrite(0, 0);
            valuePort = Device.Resources.GetIOPortReadWrite(0, 1);
            memory    = Device.Resources.GetMemory(0);
            fifo      = Device.Resources.GetMemory(1);
        }
Example #12
0
        protected override void Initialize()
        {
            Device.Name = "PIC_0x" + Device.Resources.GetIOPortRegion(0).BaseIOPort.ToString("X");

            masterCommandPort = Device.Resources.GetIOPortReadWrite(0, 0);
            masterDataPort    = Device.Resources.GetIOPortReadWrite(0, 1);

            slaveCommandPort = Device.Resources.GetIOPortReadWrite(1, 0);
            slaveDataPort    = Device.Resources.GetIOPortReadWrite(1, 1);
        }
Example #13
0
        /// <summary>
        /// Setups this hardware device driver
        /// </summary>
        /// <param name="hardwareResources"></param>
        /// <returns></returns>
        public override bool Setup(HardwareResources hardwareResources)
        {
            this.HardwareResources = hardwareResources;
            base.Name = "CMOS";

            commandPort = base.HardwareResources.GetIOPortReadWrite(0, 0);
            dataPort    = base.HardwareResources.GetIOPortReadWrite(0, 4);

            return(true);
        }
Example #14
0
        /// <summary>
        /// Setups this hardware device driver
        /// </summary>
        /// <returns></returns>
        public override bool Setup(HardwareResources hardwareResources)
        {
            this.HardwareResources = hardwareResources;
            base.Name = "PCI_0x" + base.HardwareResources.GetIOPortRegion(0).BaseIOPort.ToString("X");

            configAddress = base.HardwareResources.GetIOPortReadWrite(0, 0);
            configData    = base.HardwareResources.GetIOPortReadWrite(0, 4);

            return(true);
        }
Example #15
0
        /// <summary>
        /// Initializes this device.
        /// </summary>
        protected override void Initialize()
        {
            Device.Name = "StandardKeyboard";

            commandPort = Device.Resources.GetIOPortReadWrite(0, 0);
            dataPort    = Device.Resources.GetIOPortReadWrite(1, 0);

            fifoBuffer = new byte[fifoSize];
            fifoStart  = 0;
            fifoEnd    = 0;
        }
Example #16
0
        public override void Initialize()
        {
            Device.Name = "StandardKeyboard";

            dataPort    = Device.Resources.GetIOPortReadWrite(0, 0);                // 0x60
            statusPort  = Device.Resources.GetIOPortRead(1, 0);                     // 0x64
            commandPort = Device.Resources.GetIOPortWrite(1, 0);                    // 0x64

            fifoBuffer = new byte[fifoSize];
            fifoStart  = 0;
            fifoEnd    = 0;
        }
Example #17
0
        /// <summary>
        /// Setups this hardware device driver
        /// </summary>
        /// <returns></returns>
        public override bool Setup(HardwareResources hardwareResources)
        {
            this.HardwareResources = hardwareResources;
            base.Name = "VMWARE_SVGA_0x" + hardwareResources.GetIOPortRegion(0).BaseIOPort.ToString("X");

            indexPort = hardwareResources.GetIOPortReadWrite(0, 0);
            valuePort = hardwareResources.GetIOPortReadWrite(0, 1);
            HAL.DebugWrite("**G**");
            memory = base.HardwareResources.GetMemory(0);
            HAL.DebugWrite("**I**");
            fifo = base.HardwareResources.GetMemory(1);
            HAL.DebugWrite("**J**");
            return(true);
        }
Example #18
0
        /// <summary>
        /// Setups the standard keyboard driver
        /// </summary>
        /// <returns></returns>
        public override bool Setup(HardwareResources hardwareResources)
        {
            this.HardwareResources = hardwareResources;
            base.Name = "StandardKeyboard";

            commandPort = base.HardwareResources.GetIOPortReadWrite(0, 0);
            dataPort    = base.HardwareResources.GetIOPortReadWrite(1, 0);

            fifoBuffer = new byte[fifoSize];
            fifoStart  = 0;
            fifoEnd    = 0;

            return(true);
        }
Example #19
0
        protected override void Initialize()
        {
            // Set the driver's name
            Device.Name = "S3Trio64V2";

            // Store portmanager
            byte portBar = (byte)(Device.Resources.IOPointRegionCount - 1);

            vgaEnableController = Device.Resources.GetIOPortReadWrite(portBar, Register.VgaEnable);
            miscOutputReader    = Device.Resources.GetIOPortReadWrite(portBar, Register.MiscOutRead);
            miscOutputWriter    = Device.Resources.GetIOPortReadWrite(portBar, Register.MiscOutWrite);
            crtcControllerIndex = Device.Resources.GetIOPortReadWrite(portBar, Register.CrtcIndex);
            crtcControllerData  = Device.Resources.GetIOPortReadWrite(portBar, Register.CrtcData);
            seqControllerIndex  = Device.Resources.GetIOPortReadWrite(portBar, Register.SequenceIndex);
            seqControllerData   = Device.Resources.GetIOPortReadWrite(portBar, Register.SequenceData);
        }
Example #20
0
        /// <summary>
        /// Initializes this device.
        /// </summary>
        protected override void Initialize()
        {
            Device.Name = "COM_0x" + Device.Resources.GetIOPortRegion(0).BaseIOPort.ToString("X");

            rbrBase = Device.Resources.GetIOPortReadWrite(0, 0);         // Receive Buffer Register (read only)
            thrBase = Device.Resources.GetIOPortWrite(0, 0);             // Transmitter Holding Register (write only)
            ierBase = Device.Resources.GetIOPortReadWrite(0, 1);         // Interrupt Enable Register
            dllBase = Device.Resources.GetIOPortReadWrite(0, 0);         // Divisor Latch (LSB and MSB)
            dlmBase = Device.Resources.GetIOPortReadWrite(0, 1);
            iirBase = Device.Resources.GetIOPortReadWrite(0, 2);         // Interrupt Identification Register (read only)
            fcrBase = Device.Resources.GetIOPortWrite(0, 2);             // FIFO Control Register (write only, 16550+ only)
            lcrBase = Device.Resources.GetIOPortReadWrite(0, 3);         // Line Control Register
            mcrBase = Device.Resources.GetIOPortReadWrite(0, 4);         // Modem Control Register
            lsrBase = Device.Resources.GetIOPortReadWrite(0, 5);         // Line Status Register
            msrBase = Device.Resources.GetIOPortReadWrite(0, 6);         // Modem Status Register
            scrBase = Device.Resources.GetIOPortReadWrite(0, 7);         // Scratch Register (16450+ and some 8250s, special use with some boards)

            fifoBuffer = new byte[fifoSize];
            fifoStart  = 0;
            fifoEnd    = 0;
        }
Example #21
0
        protected override void Initialize()
        {
            Device.Name = "VGAText";

            miscellaneousOutput     = Device.Resources.GetIOPortReadWrite(0, 0x1C);
            crtControllerIndex      = Device.Resources.GetIOPortReadWrite(0, 0x04);
            crtControllerData       = Device.Resources.GetIOPortReadWrite(0, 0x05);
            crtControllerIndexColor = Device.Resources.GetIOPortReadWrite(0, 0x24);
            crtControllerDataColor  = Device.Resources.GetIOPortReadWrite(0, 0x25);

            miscellaneousOutputWrite  = Device.Resources.GetIOPortWrite(0, 0x12);
            sequencerAddress          = Device.Resources.GetIOPortReadWrite(0, 0x14);
            sequencerData             = Device.Resources.GetIOPortReadWrite(0, 0x15);
            graphicsControllerAddress = Device.Resources.GetIOPortReadWrite(0, 0x1E);
            graphicsControllerData    = Device.Resources.GetIOPortReadWrite(0, 0x1F);
            inputStatus1ReadB         = Device.Resources.GetIOPortReadWrite(0, 0x2A);
            attributeAddress          = Device.Resources.GetIOPortReadWrite(0, 0x10);
            attributeData             = Device.Resources.GetIOPortReadWrite(0, 0x11);

            memory = Device.Resources.GetMemory(0);
        }
Example #22
0
        /// <summary>
        /// Setups this hardware device driver
        /// </summary>
        /// <param name="hardwareResources"></param>
        /// <returns></returns>
        public override bool Setup(HardwareResources hardwareResources)
        {
            // Store reference to hardware resources
            this.HardwareResources = hardwareResources;

            // Set the driver's name
            base.Name = "S3Trio64V2";

            // Store portmanager
            byte portBar = (byte)(base.HardwareResources.IOPointRegionCount - 1);

            vgaEnableController = base.HardwareResources.GetIOPortReadWrite(portBar, Register.VgaEnable);
            miscOutputReader    = base.HardwareResources.GetIOPortReadWrite(portBar, Register.MiscOutRead);
            miscOutputWriter    = base.HardwareResources.GetIOPortReadWrite(portBar, Register.MiscOutWrite);
            crtcControllerIndex = base.HardwareResources.GetIOPortReadWrite(portBar, Register.CrtcIndex);
            crtcControllerData  = base.HardwareResources.GetIOPortReadWrite(portBar, Register.CrtcData);
            seqControllerIndex  = base.HardwareResources.GetIOPortReadWrite(portBar, Register.SequenceIndex);
            seqControllerData   = base.HardwareResources.GetIOPortReadWrite(portBar, Register.SequenceData);

            // Everything went fine
            return(true);
        }