Neo wrote:
...the "Pause Break" key gives me only a makecode of "0xE0 0x45 0xE0 0xC5"...
Take a look at that more carefully -- that's a make code (E0 45) and a break code (E0 C5) for Num Lock.
Quote:
Does anyone know how this is happening?
There are numerous keys on extended keyboards that simulate what were multi-keystroke sequences on basic keyboards (which, among other things, don't have Print Screen keys, it's a modified key from the numeric keypad).
Quote:
Also does anyone know what the "keyboard internal numlock" refers to.
The state within the keyboard that determines what sequence of keystrokes it will simulate when keys like Home (which is keypad '7' on a basic keyboard) are pressed.
Consider: you have numlock on, and you press the Home key. Since home is keypad 7 with the numlock off, the keyboard must send a sequence to toggle off the numlock, send the 7, then toggle on the numlock again. If your numlock was already off, it obviously does NOT want to send those extra numlock toggle sequences. Therefore, the keyboard needs to internally track the state of numlock if it's going to send sensible scancodes.
You were under the misimpression that each key on the keyboard had it's own scancode, weren't you? Bwahahahaha! Welcome to the hell that is the reality of keyboards, where backwards compatibility to the first IBM PC ensures a single keypress can result in a positive flurry of simulated keystrokes. The codes are generated in a way that allows modern programs to distinguish what's really going on, but original IBM PC programs get what they expect.