Но попытка понять о чём был пост, заставила меня вспомнить, как сделано управление железом в Apple-II. Понятно, что самый тупой лобовой вариант формирования сигналов управления, это поставить регистр на вывод в шину данных. Это традиционный путь. Но он имеет ряд недостатков. Во-первых, в машине без буферов это плохо, т.к нагружает шину данных одним TTL-входом. Во-вторых, управление режимом обычно однобитовое и ставить целый регистр невыгодно, а если в одном регистре объединить разные управления, то это неудобно программно (или же надо иметь возможность читать системный регистр).
Поэтому Стив Возняк, который был очень изобретательным, использовал в Apple-II, так называемые программные ключи. Суть этого в том, что чтобы не нагружать шину данных, управление делается не битами с шины данных, а чип-селектами в области В/У (в Apple это область C000). Ставится RS-триггер (на ТМ2 или из двух вентилей И-НЕ) и, например, на R-вход заводится чип-селект F800, а на S-вход чип-селект F801. Тогда по записи по адресу F801 тригер установится в 1, а по записи в F800 сбросится. Это же получается, если использовать D-триггер и на его вход C подать чип-селект, а на вход D адрес A0.
Вот таким образом в Apple-II и сделано всё управление режимами, аналоговым джойстиком и другими устройствами. Эта же идея используется и в периферийных платах. Достоинство, - шина данных никак не нагружается, а управление побитовое. А т.к в СПЕЦИАЛИСТЕ невыгодно нагружать шину, чтобы оставался ресурс нагрузочной способности для подключения периферийных плат, то также выгодно все переключения режимов делать RS-триггерами.
Используя вышеизложенное, при желании, можно просто блокировать импульсы на входе INT с помощью двух вентилей из ЛА3, иcпользуя сигналы с двух выходов дешифратора ИД7. Выход RS-триггера на ЛА3 просто через диод коротит вход INT КР580 и импульсы 50 ГЦ не пройдут. Управление появится, а нагрузки шины не будет.
[свернуть]