TSR Fails to Pop Up Under MS-DOS Versions 4.0 and Later (81964)
The information in this article applies to:
- Microsoft MS-DOS operating system 4.0
- Microsoft MS-DOS operating system 4.01
- Microsoft MS-DOS operating system 5.0
- Microsoft MS-DOS operating system 5.0a
This article was previously published under Q81964 SYMPTOMS
Terminate-and-stay-resident (TSR) programs do not activate when their hot
keys are pressed under MS-DOS versions 4.0 and later on a system with an
enhanced keyboard.
CAUSE
One way the TSR programs wait to be activated is to hook the Int 16h ROM
BIOS keyboard service and wait for another program to call that function
and request keyboard input. The TSR then compares the key code returned by
the ROM BIOS service with the key code of its hot key.
With the introduction of the enhanced keyboard, two new ROM BIOS keyboard
services were added that supersede two of the original functions. MS-DOS
versions 4.0 and later are designed to recognize the enhanced keyboard and
use these two new functions instead of the old ones. This means that TSRs
that watch the ROM BIOS Int 16h service for calls to the original functions
will never be activated.
RESOLUTION
There are two ways to solve this problem:
- The TSR must be updated to watch all four of the ROM BIOS
keyboard read functions: 00h, 01h, 10h, and 11h.
-or-
- Add SWITCHES=/K or DEVICE=ANSI.SYS /K to your CONFIG.SYS file.
This option causes MS-DOS versions 4.0 and later to use the old
ROM BIOS keyboard read functions even when an enhanced keyboard
is detected. This will solve the problem while MS-DOS is waiting
for keyboard input, but other applications that call the new
enhanced keyboard ROM BIOS services will still disable the TSR.
For more information on how MS-DOS reads from the keyboard, query on
the following words in the Microsoft Knowledge Base:
Modification Type: | Major | Last Reviewed: | 10/14/2003 |
---|
Keywords: | KB81964 |
---|
|