Схема с диодом и резистором, которая в МВЦ на 3-м канале DMA, и не должна сработать. Там как раз запрос висит постоянно, и когда он принимается, через диод гасится сигнал запроса, чтобы не мучить ВТ57, пока она текущий запрос не обслужит. Здесь же нужна другая логика - когда активируется (падает в 0) запрос DRQ, должен сразу же подниматься ответ DACK, т.е. между DRQ и DACK должен стоять инвертор. Либо вообще всегда 0 на DACK, а DRQ игнорировать.
Как синхронизировать DACK с ответом от бортовой ВГ57 - я не понимаю, но мне пришла в голову гипотеза. Предположим, бортовая ВТ57 всегда отвечает на запросы от бортовой ВГ75 одинаковое число тактов. Ну а в самом деле, почему нет, прерывать ВТ57 некому, это она всех прерывает. Тогда в обратную связь между DRQ и DACK на модульной ВГ75 нужно кроме инвертора добавить несколько последовательных триггеров - линию задержки на несколько тактов. И вуаля, теперь наши ВГ75 в локстепе, такт-в-такт.
- - - Добавлено - - -
Там кстати в инициализации есть в одном месте NOP, а перед ним посылается команда E0. По этой команде ВГ75 должны сбросить все внутренние счётчики, и ждать следующей команды (в даташите зовётся Preset Counters). Если эта команда не реализована в модели , ВГ75 не смогут синхронизироваться.




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