Цитата Сообщение от AFZ Посмотреть сообщение
Но HD работает мгновенно - ему дали команду, и на следующий такт виртуального процессора данные появились в памяти.
Ну, вот прямо сейчас я уже сделал 3-ю версию контроллера HD, где в CSR добавлен бит разрешения прерываний 0100, при установке которого контроллер начинает выполнять команды чтения и записи с задержкой 100 мкс, во время которой бит READY сброшен и после которой происходит прерывание по вектору 0164.

Сейчас напишу для этого контроллера драйвер, проверяющий бит READY в CSR перед каждым обращением к любому регистру - и всего делов. Главная особенность использования прерываний контроллером HD - они возникают только в двух случаях: 1) после начала выполнения команды чтения; 2) после начала выполнения команды записи. Все остальные команды выполняются "мгновенно", т.е. пока драйвер идёт ждать появления бита READY в CSR - контроллер уже готов сообщить в регистре данных размер подключенного образа или принять в регистре данных значения номера устройства, номера блока, адреса буфера или счётчика слов.