Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 17:54 19 Apr 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Foreign language keyboards for the CMM2

     Page 1 of 2    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8567
Posted: 12:08pm 07 Jun 2020
Copy link to clipboard 
Print this post

If you have a foreign language USB keyboard and a CMM2 then I'm prepared to try and implement the key mapping and code changes needed to get a system that works for you. I can't do this in a vacuum as I need code to be tested.

So, if you are interested in helping, post on this thread when you have:
1: a working CMM2
2: the CMM2 connected to your keyboard with the keyboard enumerating and responding
3: keys being interpreted wrongly
4: time and energy to properly test

The code will be included in beta releases for V5.05.03 which I will make available as I work with you.

I will not and cannot attempt to implement different keyboards without help. USB keyboards are very much different to PS2!
 
SWA-Guy
Newbie

Joined: 01/02/2019
Location: Germany
Posts: 24
Posted: 04:38pm 07 Jun 2020
Copy link to clipboard 
Print this post

Hello Peter,

I'm ready for testing a german keyboard layout. I've a running CMM2 and a lot of usb keyboards with a german layout. I'll start if you publish the beta release.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8567
Posted: 05:25pm 07 Jun 2020
Copy link to clipboard 
Print this post

  Quote   I'll start if you publish the beta release.


Not so quick. I need some work from you first. Same applies to goc30 and Decoy if they want to move things forward for their variants.

Below is the keyboard map for a standard UK keyboard. The numbers on the left are the ASCII code generated when the key with the description given is pressed first without the shift key and then with.

e.g the key labelled USB_HID_KEYBOARD_KEYPAD_KEYBOARD_1_AND_EXCLAMATION_POINT  generates 49 without the shift key (ascii for 1) and 33 with the shift key (ascii for the exclamation symbol).

I've also attached a picture of the UK keyboard as reference. I need you to produce an equivalent list for the German keyboard. You can assume that keys in the same physical location will produce the same internal USB code - in my example hex 1E. This is the first thing we need to prove.

For keys that have no ascii representation (i.e. an ascii code below 128), for example ü, please set the code to 0

In addition I need a separate list of standard ASCII keys like [ { ] and } which on a German keyboard need some special additional keypress - e.g. Alt Gr or Alt GR + SHIFT

Please produce this in roughly the same format e.g. (example deliberately incorrect)

44,55 //German open square bracket, German open curly bracket = 0x33 + Alt GR


Note where my table has codes above 128 (hex 80) these are special codes used internally by the CMM2 firmware and shouldn't be changed

I can then set this up as an additional table for the German keyboard. When you have something please PM me with your direct email address and then I can send you the firmware direct without having to post multiple tries.




