Waits for an unambiguous key press, rejects it if that key is already in use, stores it in temp_keydefs, then looks the key's two-character name up in key_names and draws it at DE. The screen address is advanced by one character row on the way out, and by two when B is 4, which is the gap in the middle of the printed list.