Dma
Чем отличается программирование DMA в защищённом режиме от программирования в реальном режиме. Если можно, приведите пример использования этого DMA в защищённом режиме(например чтение с дискеты).
Да скорее всего разницы нет никакой. DMA контроллеру вообще накакать на процессор и на то в каком он режиме находится.
Может, кто знает, где взять доки по DMA при 32-битной адресации, а то всё, что у меня есть - написано для барахла типа 8086 и 16-битной адресации. Просто мне нужет драйвер для дискеты, который работает в защ. режиме, через порты и использует DMA. Если достать доки, то останеться тольно узнать про аппаратные(IRQ) прерывания в защищённым режиме...
Насколько я знаю, DMA не поменялся, он работает только с первым мегабайтом (ну или сколько там?) и максимальный объем пересылаемой информации 128 кб. По крайней мере я нигде 32-х битной адресации не встречал, даже никто об этом не упоминал.
А насчет драйвера для дискеты, чего тебе не нравится 16 битная адресация? Разница же только в том, что высшие адреса защищенного режима нельзя использовать вот и все. Для буфера DMA используй первый мегабайт физической памяти. DMA без разницы, какой режим адресации у проца. Он не видит, допустим, страницы (при страничной адресации), а работает только с физическими адресами, т.е. защита на него не действует.
Шестнадцатибитный драйвер не столь пройзводителен, ведь если к нему придёт запрос на чтение или запись более 1Mb, то памяти не хватит. А на счёт DMA жалко, ведь при его использовании процессор не загружается. И тем более абсолютно не годяться такие драйверы для винта и CD, т.к. к ним чаще всего приходит запрос на чтение довольно больших блоков памяти. Так что все драйверы должны быть 32-битными. Так что остаётся узнать об IRQ в защ. режиме и как указать 32-битный буфер при передаче его в порт, а то там тоже все регистры 16 бит.
Ну ладно, если что-то найдешь, дай знать.