Цитата Сообщение от SegaBoy Посмотреть сообщение
Опросить клавиатуру через порты достаточно легко. Записывая поочерёдно 0 в один из разрядов порта А контроллера ВВ55, из порта В можно читать состояние одного ряда клавиш.
Если ничего не нажато, то возвращаются единицы. Если нажато, то на этих битах будут нули.
Например записав 0xFE по адресу 0x8000 опрашиваться будет ряд номер ноль. Прочитав байт из адреса 0x8001 получим состояние всех клавиш в этом ряду. В принципе, на Спектруме опрос происходит так же, только там порты не в памяти.
Записав в порт А 0x00 можно опросить сразу все линии и узнать нажата ли хоть какая-то клавиша.

Код:
                       порт А вход									
0x7F    0xBF    0xDF    0xEF    0xF7    0xFB    0xFD    0xFE
7	6	5	4	3	2	1	0		

SPACE	ВW	ОO	ГG	?/	7'	DOWN		7	

Ч^	ЖV	НN	ФF	.>	6&	RIGHT	F4	6	

Щ]	УU	МM	ЕE	-=	5%	UP	F3	5	

Э\	ТT	ЛL	ДD	,<	4$	LEFT	F2	4	порт В выход

Ш[	СS	КK	ЦC	;+	3#	ЗБ	F1	3	

ЗZ	РR	ЙJ	БB	:*	2"	ВК	АР2	2	

ЫY	ЯQ	ИI	АA	9)	1/	ПС	СТР	1	

ЬX	ПP	ХH	Ю@	8(	0	ТАБ	\	0
- - - Добавлено - - -



Если порт А клавиатуры перепрограммировать на ввод, то с него будут читаться нули, если клавиши не нажаты. При нажатии на клавишу появятся единица в каком-то разряде, но программно можно будет определить только в каком ряду эта клавиша. И, в принципе, больше ничего страшного не случится.
Хуже будет если порт В перепрограммировать на вывод.

А кнопка рус/лат где тут?