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