Порт 7FFD обычно реализуется на регистре типа ТМ9 (6 бит), иногда - ИР22/23/27/33 (8 бит - для Пентагон-512 и т.д.). В этом регистре запоминается информация, которая была записана в порт. Своими входами регистр подключен к шине данных, а выходы используются в схеме расширения.
Так вот, обмен информацией между процессором и портами осуществляется через шину данных. Данные с шины попадают в регистр - произошла запись. Чтобы считать данные из регистра - надо их подать обратно на шину данных в тот момент, когда процессор выполняет команду IN 7FFD. В остальное время на шину данных ничего подавать нельзя - она используется для обмена информацией с памятью и другими портами.
Соответственно, для подачи информации на шину данных необходим буфер с тремя состояниями на выходе. Подойдут микросхемы типа 555АП5, 555АП6, 155ЛП11 и даже 555ИР22 - тысячи их. Буфера обычно имеют входы - на них необходимо подать сигналы с регистра 7FFD. Выходы буфера подключаются к шине данных. Еще у буфера есть вход разрешения - на него необходимо подать сигнал, разрешающий включение выходов тогда и только тогда, когда процессор исполняет команду IN 7FFD. В этот момент на сигналах /IORQ, /RD, A1, A15 присутствует лог. 0, на линии /M1 и прочих линиях адреса - лог. 1. Так что нужна логическая схема, выход которой равен лог. 0 (обычно активный уровень сигнала разрешения буфера - 0), когда /IORQ, /RD, A1, A15=0, /M1=1, A14..A2, A0=1. Обычно линии адреса A12..A2, A0 не используются для выборки порта 7FFD, поэтому их можно не включать в схему, тем самым достигается ее упрощение. Вот и всё!
- - - Добавлено - - -
Удобно совместить логическую схему для чтения 7FFD с логической схемой для записи в 7FFD и формирования сигналов BDIR, BC1 для AY. Привожу фрагмент схемы с портом 7FFD и формированием управляющих сигналов.




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