Page 1 of 1
assembly language--How to stop the the transmission of DMA
Posted: Thu Aug 04, 2016 12:04 am
by StrikeFreedom
I use the transmission of DMA to read the MBR of harddisk on BOCHS.I know the command “C8h” means DMA read which is in IDE-control command and it works well.I can print the datas which are the MBR of harddisk correct by the DMA read.But,when I try to stop the DMA read,I am faild.From the book,I know the DMA controller has been Integrated into PCH.The port address of 4 chanels Mask register is 0FH and 0DEh.Even I set all the 4 chanels is Shielded but it still work.Is there some other methods to stop 82C37 DMA controller?Or it can not programming by external.
Re: assembly language--How to stop the the transmission of D
Posted: Thu Aug 04, 2016 1:25 am
by BenLunt
Is this IDE on the ISA bus or the PCI bus? Since you mention the 8237, I would guess you are using an ISA bus.
Why would you want to stop the DMA? If you set it up correctly, to transfer the correct amount of bytes (words), it should stop at the end of the sector or number of sectors you requested.
Are you saying the that controller is still transferring data? If so, you put way too many count bytes or you have it repeat, in auto-initialize mode.
Please explain a little more by what you mean by stopping the transmission of bytes.
Ben
http://www.fysnet.net/media_storage_devices.htm