Цитата Сообщение от Barmaley_m Посмотреть сообщение
Можно. Для этого надо в обработчике прерываний по IM 2, когда необходимо опрашивать клавиатуру, поставить вызов обработчика прерываний из ПЗУ (CALL 0x38).
Вот этого не делаю для скорости - опрос клавиатуры таким способом нужен время от времени, а не постоянно. А обработчик 0x38 грузный.

Цитата Сообщение от Barmaley_m Посмотреть сообщение
Еще лучше - сделать свой драйвер клавиатуры. Потому что ПЗУшный во-первых требует, чтобы IY=0x5C3A, что исключает возможность использование хорошего регистра IY для других целей. Во-вторых, ПЗУшный драйвер не поддерживает одновременного нажатия нескольких клавиш.
Опрос одновременного нажатия не требуется. Это чтобы буковки печатать, имя вводить.

Ладно, спрошу проще. В чём у меня сомнения. Нельзя ли переписать код вот так:

Код:
  LD   IY,#5C3A
  RES  5,(IY+1)
;  DI ; убираем
  IM   0
;  EI ; убираем
LOOP_REPEAT:
  BIT  5,(IY+1)
  JR   Z,LOOP_REPEAT
  LD   L,(IY-50) ; result in L - a pressed key code
;  DI ; убираем
  IM   2
;  EI ; убираем
  RET