Вот тут да, если использовать прерывания, то подтяжка дающая FF на ШД c "той стороны" D30, а D30 в цикле подтверждения прерывания будет закрыт.
Вид для печати
Не уверен, что понял насчет цикла прерываний, нужен как раз цикл подтверждения.
/RD - READ: The read strobe indicates that the processor is performing a memory or I/O read cycle
для сравнения
/DEN - DATA ENABLE: Provided as an output enable for the 82C86/82C87 in a minimum system which uses the transceiver. DEN is active LOW during each memory and I/O access, and for INTA cycles.
- - - Добавлено - - -
Можно грязно хакнуть - использовать NMI вместо INTR. Но тогда все равно желательно предусмотреть какой-нибудь механизм запрета/разрешения, например через порт, что потребует дополнительных микросхем. Не очень хорошее решение.
Хорошо, так и сделаем. С этим вопросом как бы решили.
Теперь со сбросом. На мой взгляд самым простым будет повесить RS триггер. На R вход подадим RESET/, а на вход S - с выхода D10.1 через инвертор смеcь A14 и A15. А выход триггера через элемент И смешаем с сигналом RDROM/ и уже на ПЗУ подадим новый *RDROM/
Таким образом после сброса, триггер установит принудительный выбор ПЗУ, а при обращении к области памяти 0000...3FFF триггер сбросится.
И если учесть, что на шине адреса в момент сброса будет адрес FFF0, то в реальности адрес ПЗУ будет 3FF0.
Тогда туда можно вписать процедуру
jmp far 00:00
И следующая команда должна выполнится с адреса 0000
Опять же если я точно понял суть происходящего.
С начальным стартом примерно понятно.
От D46 не планируешь избавится? Или хочешь сократить опрос клавиатуры за счет использования коротких команд обращения к портам?
- - - Добавлено - - -
Сократить опрос не получается, это я поторопился. Разве что можно не трогать DX. Тебе виднее, но мне кажется, что лучше упростить железку.
Обновил схему в первом посте. Смотрим высказываемся.