How are video drivers done?  how do you access the hardware (with asm in/out..)?
do you have to write drivers for all video cards, or is there a standard rule.. somesuch.


Tutorials, links, and replies are greatly appreciated. but I don't like the MSDN... it explains in such a way I am more abstract than enlighten..  and examples are extremely welcome.. aren't there some examples (source code) for drivers out there? like GeForces driver source code, etc..  I just want to understand the concept behind..  I don't want to blindly call API functions.. I want to understand the concept behind every call. just plain low-level, please..

if anyone has done some driver development, please share your knowledge  :D

I know it depends on the system (os) you're using, but that's why I want it low-level... so I want some info on general driver development.. I might be wrong, but aren't in and out the key to this? can you give some example, like how to switch resolution in a video card (it doesn't matter which) with in or out, or something? source code on drivers or something related?  I am totally lost in this area, so please forgive my mistakes.

can you help me with this? thx.
Posted on 2005-12-22 09:56:41 by The Grey Beast
All I found and know about drivers...

http://www.freewebs.com/four-f/

It is  a little true that to use it with SoundCard or VideoCard it is a little light...

MSDN is the better... but it seems to me that you don't like it ....like you told it...

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/DeviceDriver.asp


I hope you will find better...but it is better than nothing...

----
Gerard
Posted on 2005-12-22 10:24:08 by gerard

MSDN is the better... but it seems to me that you don't like it ....like you told it...


I don't hate MSDN.. but it explains the DDK in such a way I don't understand. maybe it's me...
I'd like something step by step, because I am new and would like to learn.


Thanks for the help. I'll try the link out  ;)
Posted on 2005-12-22 10:41:45 by The Grey Beast
Here are also..some clues in Russian..

FourF is Russian...

http://www.wasm.ru/author.php?author=Four-F

---
Gerard
-----------------------

If you don't speak Russian ------>
http://babelfish.altavista.com/

Posted on 2005-12-22 10:51:45 by gerard
Video driver programming is a mix of IN/OUT instructions and memory mapped hardware - and probably some DMA as well. But you aren't likely to get any information from graphics card vendors, not even under NDA, unless you're Microsoft or Apple...

Iirc the DDK has a video driver for an S3 card or something similarly old, you could check that out.
Posted on 2005-12-22 14:17:53 by f0dder
YES,  IN/OUT plus some memory mapped areas and IRQ's handling are the key to driver programming.
Undertanding PCI enumeration process and configuration space will help in most cases.

In Solar OS you can find example drivers for Floppy disk, Realtek8029 and 8139 network cards, ATA Harddisks and PCI enumeration.
For each hardware you do need a very detailed specification and reference documentation.

If you truly want it I can walk you thru the concept and implementation phases via emails or YM;
however please note that i am slow to answer and kind of "strange" in my concepts

Sorry no video cards since there is no free documenatation available (esp not for the new NVidia 3D video cards :D)
I have for example some specs for a Voodoo3 video card and AFAIK this card did also have some 3D specifications freely available.

However doing drivers without having a functional hardware is IMHO impossible.
You need to do a lot of testing that can not be done without the real hardware working inside a real PC.



Posted on 2005-12-23 18:23:58 by BogdanOntanu
Thanks for the replies.  :)

In Solar OS you can find example drivers for Floppy disk, Realtek8029 and 8139 network cards, ATA Harddisks and PCI enumeration.

Ok, I'll check them out.

I have for example some specs for a Voodoo3 video card and AFAIK this card did also have some 3D specifications freely available.

That will definetely help.. Can you point me to them, or give them to me please? thanks.

However doing drivers without having a functional hardware is IMHO impossible.
You need to do a lot of testing that can not be done without the real hardware working inside a real PC.

Is it really impossible  :sad:
What if you code some drivers and it works ok without testing.. that's probably not going to happen  :sad:
at least aren't there any emulators around for specific hardware (i.e Voodoo3 xxx emulator or something like that).
Posted on 2005-12-27 05:43:22 by The Grey Beast