Предлагаю вниманию библиотеку для работы с клавиатурой PS2.
Рус-Лат - CTRL+SHIFT
CAPS - работает
ALT - временное переключение раскладки
Shift - работает
Всякие служебные клавиши, типа ESC F1-F12 и прочие курсорные стрелки - работают.
Код возвращается функцией Inkey в регистре HL.
H=0, L=KOI8-R
H=1, L=расширенный код (F1-F12, стрелки и проч.)
Для сборки необходим z80asm из z88dk