A minor (and late) addition to Chromatix otherwise complete answer:
Pause
as well as Break
are intended to work as 'interrupt' keys. This implies a few differences from any other key:
- Any press is supposed to be reported (*1) right away
- Any press should be responded to (*2) as soon as possible
- They should not be repeated under any circumstances.
Reporting of a key can happen, depending on keyboard driver strategy on key press or key release, sending both at once will make sure it gets reported no matter what strategy is used.
Responding can happen, depending on driver/OS/User strategy on key press or key release, sending both at once will make sure it gets handled ASAP no matter what strategy is used.
Eventually even more important, by sending the release right after press, no typematic (key repeating) functionality gets a chance to multiply its 'interrupt message' if a user presses either key for a prolonged time. Just imagine how a program, using Pause
to stop and restart scrolling, would start to act...
Bottom line: This is all about 'hacking' the keyboard driver strategy from 'below'
*1 - To User/OS level, i.e. past any driver
*2 - By User/OS level, i.e. past any driver