_ _ ____ _ _ ___ ____ ____ ____ ___ ____ ____ ___ _ _ ___
|_/ |___ \_/ |__] | | |__| |__/ | \ [__ |___ | | | |__]
| \_ |___ | |__] |__| | | | \ |__/ ___] |___ | |__| |
by Shawn Hargreaves
The Allegro keyboard module contains a default set of mapping tables for the
US keyboard layout. Other keyboard types are supported by loading an
alternate set of mappings from an external configuration file (either a
separate file or a member object in keyboard.dat), which is specified by
setting the "keyboard=" parameter in allegro.cfg. The end user should simply
be able to place a copy of keyboard.dat into the same directory as their
program, and then select whichever of the preset layouts they would like to
use. If there is no mapping table for your keyboard type, though, you will
have to use this program to create one. Having done so, please send me a
copy so I can include it in future versions of Allegro!
When you load the keyconf utility, the standard US mappings will be
selected. If you want to start from one of the other layouts, use the
grabber to export the mapping you want from keyboard.dat into a .cfg file,
and then load this file into keyconf.
There are several mapping tables, listing what Unicode characters correspond
to each hardware scancode for various states of the ctrl/shift/alt keys.
Select each table in turn from the Edit menu, double-click on the key that
you want to alter, and then select the Unicode character that it should be
mapped onto. The top half of the character selection screen lists characters
from the current page (low byte of the 16 bit Unicode value), while the
bottom half allows you to switch to a different page (high byte of the 16
bit Unicode value). If you map a key to 0xFFFF, the current shift state will
be used in place of any fixed character code, which is useful for things
like the arrows and function keys. Press ESC to quit back to the previous
screen without altering the character.
The different mapping tables are:
Normal
The regular set of ASCII characters for use when no modifier keys are
pressed. This table must be set correctly!
Capslock
Uppercase ASCII characters for use when the capslock function is engaged.
This table must be set correctly!
Shifted
Uppercase ASCII characters and alternate versions of the numeric and
punctuation keys, for use when the shift key is held down. This table
must be set correctly!
Control
Control codes, for use when the control key is held down. This should
contain the numeric indexes of the ASCII keys, eg. A=1, B=2, C=3, etc.
You will not normally need to edit this table, unless some of the
alphabetic characters have been mapped onto different keys.
Alt-Gr
Alternate ASCII codes for use when the Alt-Gr key is held down. Any keys
that don't behave specially in this context should be mapped to zero.
Note that, by default, lowercase and uppercase letters are not
differentiated by keyconf when Alt-Gr is being held down. If you do want
to specify two different mappings for lowercase and uppercase letters,
run keyconf with the option --split-altgr from the command line.
Accent*
Lists of accented ASCII characters. There are four accent escape keys,
which can be selected from the Misc menu (set them to zero if your layout
has no accent keys). Each of the accent keys has an activator flags,
which determines, what additional key must be pressed with the accent
key to enable the accent. The activator key value can be 0, which means,
that no other key has to be pressed; it can be 1 for SHIFT, 2 for CONTROL
or 3 for ALT. The difference from the previous version of Allegro is,
that you can use one key for two accents or for one accent and a normal
ASCII (UNICODE) character, or one key for all four accents, or whatever
you want. This gives a total of four different accents, which are applied
on top of whatever character is pressed immediately after the accent. These
eight tables list the mapping codes for all accent keys in normal
(lowercase letter typed after the accent) and caps (uppercase letter typed
after the accent) forms. Any characters that don't support the accent
should be mapped onto zero.
When everything is working properly, save your new layout into a .cfg file.
To use the new mapping, set the "keyboard=" parameter in allegro.cfg to the
name of this .cfg file (just the basename is enough, without the .cfg
extension). You can also use the grabber to add your new layout to the
keyboard.dat file, after which you will be able to delete the original file
(Allegro will automatically look in keyboard.dat if it doesn't find the
mapping in a separate file). Then fire up your favourite email program, and
send me a copy of the new layout...
If you create a keyconf.dat file containing an object named BASE_FONT, the
keyconf program will use that instead of the default font. This can be
useful when making a key mapping for character sets that aren't included in
the default font.