Microsoft Natural Keyboard 4000 (wired) wrote:THE QUICK BROWN FO JUMPS OVER THE LAZY DOGS BACK
As ts-soft reported, the X key doesn't work.
Kaeru Gaman wrote:the keys pressed have to be encoded some way to be sent via the port where the keyboard communicated with the mainboard.
this port has a limited width.
to encode a keyboard with over 100 keys in a way that each keypress can occur at the same time,
the port needs a width of 128bit (1bit for every key)
Nice try but not quite correct.
If the keyboard port was parallel this would be logical explanation but the keyboard port isn't parallel, it serial so there's really no limitation on how many bits you have to encode a key with.
Each key on the keyboard can send one of two codes, one for when the key is pressed and one for when it is released. It's the job of the keyboard controller to keep track of when keys are pressed and released.
The problem is that most keyboard controllers don't have enough registers so that each key gets its own register. So once the keyboard controller's registers fill up with keys that are currently pressed, it stops recording key strokes.
When you release a key that's in a register showing that key as pressed, the register is cleared so its available to hold another key so the controller starts recording key strokes again.
This limitation isn't the reason that some keys don't work when both shift keys are pressed. This problem comes from how the key switches that make up the keyboard are wired together. Usually keys are wired on something like a 10 x 10 grid where each key is at an intersection on the grid.
Now if you have the left shift key at 1,10 and the right shift key at 10,1 that's fine because when you press one shift key while holding the other shift key down, a change can still be sensed that the keyboard controller can record. But if you now press a key located at either 1,1 or 10,10 the controller will not see a change because those lines are already active because of the two shift keys being pressed, so it won't record the key stroke.
This design efficient and under most situations it works. It only becomes a problem when playing games because you frequently need to have several keys down at once. That's why some companies have started selling gaming keyboards and/or game controllers. These keyboards and controllers use a different wiring methodology for the keys themselves and use a controller that can track many more simultaneous key presses than standard controllers.