Q33214 Application Requests to KBDXLAT Are Not Performed Correctly

OS/2 Software Development Kit 1.00 1.10 OS/2

Question:

I am writing an application that takes input from a terminal in the form of make and break codes as per the IBM AT technical reference manual. I would like to use KBDXLAT to convert these to ASCII characters. Are these make/break codes the same as the scan codes KBDXLAT expects to receive? Is the application responsible for keeping track of the make/break on the SHIFT key and setting the SHIFT key status, or will KBDXLAT handle the SHIFT key status itself? This question also applies to the ALT, CTRL, etc. keys.

Response:

The make/break codes in the IBM technical reference manual are indeed what KBDXLAT expects for input. KBDXLAT will also keep track of SHIFT-state keys for you. However, in researching this question, we have discovered a problem in KBDXLAT that is present in both Version 1.00 and Version 1.10 of the Microsoft OS/2 SDK. Application requests to KBDXLAT are not being performed independent of the hardware state as they should be; in particular, the XHotKeyShift field in the KBD driver can affect the outcome of application translations, returning inconsistent results to the KBDXLAT caller. This is why KBDXLAT did not appear to be working properly for you.

Microsoft has confirmed this to be a problem in Versions 1.00 and 1.10. We are researching this problem and will post new information as it becomes available.

Keywords: buglist1.00 buglist1.10 Updated 88/08/24 05:22