0,0,//    USB_HID_KEYBOARD_KEYPAD_RESERVED_NO_EVENT_INDICATED                      = 0x00,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_ERROR_ROLL_OVER                         = 0x01,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_POST_FAIL                               = 0x02,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_ERROR_UNDEFINED                         = 0x03,
97,65,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_A                                       = 0x04,
98,66,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_B                                       = 0x05,
99,67,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_C                                       = 0x06,
100,68,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_D                                       = 0x07,
101,69,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_E                                       = 0x08,
102,70,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F                                       = 0x09,
103,71,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_G                                       = 0x0A,
104,72,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_H                                       = 0x0B,
105,73,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_I                                       = 0x0C,
106,74,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_J                                       = 0x0D,
107,75,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_K                                       = 0x0E,
108,76,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_L                                       = 0x0F,
109,77,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_M                                       = 0x10,
110,78,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_N                                       = 0x11,
111,79,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_O                                       = 0x12,
112,80,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_P                                       = 0x13,
113,81,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Q                                       = 0x14,
114,82,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_R                                       = 0x15,
115,83,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_S                                       = 0x16,
116,84,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_T                                       = 0x17,
117,85,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_U                                       = 0x18,
118,86,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_V                                       = 0x19,
119,87,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_W                                       = 0x1A,
120,88,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_X                                       = 0x1B,
121,89,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Y                                       = 0x1C,
122,90,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Z                                       = 0x1D,
49,33,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_1_AND_EXCLAMATION_POINT                 = 0x1E,
50,34,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_2_AND_AT                                = 0x1F,  QUOTE UK!!!!
51,35,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_3_AND_HASH                              = 0x20,
52,36,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_4_AND_DOLLAR                            = 0x21,
53,37,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_5_AND_PERCENT                           = 0x22,
54,94,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_6_AND_CARROT                            = 0x23,
55,38,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_7_AND_AMPERSAND                         = 0x24,
56,42,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_8_AND_ASTERISK                          = 0x25,
57,40,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_9_AND_OPEN_PARENTHESIS                  = 0x26,
48,41,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_0_AND_CLOSE_PARENTHESIS                 = 0x27,
10,10,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_RETURN_ENTER                            = 0x28,
27,27,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_ESCAPE                                  = 0x29,
8,8,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_DELETE                                  = 0x2A,
9,9,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_TAB                                     = 0x2B,
32,32,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_SPACEBAR                                = 0x2C,
45,95,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_MINUS_AND_UNDERSCORE                    = 0x2D,
61,43,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_EQUAL_AND_PLUS                          = 0x2E,
91,123,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_OPEN_BRACKET_AND_OPEN_CURLY_BRACE       = 0x2F,
93,125,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_CLOSE_BRACKET_AND_CLOSE_CURLY_BRACE     = 0x30,
92,124,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_BACK_SLASH_AND_PIPE                     = 0x31,
35,126,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_HASH_AND_TILDE                   = 0x32,
59,58,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_SEMICOLON_AND_COLON                     = 0x33,
39,64,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_APOSTROPHE_AND_QUOTE                    = 0x34, @ UK///
96,126,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_GRAVE_ACCENT_AND_TILDE                  = 0x35,
44,60,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_COMMA_AND_LESS_THAN                     = 0x36,
46,62,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PERIOD_AND_GREATER_THAN                 = 0x37,
47,63,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_FORWARD_SLASH_AND_QUESTION_MARK         = 0x38,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_CAPS_LOCK                               = 0x39,
0x91,0x91,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F1                                      = 0x3A,
0x92,0x92,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F2                                      = 0x3B,
0x93,0x93,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F3                                      = 0x3C,
0x94,0x94,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F4                                      = 0x3D,
0x95,0x95,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F5                                      = 0x3E,
0x96,0x96,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F6                                      = 0x3F,
0x97,0x97,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F7                                      = 0x40,
0x98,0x98,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F8                                      = 0x41,
0x99,0x99,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F9                                      = 0x42,
0x9a,0x9a,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F10                                     = 0x43,
0x9b,0x9b,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F11                                     = 0x44,
0x9c,0x9c,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F12                                     = 0x45,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PRINT_SCREEN                            = 0x46,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_SCROLL_LOCK                             = 0x47,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PAUSE                                   = 0x48,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_INSERT                                  = 0x49,
0x86,0x86,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_HOME                                    = 0x4A,
0x88,0x88,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PAGE_UP                                 = 0x4B,
0x7f,0x7f,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_DELETE_FORWARD                          = 0x4C,
0x87,0x87,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_END                                     = 0x4D,
0x89,0x89,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PAGE_DOWN                               = 0x4E,
0x83,0x83,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_RIGHT_ARROW                             = 0x4F,
0x82,0x82,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_LEFT_ARROW                              = 0x50,
0x81,0x81,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_DOWN_ARROW                              = 0x51,
0x80,0x80,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_UP_ARROW                                = 0x52,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_NUM_LOCK_AND_CLEAR                        = 0x53,
47,47,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_BACK_SLASH                                = 0x54,
42,42,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_ASTERISK                                  = 0x55,
45,45,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_MINUS                                     = 0x56,
43,43,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_PLUS                                      = 0x57,
10,10,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_ENTER                                     = 0x58,
49,0x87,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_1_AND_END                                 = 0x59,
50,0x81,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_2_AND_DOWN_ARROW                          = 0x5A,
51,0x89,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_3_AND_PAGE_DOWN                           = 0x5B,
52,0x82,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_4_AND_LEFT_ARROW                          = 0x5C,
53,53,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_5                                         = 0x5D,
54,0x83,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_6_AND_RIGHT_ARROW                         = 0x5E,
55,0x86,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_7_AND_HOME                                = 0x5F,
56,0x80,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_8_AND_UP_ARROW                            = 0x60,
57,0x88,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_9_AND_PAGE_UP                             = 0x61,
48,0x84,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_0_AND_INSERT                              = 0x62,
46,0x7f,    //USB_HID_KEYBOARD_KEYPAD_KEYPAD_PERIOD_AND_DELETE                         = 0x63,
92,124    //USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_FORWARD_SLASH_AND_PIPE           = 0x64,

