Вариант чтения порта клавиатуры, соответствующий текущей схеме, проще всего реализуется фрагментом с модифицируемой командой in (маска клавиатуры, она же старшая половина порта z80, в A)
Код:
sta SetIn+1
SetIn: in 0
Причем очевидно этот фрагмент должен располагаться в озу и его удобно оформить в виде процедуры.
Вариант с заданием маски через отдельный порт
Код:
out 0FFh
in 0FEh
Это короче, но если оформить в виде процедуры, то каждый вызов в обоих случаях будет по 3 байта.