3

... on a Unicomp Ultra Classic Buckling Spring keyboard in particular.

I recently bought one of these IBM Model M revivals. A great keyboard with one slight flaw: there are no Power, Sleep, Wake or volume control or screen brightness control keys and another flaw introduced by Microsoft: they made us to be used to a keyboard layout like:

  Space    AltGr  Ctrl

while ISO/IEC 9995-2 defines the following:

  Space    AltGr  Ctrl

The Unicomp keyboard uses the latter and with many years of using a different (MS) layout this is uncomfortable, of course.

I tried Microsoft Keyboard Layout Creator (MSKLC) 1.4, but it refuses to work properly on my Windows 7 Professional 64-Bit: it doesn't display the layout after FileLoad Existing Keyboard...:

Empty MSKLC

See also Any ideas why Microsoft Keyboard Layout Creator 1.4 refuses to work properly on my Windows 7 Professional 64-Bit?.

1 Answers1

4

Since Microsoft Keyboard Layout Creator (MSKLC) 1.4 fails to work properly you can use the following low-level solution that is derived from information on (German) WinFAQ.

Create the following two .reg files with a text editor of your choice and execute them alternately to load the given keys/values into your Windows' Registry:

HKLM^SYS^CCS^CTRL^Kbd_Layout^Scancode_Map#Swap_R-Win_R-Alt.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancode Map"=hex:
00,00,00,00,
00,00,00,00,
03,00,00,00,
38,e0,5c,e0,
5c,e0,38,e0,
00,00,00,00

HKLM^SYS^CCS^CTRL^Kbd_Layout^Scancode_Map#Reset.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancode Map"=hex:
00,00,00,00,
00,00,00,00,
01,00,00,00,
00,00,00,00

Note the reversed order of LSB (least significant byte) and MSB (most significant byte) within the 2 bytes of a scancode, a.k.a. little-endian. Note also the backslash character (\) for line continuation.

You have to restart Windows/reboot your machine for a change of mappings to take effect.

Technical Background Info

Scancode Map entry:

Bytes Size Values Description
0 … 3 4 00 00 00 00 Header: Version info, always all 0
4 … 7 4 00 00 00 00 Header: Flags, always all 0
8 … 11 4 LM¹HM²00 00 Header: Mappings count (c) + 1 (for the trailer)
in little-endian byte order, i.e. at least 01 00 00 00
12 … s c × 4 LN¹HN²LO HO New / Old scancodes
in little-endian byte order (s = 11 + c × 4)
t … t+3 4 00 00 00 00 Trailer (t = s + 1 = 12 + c × 4)

¹ L ... low byte, least significant byte (LSB)
² H ... high byte, most significant byte (MSB)

See the following pages/documents for scancodes:

UPDATE

MSKBLC works with Windows' DPI Settings of 100 % only (see Sam Arutuk's answer to my question Any ideas why Microsoft Keyboard Layout Creator 1.4 refuses to work properly on my Windows 7 Professional 64-Bit?):

MSKBLC...working with 100% DPI

Apparently the and keys can't be remapped.