
Сообщение от
ZXMAK
Способ старый - детектим анализом кода/регистров наличие чтения в течении одного фрейма, если есть - обновляем таймаут.
не, ну ё-моё...

Сообщение от
Lethargeek
но вот если клава сканится довольно часто, в коротком цикле, и не пропускает изменений шестого бита? тогда что делать?
...а за целый фрейм даже im1 читает несколько раз; и конечно, никакого анализа кода при длинных промежутках масштаба фрейма проводить не надо - и так всё ясно
- - - Добавлено - - -
вот, к примеру, press any key в tap-версии Forgotten Worlds
Код:
l_ad84: ld hl, $ad8c ; ad84
ld (hl), $fe ; ad87
ld b, $08 ; ad89
l_ad8b: ld a, $ef ; ad8b
in a, ($fe) ; ad8d
and $1f ; ad8f
cp $1f ; ad91
ret nz ; ad93
rlc (hl) ; ad94
djnz l_ad8b ; ad96
jr l_ad84 ; ad98
промежутки меньше, чем длины импульсов