move keyboard key processing functionality
remove unnecessary include directive
clarify keyboard state tracking function name
merge keyboard report and state data structures
add function to read the next scan code directly