Esempio n. 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;
        }
Esempio n. 2
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);
        }
Esempio n. 3
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;
            }
        }
Esempio n. 4
0
        public override void Initialize()
        {
            Device.Name = "CMOS";

            commandPort = Device.Resources.GetIOPortReadWrite(0, 0);
            dataPort    = Device.Resources.GetIOPortReadWrite(0, 4);
        }
Esempio n. 5
0
        /// <summary>
        /// Initializes this device.
        /// </summary>
        public override void Initialize()
        {
            Device.Name = "PIT_0x" + Device.Resources.GetIOPortRegion(0).BaseIOPort.ToString("X");

            counter0Divisor = Device.Resources.GetIOPortReadWrite(0, 0);             // 0x40
            modeControlPort = Device.Resources.GetIOPortReadWrite(1, 0);             // 0x43
        }
Esempio n. 6
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.AddressRegionCount - 1));
        }
Esempio n. 7
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);
        }
Esempio n. 8
0
        public 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);
        }
Esempio n. 9
0
        public override void Initialize()
        {
            Device.Name = "StandardMouse";

            data    = Device.Resources.GetIOPortReadWrite(0, 0);          // 0x60
            command = Device.Resources.GetIOPortReadWrite(1, 0);          // 0x64

            // Enable the auxiliary mouse device
            Wait(1);
            command.Write8(0xA8);

            // Enable the interrupts
            Wait(1);
            command.Write8(0x20);
            Wait(0);
            byte status = ((byte)(data.Read8() | 3));

            Wait(1);
            command.Write8(0x60);
            Wait(1);
            data.Write8(status);

            WriteRegister(SetDefaults);
            WriteRegister(EnableDataReporting);

            // Get "MouseID", but somehow do nothing with it (?)
            WriteRegister(0xF2);

            // Set sample rate to 200 Hz (maximum)
            // We're gradually going down to 80 Hz, see below
            WriteRegister(0xF3);
            WriteRegister(200);

            // Set sample rate to 100 Hz
            // See below for final register write of sample rate
            WriteRegister(0xF3);
            WriteRegister(100);

            // Set sample rate to 80 Hz
            // We're done!
            WriteRegister(0xF3);
            WriteRegister(80);

            // Get "MouseID"
            WriteRegister(0xF2);
            byte result = ReadRegister();

            if (result == 3)
            {
                // The scroll wheel is available
            }

            MouseState = byte.MaxValue;
        }
Esempio n. 10
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;
        }
Esempio n. 11
0
        public 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);
        }