Edited 2020-06-08 03:32 by matherp
 
SWA-Guy
Newbie

Joined: 01/02/2019
Location: Germany
Posts: 24
Posted: 06:14pm 07 Jun 2020
Copy link to clipboard 
Print this post

  Quote  Not so quick. I need some work from you first. Same applies to goc30 and Decoy if they want to move things forward for their variants.


OK, tomorrow I try to understand exactly your description. I hope I do it.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8567
Posted: 06:42pm 07 Jun 2020
Copy link to clipboard 
Print this post

Perhaps a better example will help:

For UK

119,87,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_W                                       = 0x1A,
120,88,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_X                                       = 0x1B,
121,89,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Y                                       = 0x1C,
122,90,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Z                                       = 0x1D,


For Germany Z and Y are transposed so:

119,87,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_W                                       = 0x1A,
120,88,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_X                                       = 0x1B,
122,90,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Z                                       = 0x1C,
121,89,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Y                                       = 0x1D,


That is the easy one, the various punctuation character will require some careful slog work. Don't worry if it isn't perfect first time. As long as the table structure is intact we can iterate to get it perfect.

AFAIK the relevant Alt Gr character are just {[}]@. I've coded for that already and tested implementing select OPTION USBKEYBOARD DE and that is all working.
Edited 2020-06-08 04:45 by matherp
 
goc30

Guru

Joined: 12/04/2017
Location: France
Posts: 425
Posted: 09:26am 08 Jun 2020
Copy link to clipboard 
Print this post

Hi Peter

no pb for me.
I wait for receive my Stm card
but I can begin to make an converter file.

I have an old qwerty keyboard, so I could compare on PC, the codes sent according to the type of keyboard

what do you want?, an external file?, or same list as you give here?, or a list of data (like define fonts) to put in prog?
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8567
Posted: 11:13am 08 Jun 2020
Copy link to clipboard 
Print this post

  Quote  or same list as you give here?,


That would be perfect + a list of ALT codes. I think you have a bit more work to do as that SWA-Guy all your numbers are upper case
 
SWA-Guy
Newbie

Joined: 01/02/2019
Location: Germany
Posts: 24
Posted: 03:11pm 08 Jun 2020
Copy link to clipboard 
Print this post

Hello Peter,

here the geman keyboard layout. I hope I find all with the correct code.
For information I added the special german characters on the rigt side with the ascii code above 128.


