assembly language--How to stop the the transmission of DMA

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
StrikeFreedom
Posts: 3
Joined: Wed Jun 22, 2016 6:33 pm

assembly language--How to stop the the transmission of DMA

Post 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.
User avatar
BenLunt
Member
Member
Posts: 941
Joined: Sat Nov 22, 2014 6:33 pm
Location: USA
Contact:

Re: assembly language--How to stop the the transmission of D

Post 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
Post Reply