Hello!
Could you please help me with DMA transfers!
I am trying to write a floppy driver for my operating system and I got confused by the DMA chip.
If I understood correctly, the floppy controller can transfer one byte at a time. To transfer a byte
from floppy to memory you first have to initialize DMA chip and then FDC. For example I want to transfer
one sector to memory (512 bytes). Which mode sould I use on DMA chip: single, block or demand?
In single mode I get the byte, but do I have to reprogram the DMA controller once I got the byte or will it
continue until it reaches TC?
In block and demand modes I know the DMA chip will transfer all the bytes until it reaches TC, but how about
memory refresh on channel 0? Will FDC handle that or do i have to tell the DMA controller to wait every 15 msec?
And how do I know when a channel reaches TC, do I get an interrupt from a floppy controller or do I have
to poll DMA once a while?
How much memory can a DMA controller see: 1 Meg or 16? In one tutorial they said that the external latch register
holds only 4 bits of 20 bit address, in other tut they said that the address is 24 bit long and the external latch register
can hold up to 8 bits?
Is it true that although there are four independant channels, only one of them can be active at a time?
I hope you can help me. Thank you.
Dima.