Цитата Сообщение от Error404 Посмотреть сообщение
Какие уж тут сложности: по приему от клавиатуры байта F0 взводить некий однобитный триггер в "1", по приему любого другого байта сначала копировать значение триггера в бит D7 регистра F766h(4Eh), затем этот триггер опрокидывать в "0". Плюс все то, что уже реализовано (код клавиши в регистр, выдать прерывание).
.....
Двухбайтовый порт в реализации получится не проще...
Что-то я мысль не уловил! Но думаю, придется попыхтеть, чтобы такой автомат реализовать на логике.

И все-таки, самое простое, это принять два байта с клавиатуры и запросить прерывание. Все остальное (F0 или E0) - выяснять программно. Кроме того, в обработчике прерывания клавы, выключать прерывания 50гц. нельзя (ну, разве что в самых критических точках). Иначе грош цена таймеру на этом прерывании.
Кстати, при очень большом желании (прости мне Господи крамольную мысль!) можно отказаться от прерывания клавиатуры. Можно по прерыванию 50гц. проверять есть ли байт с клавиатуры. Думаю, если опрашивать клаву каждые 20 млсек, то вряд-ли что пропустишь.