News:

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

DMA and Floppy

Started by liquidsilver, July 25, 2005, 09:42:55 AM

Previous topic - Next topic

liquidsilver

I'm busy with my own os: http://www.cogs.run.to

I can't get a floppy driver to work, and I'm not sure if I need DMA (I though DMA was for quick transfers of memory, but why would you need that?) Can any of you please help.

BogdanOntanu

You do not need DMA since the CPU is fast enough to do those transfers...
BUT
the DMA channel is hard wired for the floppy (DRQ and DACK lines) so if you do not use it...then it is wasted since it can not be used for something else.

Also setting the FDC to work without DMA is a little bit more subttle. If i remember corectly one of the first SoarlOS versions did have a floppy driver that was not using DMA for the floppy disk...

Ambition is a lame excuse for the ones not brave enough to be lazy.
http://www.oby.ro

arafel

liquidsilver, DMA is used to relieve some workload from the CPU when doing memory transfers. Without dma, all tasks concerned to mem. addresses validation/increment/decrement are handled by cpu.
If you want I could send you a very simple example of floppy disk driver (read/write + dma transfers) from a hobby os project I was working on some time ago.

MichaelW

The MMURTL OS used DMA transfers for the floppy drives, and the complete source is available here:

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



eschew obfuscation

liquidsilver

Thanx guys, I think I understand now.

arafel: could you send me those things, please (flash.slash@gmail.com)

thomasantony

Hi,
  I haven't worked on my OS for a long time but it does have a floppy and DMA driver. Check out RooOs at www.tomasm.tk . BTW thanx for listing my site in yours

Thomas :U
There are 10 types of people in the world. Those who understand binary and those who don't.


Programmer's Directory. Submit for free

liquidsilver

I got it working! (see 0.03 on my site)

I never new RooOS had floppy support. Why didn't you include it in 1.2?

BTW: The reason I included you was because your code was a great help when I started, especially with interrupts. I included credits in the kernel.asm file.