Commit 695a5c49 authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(dos_set_keyboard): Test whether KEYB.COM is installed

for international keyboard support.
(dos_get_modifiers): If international keyboard support is NOT
required, make both Right and Left Alt key behave like Meta key.
parent 441c2ae4
...@@ -1137,6 +1137,7 @@ static struct keyboard_layout_list ...@@ -1137,6 +1137,7 @@ static struct keyboard_layout_list
static struct dos_keyboard_map *keyboard; static struct dos_keyboard_map *keyboard;
static int keyboard_map_all; static int keyboard_map_all;
static int international_keyboard;
int int
dos_set_keyboard (code, always) dos_set_keyboard (code, always)
...@@ -1144,6 +1145,13 @@ dos_set_keyboard (code, always) ...@@ -1144,6 +1145,13 @@ dos_set_keyboard (code, always)
int always; int always;
{ {
int i; int i;
union REGS regs;
/* See if Keyb.Com is installed (for international keyboard support). */
regs.x.ax = 0xad80;
int86 (0x2f, &regs, &regs);
if (regs.h.al == 0xff)
international_keyboard = 1;
/* Initialize to US settings, for countries that don't have their own. */ /* Initialize to US settings, for countries that don't have their own. */
keyboard = keyboard_layout_list[0].keyboard_map; keyboard = keyboard_layout_list[0].keyboard_map;
...@@ -1451,6 +1459,13 @@ dos_get_modifiers (keymask) ...@@ -1451,6 +1459,13 @@ dos_get_modifiers (keymask)
mask |= SUPER_P; mask |= SUPER_P;
modifiers |= super_modifier; modifiers |= super_modifier;
} }
else if (!international_keyboard)
{
/* If Keyb.Com is NOT installed, let Right Alt behave
like the Left Alt. */
mask &= ~ALT_GR_P;
mask |= ALT_P;
}
} }
if (regs.h.ah & 1) /* Left CTRL pressed ? */ if (regs.h.ah & 1) /* Left CTRL pressed ? */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment