FF0C: Scans the keyboard matrix for a single currently-held key
Walks the classic 8 half-row ports ($FEFE, $FDFE, ..., $7FFE, rotating the row-select byte in B via RLC). D starts at $FF and is incremented once per row found to have any key held, then overwritten with the key's bit-position within its row (via the SRL/JR NC shift-count at $FF1D-$FF21); E counts down the row number. Returns NZ (an early RET NZ at $FF1A/$FF23) if more than one row has a key held (reject as ambiguous); otherwise always returns with Z set (via the unconditional CP A at $FF2A) and the caller (read_new_key_definition) tells "no key" from "one key" by checking whether D is still $FF.