This fixes a couple of defects found in using the library over the last couple months and enhances diagnostics.
Bugs fixed
- The menu and print screen keys were not properly translated
- Holding down shift and the arrow keys resulted in a decoding error in the PS2-to-USB translator (but no actual harm done to the translation)
- One one keyboard, as the computer awoke from sleep a power dip on the USB line would cause a momentary glitch in the clock line, which would cause the host to ask for a re-send, which would cause the last key typed to be repeated. The error recovery logic now doesn't ask for a re-send unless a few clock signals were received. On a circuitry level, I added a 10uF capacitor across power & ground, which reduced the frequency of the event.
Diagnostic Enhancements
- Records time deltas between events
- Records the last error event in a separate buffer
- There's a rudimentary diagnostic parser, currently here: https://stevebenz.github.io/