Subject: Re: US keyboard (Was: Ericsson MC16 (SH3))
To: None <port-hpcsh@netbsd.org>
From: Valeriy E. Ushakov <uwe@ptc.spbu.ru>
List: port-hpcsh
Date: 12/29/2002 02:12:29
--wac7ysb48OaltWcw
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Wed, Dec 18, 2002 at 08:12:58 +0300, Valeriy E. Ushakov wrote:

> > On Tue, Dec 03, 2002 at 13:38:58 +0200, Vesa A Norrman wrote:
> 
> > > My 680 us keymap seems to be wrong.
> > 
> > Mea culpa.  The "US" keymap is probably an "International" one.
> > Actual US keyboard lacks several keys, as I learnt the hardway
> > recently when it turned out that the 16MB expansion chip I bought had
> > the US driver in the RAM - suddenly under WinCE I lost my brackets
> > (separate keys on intl keyboard, Fn-accessible only on US).
> > 
> > Some pictures of US and intl keyboard can be found at 
> > http://snark.ptc.spbu.ru/~uwe/jornada/
> 
> So from pictures and from the behavior of my WinCE (that has identity
> crisis after ROM upgrade and thinks it has US keyboard) the
> differences of international vs. us seem to be:
> 
> 
> Intl    US      phys   scancode row/   scancode
> key     key     row     (intl)  /col    (us)
> -----------------------------------------------
> ` ~     Fn              41      7/7     184(?)          treat as AltGr?
> AltGr   / ?             184     4/6     53
> 
> / ?     missing zxcv    53      8/1     UNK
> 
> \ |     missing asdf    43      10/2    UNK
> 
> [ {     \ |     qwerty  26      9/3     43
> ] }     missing qwerty  27      9/2     UNK
> 
[...]
> 
> And it also needs a ws keymap that will do:
> 
> <Fn> + 1	~
[...]
> 
> And international one needs the mapping for its AltGr latin1 keys.

I have committed these changes.  Now selecting US keyboard should give
you US keybaord.   To access the few missing keys use this keymap:

----8<--------8<----
# HP Jornada 680 - US keymap
# keycode N = [cmd] plain [shift [altgr [shift-altgr]]]

keycode   2 = 1 exclam asciitilde
keycode   3 = 2 at grave
keycode   4 = 3 numbersign sterling
# XXX: no KS_euro keysym for Fn+4 => euro

keycode  25 = p P braceleft
keycode  39 = semicolon colon bracketleft
keycode  40 = apostrophe quotedbl bracketright
keycode  43 = backslash bar braceright

# <fn> key
keycode 184 = Mode_switch Multi_key
----8<--------8<----

What hpcboot calls "Hungarian" map will now give you an "internationa:
keyboard.  The hungarian map was a proper subset my international map,
so I dropped it altogether.

BTW, is there really such a thing as Hungarian or German jornada
kaymap?  I mean, do they differ from "international" on the *primary*
layer?  I'm attaching a complete "international" layout description,
can people with non-US models check the layout of their keyboards
against it, please.

I'd say layouts that does not differ from wither US or international
on the primary layer should not be listed in hpcboot and handled with
wsconsctl (mapfile entry in /etc/wscons.conf).

SY, Uwe
-- 
uwe@ptc.spbu.ru                         |       Zu Grunde kommen
http://www.ptc.spbu.ru/~uwe/            |       Ist zu Grunde gehen

--wac7ysb48OaltWcw
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="map-intl.txt"

# HP Jornada 680 - International keymap
# keycode N = [cmd] plain [shift [altgr [shift-altgr]]]

keycode   1 = Cmd_Debugger Escape
keycode   2 = 1 exclam exclamdown
keycode   3 = 2 at twosuperior
keycode   4 = 3 numbersign threesuperior
keycode   5 = 4 dollar currency
# XXX: no KS_euro keysym for AltGr+5 => euro
keycode   6 = 5 percent
keycode   7 = 6 asciicircum onequarter
keycode   8 = 7 ampersand onehalf
keycode   9 = 8 asterisk threequarters
# XXX: AltGr+9 => quote single left (not in latin1, no keysym)
keycode  10 = 9 parenleft
# XXX: AltGr+0 => quote single right (not in latin1, no keysym)
keycode  11 = 0 parenright
keycode  12 = minus underscore yen
keycode  13 = equal plus multiply
# NB: "<=" key, map to BackSpace, if you prefer
keycode  14 = Cmd_ResetEmul Delete
keycode  15 = Tab
keycode  16 = q Q dead_grave
keycode  17 = w W dead_tilde
keycode  18 = e E eacute Eacute
keycode  19 = r R registered
keycode  20 = t T thorn THORN
keycode  21 = y Y udiaeresis Udiaeresis
keycode  22 = u U uacute Uacute
keycode  23 = i I iacute Iacute
keycode  24 = o O oacute Oacute
keycode  25 = p P dead_acute
keycode  26 = bracketleft braceleft aring Aring
keycode  27 = bracketright braceright dead_diaeresis
keycode  28 = Return
keycode  29 = Cmd1 Control_L
keycode  30 = a A aacute Aacute
keycode  31 = s S ssharp
keycode  32 = d D eth ETH
keycode  33 = f F guillemotleft
keycode  34 = g G guillemotright
keycode  35 = h H dead_circumflex
keycode  36 = j J dead_abovering
keycode  37 = k K paragraph
keycode  38 = l L oslash Ooblique
keycode  39 = semicolon colon odiaeresis Odiaeresis
keycode  40 = apostrophe quotedbl adiaeresis Adiaeresis
keycode  41 = grave asciitilde division
keycode  42 = Shift_L
keycode  43 = backslash bar notsign
keycode  44 = z Z sterling
keycode  45 = x X cent
keycode  46 = c C copyright
keycode  47 = v V section
keycode  48 = b B plusminus
keycode  49 = n N ntilde Ntilde
keycode  50 = m M mu
keycode  51 = comma less ccedilla Ccedilla
keycode  52 = period greater ae AE
keycode  53 = slash question questiondown
keycode  54 = Shift_R
keycode  56 = Cmd2 Alt_L
keycode  57 = space
keycode  59 = Cmd_Screen0 f1 F1
keycode  60 = Cmd_Screen1 f2 F2
keycode  61 = Cmd_Screen2 f3 F3
keycode  62 = Cmd_Screen3 f4 F4
keycode  63 = Cmd_Screen4 f5 F5
keycode  64 = Cmd_Screen5 f6 F6
keycode  65 = Cmd_Screen6 f7 F7
keycode  66 = Cmd_Screen7 f8 F8
keycode  67 = Cmd_Screen8 f9 F9
keycode  68 = Cmd_Screen9 f10 F10
keycode  87 = f11 F11
keycode 184 = Mode_switch Multi_key
# XXX: use wskbd doesn't do Alt chords, use AltGr instead???
# Alt+Up -> Prior
# Alt+Left -> Home
# Alt+Right -> End
# Alt+Down -> Next
keycode 200 = Up
keycode 203 = Left
keycode 205 = Right
keycode 208 = Down
keycode 211 = Delete
keycode 219 = Meta_L

--wac7ysb48OaltWcw--