Port-hpcsh archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

US keyboard (Was: Ericsson MC16 (SH3))



I finally fixed the annoying problem with certain chords not being
scanned properly.  Thanks to YAEGASHI Takeshi (of linux/sh3) who
pointed out that tweaking PDCR/PECR was necessary.  After his hint I
finally understood why Hitachi sample WinCE code was written the way
it's written and the fix was trivial.

Since I was hacking on the keyboard code anyway I took a look at the
US keymap problem as well.

On Tue, Dec 03, 2002 at 15:25:20 +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


For WinCE <Fn> is effectively == <AltGr>, so I think we should treat
it as such too.


So unless I'm mistaken, the real US map should be:

const u_int8_t jornada6x0_us_keytrans[] = {
/*      0    1    2    3    4    5    6    7 */       
/* 0 */ 59 , 45 , 31 , 17 , 3  , UNK, 29 , UNK, /* ctrl 29 */
/* 1 */ 60 , 46 , 32 , 18 , 4  , 42 , UNK, UNK, /* shift L 42 */
/* 2 */ 61 , 47 , 33 , 19 , 5  , UNK, 57 , UNK,
/* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 14 , 203,
/* 4 */ 65 , 51 , 37 , 23 , 9  , UNK, 53 , UNK,
/* 5 */ 64 , 50 , 36 , 22 , 8  , UNK, UNK, UNK,
/* 6 */ 62 , 48 , 34 , 20 , 6  , UNK, UNK, 56 , /* alt 56 */
/* 7 */ 63 , 49 , 35 , 21 , 7  , UNK, UNK, 184,
/* 8 */ 67 , UNK, 39 , 25 , 11 , 200, UNK, 208,
/* 9 */ 68 , 40 , UNK, 43 , 12 , 125, UNK, 205,
/*10 */ 87 , 28 , UNK, 14 , 13 , 54 , UNK, UNK, /* shift R 54 */
/*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
/*12 */ 1  , 44 , 30 , 16 , 2  , 15 , 221, UNK,
/*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
/*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
/*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
};


And it also needs a ws keymap that will do:

<Fn> + 1        ~
<Fn> + 2        `
<Fn> + P        {
<Fn> + \        }
<Fn> + ;        [
<Fn> + '        ]


Both US and "international" need:

<AltGr> + <Shift>       <CapsLock>
<AltGr> + <Ctrl>        <NumLock>       (and a nympad map)
<Alt>   + arrows        <PgUp> &c


And international one needs the mapping for its AltGr latin1 keys.


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



Home | Main Index | Thread Index | Old Index