diff options
author | rgrimes <rgrimes@FreeBSD.org> | 1993-09-09 00:32:25 +0000 |
---|---|---|
committer | rgrimes <rgrimes@FreeBSD.org> | 1993-09-09 00:32:25 +0000 |
commit | 6117d4bb0cb167a0613ba5b7bc54979441a193c5 (patch) | |
tree | 504598f90091dc0af76e278431110f581ec6ff77 /share/man/man4/keyboard.4 | |
parent | 6aac10242b76f13528158bf171c13fd3bbe919e0 (diff) | |
download | FreeBSD-src-6117d4bb0cb167a0613ba5b7bc54979441a193c5.zip FreeBSD-src-6117d4bb0cb167a0613ba5b7bc54979441a193c5.tar.gz |
From: baukno@login.dkuug.dk (S|ren Schmidt)
Subject: Patches to syscons/wd
Man pages for keyboard & screen (using syscons)
Diffstat (limited to 'share/man/man4/keyboard.4')
-rw-r--r-- | share/man/man4/keyboard.4 | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/share/man/man4/keyboard.4 b/share/man/man4/keyboard.4 new file mode 100644 index 0000000..0a8b0d5 --- /dev/null +++ b/share/man/man4/keyboard.4 @@ -0,0 +1,134 @@ +.Dd April 7, 1993 +.Dt KEYBOARD 4 +.Os FreeBSD +.Sh NAME +.Nm keyboard +.Nd pc keyboard interface +.Sh DESCRIPTION + +The PC keyboard is use as the console character input device. The keyboard +is owned by the current virtual console. +To switch between the virtual consoles use the sequence +.Ar ALT+Fn +, which means hold down ALT and press one of the function keys. The +virtual console with the same number as the function key is then +selected as the current virtual console, and given exclusive use of +the keyboard and display. + +The console allows entering values that are not physically +present on the keyboard via a special keysequence. +To use this facility press and hold down ALT, +then enter a decimal number from 0-255 via the numerical keypad, then +release ALT. The entered value is then used as the ASCII value for one +character. This way it is possible to enter any ASCII value. +The keyboard is configurable to suit the individual user and the different +national layout. + +The keys on the keyboard can have any of the following functions: + + Normal key - Enter the ASCII value associated with the key. + + Function key - Enter a string of ASCII values. + + Switch Key - Switch virtual console. + + Modifier Key - Change the meaning of another key. + + +The keyboard is seen as a number of keys numbered from 1 to n. This +number is often referred to as the "scancode" for a given key. The number +of the key is transmitted as an 8 bit char with bit 7 as 0 when a key is +pressed, and the number with bit 7 as 1 when released. This makes it +possible to make the mapping of the keys fully configurable. + +The meaning of every key is programmable via the PIO_KEYMAP ioctl call, that +takes a structure keymap_t as argument. The layout of this structure is as +follows: +.Pp +.Bd -literal -offset indent + struct keymap { + u_short n_keys; + struct key_t { + u_char map[NUM_STATES]; + u_char spcl; + u_char flgs; + } key[NUM_KEYS]; + }; +.Ed +.Pp +The field n_keys tells the system how many keydefinitions (scancodes) +follows. Each scancode is then specified in the key_t substructure. + +Each scancode can be translated to any of 8 different values, depending +on the shift, control, and alt state. These eight possibilities is +represented by the map array, as shown below: + + alt + scan cntrl alt alt cntrl + code base shift cntrl shift alt shift cntrl shift + map[n] 0 1 2 3 4 5 6 7 + ---- ------------------------------------------------------ + 0x1E 'a' 'A' 0x01 0x01 'a' 'A' 0x01 0x01 + +This is the default mapping for the key labelled 'A' wich normally has +scancode 0x1E. The eight states is as shown, giving the 'A' key its +normal behavior. +The spcl field is used to give the key "special" treatment, and is +interpreted as follows. +Each bit correspond to one of the states above. If the bit is 0 the +key emits the number defined in the corresponding map[] entry. +If the bit is 1 the key is "special". This means it does not emit +anything, instead it changes the "state". That means it is a shift, +control, alt, lock, switch-screen, function-key or no-op key. +The bitmap is backwards ie. 7 for base, 6 for shift etc. + +The flgs field defines if the key should react on caps-lock (1), +num-lock (2), both (3) or ignore both (0). + +The mapkbd utility is used to load such a description into/outof +the kernel at runtime. This make it possible to change the key +assignments at runtime, or more important to get (GIO_KEYMAP ioctl) +the exact key meanings from the kernel (fx. used by the X server). + +The function keys can be programmed using the PIO_STRMAP ioctl call. + +This ioctl takes a argument of the type fkeyarg_t: +.Bd -literal -offset indent + struct fkeyarg { + u_short keynum; + char keydef[MAXFK]; + char flen; + }; +.Ed +.Pp +The field keynum defines which function key that is programmed. +The array keydef should contain the new string to be used (MAXFK long), +and the length should be entered in flen. + +The GIO_STRMAP ioctl call works in a semilar manner, execpt it returns +the current setting of keynum. + +The function keys are numbered like this: +.Bd -literal -offset indent + F1-F12 key 1 - 12 + Shift F1-F12 key 13 - 24 + Ctrl F1-F12 key 25 - 36 + Ctrl+shift F1-F12 key 37 - 48 + + Home key 49 + Up arrow key 50 + Page Up key 51 + (keypad) - key 52 + Left arrow key 53 + (keypad) 5 key 54 + Right arrow key 55 + (keypad) + key 56 + End key 57 + Down arrow key 58 + Page down key 59 + Insert key 60 +.Ed +.Pp +.Sh AUTHOR + S_ren Schmidt + Email: (baukno@login.dkuug.dk -or- sos@kmd-ac.dk) |