Код:ktest ld c,a ; код клавиши помещаем в c.
and 7 ; оставляем только биты d0-d2 для получения номера ряда.
inc a ; прибавляем единицу, чтобы значение стало от 1 до 8.
ld b,a ; помещаем в b.
srl c ; делим c на 8,
srl c ; для того, чтобы найти позицию внутри ряда.
srl c
ld a,5 ; в ряду 5 клавиш.
sub c ; вычитаем из кода значение позиции.
ld c,a ; результат помещаем в c.
ld a,254 ; старший байт номера порта из которого будем читать.
ktest0 rrca ; с помощью сдвига вычисляем старший байт адреса порта.
djnz ktest0 ; повтор, пока не найдем соответствующий ряд.
in a,(254) ; читаем порт (a=старший байт, 254=младший).
ktest1 rra ; сдвигаем биты в прочитанном результате.
dec c ; счетчик цикла.
jp nz,ktest1 ; повторять пока нужный нам бит не окажется в флаге переноса.
ret

