(С) Николай Михайлов
Алтайский край, 1996
Точная дешифрация портов #1F и #FE в "Ленинграде -1"
В "Ленинграде-1" клавиатура и джойстик обслуживаются одними и теми же
микросхемами D37,D38 (555КП11). А дешифрация портов ввода - вывода выполнена
настолько грубо, что: все выходные порты 0...254 работают как порт 254
(#FE), а выходные порты: все четные - 254, все нечетные - 31, т.к.
используется только один адрес - A0. С этим и связаны все проблемы, о
которых немало написано на страницах "ZX-РЕВЮ".
Я предлагаю раз и навсегда закрыть эту тему, тем более, что возможности в
"Ленинграде-1" для этого созданы. Соберите только в дополнение предлагаемую
схему.
(ГДЕ ЭТА СХЕМА ?)
Клавиатура читается только как порт #FE(254), кемпстон-джойстик - как
порт #1F(31), любые другие порты свободны, т.е. при чтении из них на шине
данных #FF.
Рассмотрим более подробно:
DD1,DD2.4 - точная дешифрация адреса #FE';
DD5,DD4 - точная дешифрация адреса #1F'.
Сигнал IOWRFE' подключают к выводу 9 D39 (555ТМ9).
Сигнал 1F переключает каналы мультиплексоров D37,D38 следующим образом:
"1" - чтение состояния джойстика;
"0" - чтение клавиатуры.
На DD2.1, DD2.2, DD3.2 собрана схема переключения D37,D38 в третье
состояние: мультиплексоры работают только при выборе сигналов IORD',
FE',1F'. Для любого другого порта на шине данных #FF, т.е. мультиплексоры
отключены.
Можно проверить:
10 FOR I=0 TO 254
20 PRINT IN I, "I="; I
30 NEXT I
Для порта #1F(I=31) будет напечатано 0, для любого другого - 255. Для
порта #FE(I=254) будет напечатана цифра, отличная от 255 только при нажатой
клавише клавиатуры.
Таким образом сигналы джойстика не мешают при чтении программы с
магнитофона, т.е. незадействованные входы 6,10,13 D38 можно и нужно
заземлить, нагрузочные резисторы джойстика заменить на 1 Ком, а их общую
точку соединить с "землей" и использовать джойстик с контактами на
замыкание.