コード例 #1
0
 protected void InitializeFIFO()
 {
     FIFO_Memory = new Cosmos.Core.MemoryBlock(ReadRegister(Register.MemStart), ReadRegister(Register.MemSize));
     FIFO_Memory[(uint)FIFO.Min]     = (uint)Register.FifoNumRegisters * sizeof(uint);
     FIFO_Memory[(uint)FIFO.Max]     = FIFO_Memory.Size;
     FIFO_Memory[(uint)FIFO.NextCmd] = FIFO_Memory[(uint)FIFO.Min];
     FIFO_Memory[(uint)FIFO.Stop]    = FIFO_Memory[(uint)FIFO.Min];
     WriteRegister(Register.ConfigDone, 1);
 }
コード例 #2
0
        public NVIDIA9500MGS(PCIDevice host) : base(host)
        {
            Label    = "NVIDIA 9500MGS";
            instance = this;
            Settings.EnterVideoMode = EnterGraphicsMode;
            host.EnableMemory(true);

            uint basePort = ((PCIDeviceNormal)host).BaseAddresses[0].BaseAddress();

            IndexPort = ((ushort)(basePort + (uint)IOPortOffset.Index));
            ValuePort = ((ushort)(basePort + (uint)IOPortOffset.Value));
            BiosPort  = ((ushort)(basePort + (uint)IOPortOffset.Bios));
            IRQPort   = ((ushort)(basePort + (uint)IOPortOffset.IRQ));

            WriteRegister(Register.ID, (uint)ID.V2);
            if (ReadRegister(Register.ID) != (uint)ID.V2)
            {
                return;
            }

            VIDEO_MEMORY = new Cosmos.Core.MemoryBlock(ReadRegister(Register.FrameBufferStart), ReadRegister(Register.VRamSize));
            capabilities = ReadRegister(Register.Capabilities);
            InitializeFIFO();
        }