Сообщение от EvgenRUНет. Всё наоборот. Это процессор должен поспевать за контроллером. Контроллер может работать с какой угодно низкой скоростью и никого это не волнует. В петле чтения/записи байта просто нет времени на проверку "тайм-аутов", поэтому она и не делается. Процессор работает по готовности. Процессор считывает готовность, - аппаратную (с 38-й или 39-той ног ВГ93), или же программную (из регистра статуса). Он в цикле ждёт готовности от контроллера и (т.к проверки на "тайм-аут" нет) готов ждать этого часами. Как только выставлен флаг готовности, то процессор читает из регистра данных считанный байт или записывает туда байт подлежащий записи в сектор. Пауза между готовностями может быть любой, процессору это без разницы, лишь бы он в паузе между выдачей/запросом двух байтов успевал скинуть считанный байт по LD (HL),A и сделать INC HL. Минимальная частота на которой CPU успевает это делать - 2.5 МГЦ. Поэтому если выдавать считанные байты медленнее, то процессор будет только рад. В смысле, что никаких проблем это не вызывает. Надеюсь, все это знают и приводить фрагменты листингов не требуется.Сообщение от s_kosorev
Это в случае программного обмена. Так работают все известные отечественные контроллеры на ВГ93, за двумя исключениями. Это промышленный контроллер от одного клона РК86, в котором обмен с ВГ93 не программный (т.к скоростей РК86 на это не хватает), а аппаратный с использованием ПДП. А также контроллер НГМД от ИРИШИ, которая тоже слишком медленна, чтобы обойтись без ПДП. Но и использование ПДП не создаёт особых проблем.
Микроконтроллер эмулирующий КНГМД должен просто ждать когда в регистр команд ВГ93 запишут команду (например чтения/записи сектора, формат трека, шаг головки и т.п) а затем её выполнить (т.е эмулировать). А с какой скоростью он это делает никого не волнует. В отличие от эмулятора дисковода, где такт импульсов очень высокий и не может быть понижен. Но даже это излишняя работа, т.к эмуляция работы контроллера IDE ещё на порядок проще.
Поэтому для эмулятора контроллеров НГМД и IDE вовсе не нужен скоростной Atmega1284P, а наоборот, достаточно процессора 4004 с тактом 750 кГЦ выпуска 1971 года.