0,0,//    USB_HID_KEYBOARD_KEYPAD_RESERVED_NO_EVENT_INDICATED                      = 0x00,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_ERROR_ROLL_OVER                         = 0x01,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_POST_FAIL                               = 0x02,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_ERROR_UNDEFINED                         = 0x03,
97,65,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_A                                       = 0x04,
98,66,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_B                                       = 0x05,
99,67,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_C                                       = 0x06,
100,68,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_D                                       = 0x07,
101,69,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_E                                       = 0x08,
102,70,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F                                       = 0x09,
103,71,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_G                                       = 0x0A,
104,72,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_H                                       = 0x0B,
105,73,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_I                                       = 0x0C,
106,74,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_J                                       = 0x0D,
107,75,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_K                                       = 0x0E,
108,76,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_L                                       = 0x0F,
109,77,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_M                                       = 0x10,
110,78,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_N                                       = 0x11,
111,79,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_O                                       = 0x12,
112,80,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_P                                       = 0x13,
113,81,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Q                                       = 0x14,
114,82,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_R                                       = 0x15,
115,83,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_S                                       = 0x16,
116,84,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_T                                       = 0x17,
117,85,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_U                                       = 0x18,
118,86,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_V                                       = 0x19,
119,87,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_W                                       = 0x1A,
120,88,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_X                                       = 0x1B,
122,90,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Y                                       = 0x1C,
121,89,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Z                                       = 0x1D,
49,33,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_1_AND_EXCLAMATION_POINT                 = 0x1E,
50,34,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_2_AND_AT                                = 0x1F,
51,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_3_AND_HASH                              = 0x20,      DE: §=245
52,36,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_4_AND_DOLLAR                            = 0x21,
53,37,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_5_AND_PERCENT                           = 0x22,
54,38,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_6_AND_CARROT                            = 0x23,
55,47,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_7_AND_AMPERSAND                         = 0x24,
56,40,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_8_AND_ASTERISK                          = 0x25,
57,41,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_9_AND_OPEN_PARENTHESIS                  = 0x26,
48,61,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_0_AND_CLOSE_PARENTHESIS                 = 0x27,
10,10,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_RETURN_ENTER                            = 0x28,
27,27,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_ESCAPE                                  = 0x29,
8,8,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_DELETE                                  = 0x2A,
9,9,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_TAB                                     = 0x2B,
32,32,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_SPACEBAR                                = 0x2C,
0,63,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_MINUS_AND_UNDERSCORE                    = 0x2D,        DE: ß=225
0,96,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_EQUAL_AND_PLUS                          = 0x2E,   DE: ´=239
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_OPEN_BRACKET_AND_OPEN_CURLY_BRACE       = 0x2F,         DE: ü=129,Ü=154
43,42,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_CLOSE_BRACKET_AND_CLOSE_CURLY_BRACE     = 0x30,
60,62,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_BACK_SLASH_AND_PIPE                     = 0x31,
35,39,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_HASH_AND_TILDE                   = 0x32,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_SEMICOLON_AND_COLON                     = 0x33,   DE: ö=228,Ö=229
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_APOSTROPHE_AND_QUOTE                    = 0x34,   DE: ä=132,Ä=142
94,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_GRAVE_ACCENT_AND_TILDE                  = 0x35,   DE: °=167
44,59,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_COMMA_AND_LESS_THAN                     = 0x36,
46,58,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PERIOD_AND_GREATER_THAN                 = 0x37,
45,95,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_FORWARD_SLASH_AND_QUESTION_MARK         = 0x38,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_CAPS_LOCK                               = 0x39,
0x91,0x91,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F1                                      = 0x3A,
0x92,0x92,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F2                                      = 0x3B,
0x93,0x93,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F3                                      = 0x3C,
0x94,0x94,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F4                                      = 0x3D,
0x95,0x95,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F5                                      = 0x3E,
0x96,0x96,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F6                                      = 0x3F,
0x97,0x97,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F7                                      = 0x40,
0x98,0x98,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F8                                      = 0x41,
0x99,0x99,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F9                                      = 0x42,
0x9a,0x9a,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F10                                     = 0x43,
0x9b,0x9b,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F11                                     = 0x44,
0x9c,0x9c,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F12                                     = 0x45,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PRINT_SCREEN                            = 0x46,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_SCROLL_LOCK                             = 0x47,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PAUSE                                   = 0x48,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_INSERT                                  = 0x49,
0x86,0x86,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_HOME                                    = 0x4A,
0x88,0x88,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PAGE_UP                                 = 0x4B,
0x7f,0x7f,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_DELETE_FORWARD                          = 0x4C,
0x87,0x87,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_END                                     = 0x4D,
0x89,0x89,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PAGE_DOWN                               = 0x4E,
0x83,0x83,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_RIGHT_ARROW                             = 0x4F,
0x82,0x82,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_LEFT_ARROW                              = 0x50,
0x81,0x81,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_DOWN_ARROW                              = 0x51,
0x80,0x80,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_UP_ARROW                                = 0x52,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_NUM_LOCK_AND_CLEAR                        = 0x53,
47,47,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_BACK_SLASH                                = 0x54,
42,42,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_ASTERISK                                  = 0x55,
45,45,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_MINUS                                     = 0x56,
43,43,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_PLUS                                      = 0x57,
10,10,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_ENTER                                     = 0x58,
49,0x87,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_1_AND_END                                 = 0x59,
50,0x81,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_2_AND_DOWN_ARROW                          = 0x5A,
51,0x89,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_3_AND_PAGE_DOWN                           = 0x5B,
52,0x82,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_4_AND_LEFT_ARROW                          = 0x5C,
53,53,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_5                                         = 0x5D,
54,0x83,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_6_AND_RIGHT_ARROW                         = 0x5E,
55,0x86,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_7_AND_HOME                                = 0x5F,
56,0x80,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_8_AND_UP_ARROW                            = 0x60,
57,0x88,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_9_AND_PAGE_UP                             = 0x61,
48,0x84,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_0_AND_INSERT                              = 0x62,
46,0x7f,    //USB_HID_KEYBOARD_KEYPAD_KEYPAD_PERIOD_AND_DELETE                         = 0x63,
92,124    //USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_FORWARD_SLASH_AND_PIPE           = 0x64,


