Page 1 of 1

ThinkPad 600X - key rollover on arrow keys?

Posted: Thu Jun 11, 2015 2:46 pm
by ElementalChaos
Hello all, first post here.

I have a 600X that was given to me by my uncle after it was found sitting in a dusty closet for the past decade. I want to set it up as a DOS/Win98 gaming rig but I'm running into a snag.

The problem is with the keyboard, particularly the arrow keys. When you're playing a game like an FPS or a top-down racer your fingers are on 3 of the arrow keys, left, up and right. When all three keys are pressed at any time, this apparently overflows the keyboard matrix, and the computer makes a beep and the system freezes for around 1/4 second.

This is a problem because if you're moving forward and turning left (up and left keys) and then you have to make a sudden turn (up and right) sometimes your finger doesn't let go of the left key before hitting right, for a split second. This causes the beep and interrupts the game.

I think this is an issue somewhere within Windows because it doesn't happen at all when you're playing a game in DOS mode. I tried Googling the issue and I saw some stuff about disabling the beep in Device Manager but that seems to be specific to WinXP or later, and I don't have any beep device in my Win98 Device Manager.

I've downloaded and installed pretty much all the 600X-specific drivers for Windows 98, I recall it happening before then as well.

Does anyone here know what I am talking about and has anyone ever found a way to fix it?

Re: ThinkPad 600X - key rollover on arrow keys?

Posted: Thu Jun 11, 2015 4:28 pm
by rkawakami
Welcome to thinkpads.com!

I think that for some of the newer systems, say the 3-digit T and X series (e.g. T400, X300), the BIOS has a setting for turning the beep off for invalid/illegal keyboard combinations. I don't recall seeing a similar feature inside the 600X's Easy-Setup.

Also, the problem may not be solved using Windows Device Manager. Something like this could have a hack/tweak that you do with the Registry and/or system.ini file, although at the moment I can't find anything to support this.

edit: Then again, it may be a hardware limitation that you can't get around. I found these:

http://www.gigahype.com/nkey-rollover-test-page/
http://blog.controlspace.org/2010/08/n- ... ow-to.html

Using my A31p and Windows XP, when both left and right arrow keys are held down, the up arrow does not register but the down arrow does.

Re: ThinkPad 600X - key rollover on arrow keys?

Posted: Thu Jun 11, 2015 7:50 pm
by automobus
Yes, I know what you are talking about. I think, to fix it would require very high skill modification of keyboard traces.

IBM ThinkPad keyboard does not provide NKRO. IBM ThinkPad keyboard (at least, Ttwenty line T20-T23, and X22-X24 model subset of Xtwenty line) only provides a complete 2-key rollover "2KRO", and limited handling three or more keys-at-once. I tested side-by-side with Model M, and I observed identical keypress-capability behaviour. I guess, IBM reused their Model M's electrical keyboard matrix layout in ThinkPad. (I am confident of my guess, but I am not going to disassemble and follow traces to prove it.)

2KRO is one reason why Model M is worse than Model F.
ThinkPad 2KRO is one reason why I no longer use Neo-Tastaturbelegung.
Thank you for starting this discussion. I am glad to get this little bit of earned knowledge out of my mind, and into a place where public can read it.

Re: ThinkPad 600X - key rollover on arrow keys?

Posted: Thu Jun 11, 2015 11:36 pm
by dr_st
Hi and welcome to the forum. :)

The beep can be turned off in some cases, as rkawakami pointed out. However, the underlying issue of limited key rollover is n inherent limitation of the keyboard, and as such, cannot be fixed without a major and difficult modification of the keyboard itself, as automobus pointed out. It is an issue on all Thinkpad laptop keyboards I tried and many other laptops as well, and to my knowledge no one has ever done such a mod.

If you want to play serious keyboard games on a laptop of any kind - plug in an external keyboard. That's the only reasonable solution.