check for and retrieve a frame from the buffer simultaneously
remove unnecessary include directive
remove unnecessary define directive
respond to USB HID requests
simplify handling of USB scan codes
rearrange fields
only apply modifiers if the scan code represents a modifier key