Thank you for your special effort  
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8567
Posted: 03:27pm 08 Jun 2020
Copy link to clipboard 
Print this post

Please download Version 5.05.03b1a from

http://geoffg.net/Downloads/Maximite/CMM2_Beta.zip

and try it. OPTION USBKEYBOARD DE

Mapping as per your list  + Alt GR chars [ { ] } @

Let me know how it goes and any changes needed

NB: I suspect the key to the left of Y is wrong - this is the last entry in the list. It also needs another Alt GR character for |

92,124    //USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_FORWARD_SLASH_AND_PIPE           = 0x64,


should be ?

60,62    //USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_FORWARD_SLASH_AND_PIPE           = 0x64,

Edited 2020-06-09 01:41 by matherp
 
SWA-Guy
Newbie

Joined: 01/02/2019
Location: Germany
Posts: 24
Posted: 04:45pm 08 Jun 2020
Copy link to clipboard 
Print this post

Hello Peter,

the first test looks very good. I found only three point to change:

1. You are right with the key left to "Y". It should be as you describes above:

  Quote  60,62    //USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_FORWARD_SLASH_AND_PIPE           = 0x64,

I overlook this line, but what is with
  Quote  60,62,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_BACK_SLASH_AND_PIPE                     = 0x31,

I thought this was the correct key, but apparently not.


2. The ALT GR "9" = "]" and ALT GR "0" = "}" have to be swapped.

3. The key next to the Delete-Key in the upper line of the keyboard (UK-KEY "=/+") does not shows "´" but "°".
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8567
Posted: 05:34pm 08 Jun 2020
Copy link to clipboard 
Print this post

  Quote  I thought this was the correct key, but apparently not.


1:
Non US keyboards have an extra key in order to allow characters like £ on the top row. Hence the description NON_US_FORWARD_SLASH_AND_PIPE  do you need to change anything on the other key?  

2: have changed

