При эмуляции тип эмулируемого контролера HD задаётся "секретным" параметром: HD_InterfaceType в разделе HD.ini. Значение по умолчанию HD_InterfaceType = 2 соответствует обычному контроллеру HD.
Нет, цитирую описание:Имитировать "безблочную" работу так не получится - надо делать в эмуляторе новое устройство.После подачи команды записи - контроллер снимает флаг READY ( 0200 ) и в регистр данных нужно (без каких-либо других обращений) записать количество слов, равное текущему значению "СЧЁТЧИК СЛОВ", после чего контроллер снимает флаг NO.DMA и выполняет запись. Завершение записи приводит к установке в CSR флагов READY и NO.DMA.
На мой взгляд - сначала надо детально продумать работу "блочного" контроллера (всем миром), потом добавить такой контроллер в эмулятор и написать для него драйвер (это я сделаю).
Например - в любой из фаз работы контроллера операционка может вылететь и запустить начальный загрузчик. Как начальный загрузчик выполнит сброс контроллера на любой из фаз его работы, сколько времени это займёт, нужно ли начальному загрузчику ждать готовности контролера после сброса или при неготовности контроллера после сброса - завершить работу с выдачей сообщения, чтобы пользователь сам дождался завершения сброса контроллера и перезапустил начальный загрузчик.





Ответить с цитированием