News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

IDE Controller programming

Started by Transcendencja, March 28, 2007, 09:02:40 PM

Previous topic - Next topic

Transcendencja

Hello, I'm new forum member! My english isn't very good, so please, forgive my mistakes. ;)
My question isn't directly related to asm coding, but I think that there are some members with hardware programming experience.
I have to write IDE controller driver, it must handle PIO and DMA modes. My only problem is that I can't find documentation. There is some specification available, but I have to know which ports I must use, etc. Also, I have generally no experience in hardware programming and I want to know how to use DMA. Maybe somebody will show me direction/some links? Everything will be written under control of new actually-in-development OS, so I must do everything manually.
Greetings, Grzegorz.

Draakie

http://suif.stanford.edu/~csapuntz/ide.html

looks promising....[bottom of web page]

Good luck (u're gonna need it !)
Draakie
Does this code make me look bloated ? (wink)

Synfire

Transcendencja,

Check out http://www.osdever.net/documents.php?cat=0&sort=1 and http://www.osdev.org/osfaq2/ These two sites should be in your bookmarks if you are getting into OS and/or driver development.

Regards,
Bryant Keller

PS: If you check osdever.net's links section you would find http://www.ata-atapi.com/hiw.htm which is what your looking for I think. But in general both of those sites are good to have bookmarked. If you need more details then check the other sites listed in osdever's links section, although this one seems to cover most of your basis.

MichaelW

Transcendencja,

You can get most of the I/O port assignments, and a lot of related information from PORTS.LST in the download version of Ralf Brown's Interrupt list, available here:

http://www-2.cs.cmu.edu/~ralf/files.html

If I recall correctly, the I/O ports can be deduced from information in the standards, if you know the standard names of the interface signals, as used in the standards, but it's been too long for me to recall any details.

I posted some source code and two applications that may be of use to you here:

http://www.masm32.com/board/index.php?topic=6874.msg51027#msg51027

In case you don't already know, the standards, which in my opinion will be absolutely essential for what you are trying to do, are here:

http://www.t13.org

And you can get the source code for a more or less complete PM operating system, with some new patches and updates, here:

http://www.sensorypublishing.com/mmurtl.html
eschew obfuscation

Transcendencja

Thanks a lot!
I know almost all of these sites, but I simply (don't know why) overlooked informations that I need. Now I see what I have to read and code. ;)
Greetings!