3: manual page 28
  Quote  In all fonts (including font #6) the back quote character (60 hex or 96 decimal) has been replaced with the degree symbol (º).


Please download V5.05.02B1b from the same address and try again
 
SWA-Guy
Newbie

Joined: 01/02/2019
Location: Germany
Posts: 24
Posted: 03:46pm 09 Jun 2020
Copy link to clipboard 
Print this post

Hello Peter,

with the new CMM2 release all keys for the german layout work correctly.
Thank you very much for the fast support.

To point 1. : At the moment I don't found anything on the other keys.

Greetings from Germany.
 
goc30

Guru

Joined: 12/04/2017
Location: France
Posts: 425
Posted: 08:42am 23 Jun 2020
Copy link to clipboard 
Print this post

hi peter

I return to the subject. I haven't received all the components for CMM2 yet, so I'm still on a virtual job.
I don't quite understand your table


...
0,0, // USB_HID_KEYBOARD_KEYPAD_KEYBOARD_ERROR_UNDEFINED = 0x03,
97.65, // USB_HID_KEYBOARD_KEYPAD_KEYBOARD_A = 0x04,
98.66, // USB_HID_KEYBOARD_KEYPAD_KEYBOARD_B = 0x05,
...


what MMBASIC receives when you press a key on the keyboard (example: "B" key). Is it just the "position" code (0x05) of the key, or the ASCII code (66), and for the "SHIFT" or "CTRL" or "ALT" keys, you receive another code in addition to that of the "B" key, or is it integrated into the "B" key code?
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8567
Posted: 09:11am 23 Jun 2020
Copy link to clipboard 
Print this post

Thanks to SWA-Guy we now understand more so it should be easy for you - just some slog work. The way to think about it is as follows:

The table is a map of the physical location of the keys against a code number.

In the case of a UK/US keyboard the key that is second in on the third row will generate the letter "a" without the shift key pressed and "A" with shift pressed

so the row in the US and UK maps is

97,65,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_A                                       = 0x04,


as 97 and 65 are the ascii codes for "a" and "A" respectively

In your case you will need to modify that row to reflect the ascii codes that that physical key should generate on a French keyboard. You don't need to bother changing the description but you may want to append a note to yourself showing the remapping

e.g.
113 81,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_A                                       = 0x04, q,Q



One special case is the key next to left shift. This key doesn't exist on a US keyboard but does on a UK and German

This is the relevant line for that key

92,124    //USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_FORWARD_SLASH_AND_PIPE           = 0x64,


In addition any keys that generate characters which don't exist in ASCII 32-128 should be set to 0

Also, Any ASCII characters that need an ALTGR code should be listed separately as these need hard coding

This is my code for the German AltGr characters

       if(info->ralt && Option.USBKeyboard==CONFIG_DE){
        if(keyCode==0x24)return 0x7B;
        else if(keyCode==0x25)return 0x5B;
        else if(keyCode==0x26)return 0x5D;
        else if(keyCode==0x27)return 0x7D;
        else if(keyCode==0x2D)return 0x5C;
        else if(keyCode==0x14)return 0x40;
        else if(keyCode==0x64)return 124;
       }


keycode is the number after the = in the table
 
goc30

Guru

Joined: 12/04/2017
Location: France
Posts: 425
Posted: 09:53am 23 Jun 2020
Copy link to clipboard 
Print this post

ok thank
I think that better is to wait for my CMM2 (few days) and testing with my 2 keyboards
 
laki
Newbie

Joined: 23/11/2020
Location: Hungary
Posts: 1
Posted: 09:29am 23 Nov 2020
Copy link to clipboard 
Print this post

  matherp said  If you have a foreign language USB keyboard and a CMM2 then I'm prepared to try and implement the key mapping and code changes needed to get a system that works for you. I can't do this in a vacuum as I need code to be tested.

So, if you are interested in helping, post on this thread when you have:
1: a working CMM2
2: the CMM2 connected to your keyboard with the keyboard enumerating and responding
3: keys being interpreted wrongly
4: time and energy to properly test

The code will be included in beta releases for V5.05.03 which I will make available as I work with you.

I will not and cannot attempt to implement different keyboards without help. USB keyboards are very much different to PS2!


Hi Peter,

I'm ready for testing a hungarian keyboard layout (HU).
I've a running CMM2 and usb keyboards with hungarian layout - fyi: german layout, too.

Thanks,
Peter Lakatos
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8567
Posted: 10:20am 23 Nov 2020
Copy link to clipboard 
Print this post

Hi Peter

To implement this for you I need the two tables as shown above

First a list of any ALT keys that generate normal ascii characters e.g.

    if(info->ralt && Option.USBKeyboard==CONFIG_DE){
       if(keyCode==0x24)return 0x7B;
       else if(keyCode==0x25)return 0x5B;
       else if(keyCode==0x26)return 0x5D;
       else if(keyCode==0x27)return 0x7D;
       else if(keyCode==0x2D)return 0x5C;
       else if(keyCode==0x14)return 0x40;
       else if(keyCode==0x64)return 124;
      }


second the big mapping table that gives the ascii codes for the key on the Hungarian keyboard in the position that is represented by the description in the table.

For example on a French keyboard the line
113,81,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Q                                       = 0x14,


is changed to give the ascii codes for A because the keyboard is AZERTY and not QWERTY. Don't bother to change the descriptions, the ascci codes are all that matter

One particular key to watch is the one next to the left shift key

2,124    //USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_FORWARD_SLASH_AND_PIPE           = 0x64,


which doesn't appear at all on most US keyboards but seems to be on most others and has important "computer" characters assigned

Note that non-ascii keys are not supported for any keyboards
Edited 2020-11-23 20:22 by matherp
 
Friet
Newbie

Joined: 16/12/2020
Location: Belgium
Posts: 13
Posted: 08:20pm 10 May 2021
Copy link to clipboard 
Print this post

Hi Peter,

I am working on a Belgian version for the keyboard driver, this is also an AZERTY variant, but with a twist vs the french layout.
Enough differences to make a french driver unusable on a Belgian keyboard i'm afraid.

First part : the text file with an as close as possible approximation is done.
(knowing ASCII characters >128 cannot be used)

The following characters requiring ALT GR :

HID Code   ASCII
$64 ,       92
$20 ,       35
$2F,        91
$30,        93
$31 ,       96
$34,        39
$38 ,       126

0,0,//    USB_HID_KEYBOARD_KEYPAD_RESERVED_NO_EVENT_INDICATED                      = 0x00,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_ERROR_ROLL_OVER                         = 0x01,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_POST_FAIL                               = 0x02,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_ERROR_UNDEFINED                         = 0x03,
113,81,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_A                                       = 0x04,
98,66,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_B                                       = 0x05,
99,67,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_C                                       = 0x06,
100,68,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_D                                       = 0x07,
101,69,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_E                                       = 0x08,
102,70,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F                                       = 0x09,
103,71,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_G                                       = 0x0A,
104,72,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_H                                       = 0x0B,
105,73,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_I                                       = 0x0C,
106,74,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_J                                       = 0x0D,
107,75,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_K                                       = 0x0E,
108,76,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_L                                       = 0x0F,
44,63,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_M                                       = 0x10,
110,78,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_N                                       = 0x11,
111,79,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_O                                       = 0x12,
112,80,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_P                                       = 0x13,
97,65,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Q                                       = 0x14,
114,82,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_R                                       = 0x15,
115,83,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_S                                       = 0x16,
116,84,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_T                                       = 0x17,
117,85,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_U                                       = 0x18,
118,86,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_V                                       = 0x19,
121,89,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_W                                       = 0x1A,
120,88,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_X                                       = 0x1B,
122,90,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Y                                       = 0x1C,
119,87,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Z                                       = 0x1D,
38,49,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_1_AND_EXCLAMATION_POINT                 = 0x1E,
64,50,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_2_AND_AT                                = 0x1F,
34,51,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_3_AND_HASH                              = 0x20,
39,52,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_4_AND_DOLLAR                            = 0x21,
40,53,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_5_AND_PERCENT                           = 0x22,
36,54,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_6_AND_CARROT                            = 0x23,
96,55,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_7_AND_AMPERSAND                         = 0x24,
33,56,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_8_AND_ASTERISK                          = 0x25,
123,57,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_9_AND_OPEN_PARENTHESIS                  = 0x26,
125,48,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_0_AND_CLOSE_PARENTHESIS                 = 0x27,
10,10,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_RETURN_ENTER                            = 0x28,
27,27,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_ESCAPE                                  = 0x29,
8,8,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_DELETE                                  = 0x2A,
9,9,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_TAB                                     = 0x2B,
32,32,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_SPACEBAR                                = 0x2C,
41,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_MINUS_AND_UNDERSCORE                    = 0x2D,
45,95,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_EQUAL_AND_PLUS                          = 0x2E,
91,94,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_OPEN_BRACKET_AND_OPEN_CURLY_BRACE       = 0x2F,
36,42,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_CLOSE_BRACKET_AND_CLOSE_CURLY_BRACE     = 0x30,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_BACK_SLASH_AND_PIPE                     = 0x31,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_HASH_AND_TILDE                   = 0x32,
109,77,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_SEMICOLON_AND_COLON                     = 0x33,
0,37,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_APOSTROPHE_AND_QUOTE                    = 0x34,  
35,124,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_GRAVE_ACCENT_AND_TILDE                  = 0x35,
59,46,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_COMMA_AND_LESS_THAN                     = 0x36,
58,47,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PERIOD_AND_GREATER_THAN                 = 0x37,
61,43,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_FORWARD_SLASH_AND_QUESTION_MARK         = 0x38,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_CAPS_LOCK                               = 0x39,
0x91,0x91,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F1                                      = 0x3A,
0x92,0x92,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F2                                      = 0x3B,
0x93,0x93,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F3                                      = 0x3C,
0x94,0x94,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F4                                      = 0x3D,
0x95,0x95,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F5                                      = 0x3E,
0x96,0x96,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F6                                      = 0x3F,
0x97,0x97,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F7                                      = 0x40,
0x98,0x98,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F8                                      = 0x41,
0x99,0x99,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F9                                      = 0x42,
0x9a,0x9a,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F10                                     = 0x43,
0x9b,0x9b,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F11                                     = 0x44,
0x9c,0x9c,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_F12                                     = 0x45,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PRINT_SCREEN                            = 0x46,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_SCROLL_LOCK                             = 0x47,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PAUSE                                   = 0x48,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_INSERT                                  = 0x49,
0x86,0x86,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_HOME                                    = 0x4A,
0x88,0x88,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PAGE_UP                                 = 0x4B,
0x7f,0x7f,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_DELETE_FORWARD                          = 0x4C,
0x87,0x87,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_END                                     = 0x4D,
0x89,0x89,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PAGE_DOWN                               = 0x4E,
0x83,0x83,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_RIGHT_ARROW                             = 0x4F,
0x82,0x82,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_LEFT_ARROW                              = 0x50,
0x81,0x81,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_DOWN_ARROW                              = 0x51,
0x80,0x80,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_UP_ARROW                                = 0x52,
0,0,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_NUM_LOCK_AND_CLEAR                        = 0x53,
47,47,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_BACK_SLASH                                = 0x54,
42,42,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_ASTERISK                                  = 0x55,
45,45,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_MINUS                                     = 0x56,
43,43,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_PLUS                                      = 0x57,
10,10,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_ENTER                                     = 0x58,
49,0x87,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_1_AND_END                                 = 0x59,
50,0x81,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_2_AND_DOWN_ARROW                          = 0x5A,
51,0x89,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_3_AND_PAGE_DOWN                           = 0x5B,
52,0x82,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_4_AND_LEFT_ARROW                          = 0x5C,
53,53,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_5                                         = 0x5D,
54,0x83,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_6_AND_RIGHT_ARROW                         = 0x5E,
55,0x86,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_7_AND_HOME                                = 0x5F,
56,0x80,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_8_AND_UP_ARROW                            = 0x60,
57,0x88,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_9_AND_PAGE_UP                             = 0x61,
48,0x84,//    USB_HID_KEYBOARD_KEYPAD_KEYPAD_0_AND_INSERT                              = 0x62,
46,0x7f,    //USB_HID_KEYBOARD_KEYPAD_KEYPAD_PERIOD_AND_DELETE                         = 0x63,
60,62    //USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_FORWARD_SLASH_AND_PIPE           = 0x64,


I wil not be able to test until minimum next week, hence no rush.  I understand yo may have other priorities.

Regards,
Frank
Edited 2021-05-11 06:22 by Friet
 
epsilon

Senior Member

Joined: 30/07/2020
Location: Belgium
Posts: 255
Posted: 07:13am 11 May 2021
Copy link to clipboard 
Print this post

This is the route I took with my Belgian keyboard :-)



It needs a new paint job. It gets used a lot :-)
Epsilon CMM2 projects
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8567
Posted: 07:58am 11 May 2021
Copy link to clipboard 
Print this post

Frank

I've implemented your code set for testing but it seems incorrect - I get "AYERTZ"
Please check and post any corrections
Edited 2021-05-11 18:07 by matherp
 
     Page 1 of 2    
Print this page
© JAQ Software 2024