Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 09:17 01 Aug 2025 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 : Spanish Keyboard Layout

     Page 1 of 2    
Author Message
Hark0

Newbie

Joined: 02/07/2020
Location: Spain
Posts: 31
Posted: 10:42am 10 Aug 2020
Copy link to clipboard 
Print this post

Hi!


About Spanish Layout .... can be added in next release?


I add two images about keyboard layout for spanish keyboards...

First are normal keys:



Second are ALT GR + key:





My CMM2 are avaliable for all needed tests.

Thanks in advance.


PS Codes are from: http://www.asciitable.com/
Edited 2020-08-10 21:02 by Hark0
ZX-UNO: ZX-Spectrum Clone with FPGA
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10310
Posted: 02:12pm 10 Aug 2020
Copy link to clipboard 
Print this post

Please see this thread

Can you prepare a keyboard definition as per the details there and below which is the French version and I'll certainly include it

const int FRkeyValue[] = {
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, FR Q
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, FR ,?
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, FR A
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,
122,90,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_W                                    = 0x1A, FR Z
120,88,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_X                                    = 0x1B,
121,89,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Y                                    = 0x1C,
119,87,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_Z                                    = 0x1D, FR W
38,49,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_1_AND_EXCLAMATION_POINT               = 0x1E, FR & 1
00,50,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_2_AND_AT                              = 0x1F, FR é 2 ~
34,51,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_3_AND_HASH                            = 0x20, FR " 3 #
39,52,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_4_AND_DOLLAR                          = 0x21, FR ' 4 {
40,53,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_5_AND_PERCENT                         = 0x22, FR ( 5 [
45,54,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_6_AND_CARROT                          = 0x23, FR - 6
96,55,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_7_AND_AMPERSAND                       = 0x24, FR è 7 `
95,56,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_8_AND_ASTERISK                        = 0x25, FR _ 8 '\'
00,57,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_9_AND_OPEN_PARENTHESIS                = 0x26, FR ç 9 ^
00,48,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_0_AND_CLOSE_PARENTHESIS               = 0x27, FR à 0 @
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,00,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_MINUS_AND_UNDERSCORE                  = 0x2D, FR ) ]
61,43,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_EQUAL_AND_PLUS                        = 0x2E,
94,123,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_OPEN_BRACKET_AND_OPEN_CURLY_BRACE    = 0x2F, FR ^ ¨
36,125,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_CLOSE_BRACKET_AND_CLOSE_CURLY_BRACE  = 0x30, FR $ £
60,62,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_BACK_SLASH_AND_PIPE                  = 0x31, FR < > (not sure !!)
35,126,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_HASH_AND_TILDE                = 0x32,
109,77,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_SEMICOLON_AND_COLON                  = 0x33, FR M
42,00,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_APOSTROPHE_AND_QUOTE                  = 0x34, FR * µ
00,00,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_GRAVE_ACCENT_AND_TILDE                = 0x35, FR ²
59,46,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_COMMA_AND_LESS_THAN                   = 0x36, FR ; .
58,47,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_PERIOD_AND_GREATER_THAN               = 0x37, FR : /
33,00,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_FORWARD_SLASH_AND_QUESTION_MARK       = 0x38, FR ! §
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,
};


// Special entry for characters ' ~ # { [ | \ ^ @ ] } '

       if(info->ralt && Option.USBKeyboard==CONFIG_FR){
        if(keyCode==0x1F)     return 126;// ~
        else if(keyCode==0x20)return 35; // #
        else if(keyCode==0x21)return 123;// {
        else if(keyCode==0x22)return 91; // [
        else if(keyCode==0x23)return 124;// |
        else if(keyCode==0x25)return 92; // '\'
        else if(keyCode==0x26)return 94; // ^
        else if(keyCode==0x27)return 64; // @
        else if(keyCode==0x2D)return 93; // ]
        else if(keyCode==0x2E)return 125;// }
       }

Edited 2020-08-11 00:13 by matherp
 
Hark0

Newbie

Joined: 02/07/2020
Location: Spain
Posts: 31
Posted: 05:00pm 10 Aug 2020
Copy link to clipboard 
Print this post

Ok, working on!
ZX-UNO: ZX-Spectrum Clone with FPGA
 
darthvader
Regular Member

Joined: 31/01/2020
Location: France
Posts: 87
Posted: 08:53pm 10 Aug 2020
Copy link to clipboard 
Print this post

Hi Peter  

I don't have get my CMM2 yet from Australia , and don't have test the French KB version.
When it's here , i will do the requested KB layout as needed so you can made the other great stuff  

Cheers.
Theory is when we know everything but nothing work ...
Practice is when everything work but no one know why ;)
 
Sasquatch

Guru

Joined: 08/05/2020
Location: United States
Posts: 377
Posted: 09:28pm 10 Aug 2020
Copy link to clipboard 
Print this post

  darthvader said  Hi Peter  

I don't have get my CMM2 yet from Australia , and don't have test the French KB version.
When it's here , i will do the requested KB layout as needed so you can made the other great stuff  

Cheers.


I believe Peter already did the French layout.  See "OPTION USBKEYBOARD FR" in the manual.
-Carl
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3292
Posted: 09:47pm 10 Aug 2020
Copy link to clipboard 
Print this post

Fabrice (darthvader) provided the codes for the French keyboard for the CMM2.  I think that he is saying that he can properly test it and perhaps add others (difficult when English is not your first language).  He provided most of the foreign language keyboards for the original Colour Maximite so he has practice in this.

Geoff
Geoff Graham - http://geoffg.net
 
Hark0

Newbie

Joined: 02/07/2020
Location: Spain
Posts: 31
Posted: 07:09am 11 Aug 2020
Copy link to clipboard 
Print this post

I think all are correct...


const int SPkeyValue[] = {
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, ALT GR -> |
50,34,// USB_HID_KEYBOARD_KEYPAD_KEYBOARD_2_AND_AT                              = 0x1F, ALT GR -> @
51,250,// USB_HID_KEYBOARD_KEYPAD_KEYBOARD_3_AND_HASH                            = 0x20, ALT GR -> #
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, ALT GR -> ¬
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,                
39,63,// USB_HID_KEYBOARD_KEYPAD_KEYBOARD_MINUS_AND_UNDERSCORE                  = 0x2D,
173,168,// USB_HID_KEYBOARD_KEYPAD_KEYBOARD_EQUAL_AND_PLUS                        = 0x2E,            
96,94,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_OPEN_BRACKET_AND_OPEN_CURLY_BRACE     = 0x2F, ALT GR -> [
43,42,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_CLOSE_BRACKET_AND_CLOSE_CURLY_BRACE   = 0x30, ALT GR -> ]
135,128,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_BACK_SLASH_AND_PIPE                   = 0x31, ALT GR -> }            
60,62,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_HASH_AND_TILDE                 = 0x32,
164,165,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_SEMICOLON_AND_COLON                   = 0x33,
239,249,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_APOSTROPHE_AND_QUOTE                  = 0x34, ALT GR -> {
167,166,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_GRAVE_ACCENT_AND_TILDE                = 0x35, ALT GR -> \            
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,                                                                                      
0x84,0x84,//    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,0xA3,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_RIGHT_ARROW                           = 0x4F,
0x82,0x82,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_LEFT_ARROW                            = 0x50,
0x81,0xA1,//    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,
};

// Special entry for characters ALT_GR + KEY
// List key 0x35  -  alt_gr= \  ->  92
// List key 0x1E  -  alt_gr= |  ->  124
// List key 0x1F  -  alt_gr= @  ->  64
// List key 0x20  -  alt_gr= #  ->  35
// List key 0x23  -  alt_gr= ¬  ->  170
// List key 0x2F  -  alt_gr= [  ->  91
// List key 0x30  -  alt_gr= ]  ->  93
// List key 0x31  -  alt_gr= {  ->  123
// List key 0x34  -  alt_gr= }  ->  125

if(info->ralt && Option.USBKeyboard == CONFIG_SP){
if(keyCode==0x35)     return 92;   // \
else if(keyCode==0x1E)return 124;  // |
else if(keyCode==0x1F)return 64;   // @
else if(keyCode==0x20)return 35;   // #
else if(keyCode==0x23)return 170;  // ¬
else if(keyCode==0x2F)return 91;   // [
else if(keyCode==0x30)return 93;   // ]
else if(keyCode==0x31)return 123;  // {
else if(keyCode==0x34)return 125;  // }
}

ZX-UNO: ZX-Spectrum Clone with FPGA
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10310
Posted: 08:35am 11 Aug 2020
Copy link to clipboard 
Print this post

Support for ES keyboard added in V5.05.05b7

Let me know if there are any changes needed.

Note I'm using the ISO 3166 country codes so Spain is ES

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

Newbie

Joined: 02/07/2020
Location: Spain
Posts: 31
Posted: 07:22pm 11 Aug 2020
Copy link to clipboard 
Print this post

Downloading... and testing...  
ZX-UNO: ZX-Spectrum Clone with FPGA
 
Hark0

Newbie

Joined: 02/07/2020
Location: Spain
Posts: 31
Posted: 10:40pm 11 Aug 2020
Copy link to clipboard 
Print this post

Firmware tested.  ES are the same keys as US layout.... none changed.


Row 1
us               shift
key     cmm2     ES
~   ->   ~   ->  ª  (Normal º, Shift ª, AltGr \)
1   ->   !   ->  !  normal OK
2   ->   "   ->  "  normal OK
3   ->   #   ->  ·  normal OK
4   ->   $   ->  $  normal OK
5   ->   %   ->  %  normal OK
6   ->   ^   ->  &  normal OK
7   ->   &   ->  /  normal OK
8   ->   *   ->  (  normal OK
9   ->   (   ->  )  normal OK
0   ->   )   ->  =
-   ->   _   ->  ?
=   ->   +   ->  ¿


+ALT GR
us
key     cmm2     ES
~   ->   º   ->  \  (Normal º, Shift ª, AltGr \)
1   ->   1   ->  |
2   ->   2   ->  @
3   ->   3   ->  #
6   ->   6   ->  ¬



Row 2
us               ES       ES      ES
key     cmm2             shift    alt gr
[   ->   [   ->   `   ->   ^   -> [    
]   ->   ]   ->   +   ->   *   -> ]  
\   ->   \   ->   ç   ->   Ç   -> }


Row 3
us               ES       ES      ES
key     cmm2             shift    alt gr
;   ->   ;   ->   ñ   ->   Ñ   -> none    
'   ->   '   ->   <   ->   >   -> none
#   ->   #   ->   ´   ->   ¨   -> {
 
Row 4
us               ES       ES      ES
key     cmm2             shift    alt gr
,   ->   ,   ->   ,   ->   ;   -> none      normal OK
.   ->   .   ->   .   ->   :   -> none      normal OK
/   ->   /   ->   -   ->   _   -> none


Edited 2020-08-12 08:41 by Hark0
ZX-UNO: ZX-Spectrum Clone with FPGA
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10310
Posted: 07:16am 12 Aug 2020
Copy link to clipboard 
Print this post

I don't understand what you are saying. I just implemented the code you provided and it certainly changes things for me. You do understand that the CMM2 can only show ascii characters? So no accented characters will work. These keys should be set to 0 in the mapping table so they don't respond at all.

You did use OPTION USBKEYBOARD ES

Then check with OPTION LIST

Looks like you haven't changed this line

92,124 //       USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_FORWARD_SLASH_AND_PIPE         = 0x64,


This is the key to the left of Z
Edited 2020-08-12 17:25 by matherp
 
Hark0

Newbie

Joined: 02/07/2020
Location: Spain
Posts: 31
Posted: 07:36am 12 Aug 2020
Copy link to clipboard 
Print this post

I changed the layout to US to ES.... and ES to US... but the keys are the same!

My first program when I receved the CMM2 was:

for n=32 to 255
print chr$(n)
next n

Hmmmm Basically the ES layout works "similar" to US layout, only change some keys:

First row.... from key ~ to = (us layout)
The 9 keys [ { , ; etc....
And the AltGr combinations...

I know about accent letters... I no add none accent combination.


Let me I check for the keys... I post new message.

Thanks for your patiente.
ZX-UNO: ZX-Spectrum Clone with FPGA
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6283
Posted: 07:55am 12 Aug 2020
Copy link to clipboard 
Print this post

for n=32 to 255
print chr$(n)
next n

Will always print the built-in font which contains ASCII characters for the lower characters and a selection of various characters for the high number characters.

If you want to print international characters, you can define your own font and then print them using chr$(xx)

The CMM2 will not be able to use unicode or uTF8 to print all international characters.

Jim
VK7JH
MMedit
 
Hark0

Newbie

Joined: 02/07/2020
Location: Spain
Posts: 31
Posted: 08:56am 12 Aug 2020
Copy link to clipboard 
Print this post

Hello again... reflashed my CMM2 for three times...

Now it seem works (¿?).... and option info shows "OPTION USB KEYBOARD ES". ;-)


This Keys NOT work correctly

Key º in US Layout (left to key 1):

 Normal: none, expected º chr$(96)
 Shift: none, expected ª  none char in CMM2 - ASCII 166
 Alt Gr: \ OK. Correct



Key = in US Layout (right to key -):

 Normal: none, expected ¡ none char in CMM2 - ASCII 173
 Shift: none, expected ¿ none char in CMM2 - ASCII 168
 Alt Gr: none OK. Correct
hmmmm about this key... i think "OK".... don't modify. ;-)



Key [ in US Layout (right to key P):

 Normal: º, expected ` chr$(248)
 Shift: ^, expected ^ OK. Correct
 Alt Gr: [, expected [ OK. Correct



Key ; in US Layout (right to key L):

 Normal: none, expected ñ chr$()
 Shift: none, expected Ñ chr$()
 Alt Gr: none, OK. Correct

 I think about "Ñ" key.... are "OK"... none char in CMM... or maybe.... n and N.


Key ' in US Layout (right to key ;):

 Normal: none, expected ´ none char in CMM2 - ASCII 239
 Shift: none, expected ¨ none char in CMM2 - ASCII 249
 Alt Gr: }, expected { chr$(123)



Hmmm the keys \  and  /  "are exchanged", codes are OK.



Key E:
Alt Gr: e, expected € chr$(238)



Key 3 + Shift:
none, expected · chr$(250)



Hmm for the keys that not have graphic defined.... hmmm the best "solution" IMHO... are use the same graphic... like  not existent ª... use º


I used the chr$ from the photo...

Edited 2020-08-12 19:02 by Hark0
ZX-UNO: ZX-Spectrum Clone with FPGA
 
twofingers

Guru

Joined: 02/06/2014
Location: Germany
Posts: 1593
Posted: 11:05am 12 Aug 2020
Copy link to clipboard 
Print this post

Hi Hark0,

I'm sure you are aware that the CMM2 only supports ASCII characters up to 127 for the keyboard. AFAIK!

The german version supports also no umlauts (ÄÖÜöäüß).

Kind regards
MIchael
causality ≠ correlation ≠ coincidence
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10310
Posted: 11:42am 12 Aug 2020
Copy link to clipboard 
Print this post

Hark0

If there are bugs then make the changes and repost the definition. I'm sorry but I haven't got the time to sort out every keyboard variation. The code implements exactly what is in the definition file.
Edited 2020-08-12 21:43 by matherp
 
Hark0

Newbie

Joined: 02/07/2020
Location: Spain
Posts: 31
Posted: 09:03pm 12 Aug 2020
Copy link to clipboard 
Print this post

@twofingers hmmm I find for these post. Thanks.

@matherp Ok, I examine my definition file... and reupload.
ZX-UNO: ZX-Spectrum Clone with FPGA
 
Hark0

Newbie

Joined: 02/07/2020
Location: Spain
Posts: 31
Posted: 09:07pm 12 Aug 2020
Copy link to clipboard 
Print this post

  TassyJim said  
for n=32 to 255
print chr$(n)
next n

Will always print the built-in font which contains ASCII characters for the lower characters and a selection of various characters for the high number characters.

If you want to print international characters, you can define your own font and then print them using chr$(xx)

The CMM2 will not be able to use unicode or uTF8 to print all international characters.

Jim


Hmmm Thanks!

First, I translating "normal" keys...  
ZX-UNO: ZX-Spectrum Clone with FPGA
 
Hark0

Newbie

Joined: 02/07/2020
Location: Spain
Posts: 31
Posted: 10:27pm 12 Aug 2020
Copy link to clipboard 
Print this post

@matherp

Here is a new version. I read German post, and I set keys vith +128 code to 0.


const int ESkeyValue[] = {
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, ALT GR -> €
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, ALT GR -> |
50,34,//        USB_HID_KEYBOARD_KEYPAD_KEYBOARD_2_AND_AT                              = 0x1F, ALT GR -> @
51,0,//         USB_HID_KEYBOARD_KEYPAD_KEYBOARD_3_AND_HASH                            = 0x20, ALT GR -> #
52,36,//        USB_HID_KEYBOARD_KEYPAD_KEYBOARD_4_AND_DOLLAR                          = 0x21, ALT GR -> ~
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,                
39,63,//        USB_HID_KEYBOARD_KEYPAD_KEYBOARD_MINUS_AND_UNDERSCORE                  = 0x2D,
0,0,//          USB_HID_KEYBOARD_KEYPAD_KEYBOARD_EQUAL_AND_PLUS                        = 0x2E,            
0,94,//         USB_HID_KEYBOARD_KEYPAD_KEYBOARD_OPEN_BRACKET_AND_OPEN_CURLY_BRACE     = 0x2F, ALT GR -> [
43,42,//        USB_HID_KEYBOARD_KEYPAD_KEYBOARD_CLOSE_BRACKET_AND_CLOSE_CURLY_BRACE   = 0x30, ALT GR -> ]
0,0,//          USB_HID_KEYBOARD_KEYPAD_KEYBOARD_BACK_SLASH_AND_PIPE                   = 0x31, ALT GR -> }            
92,0,//         USB_HID_KEYBOARD_KEYPAD_KEYBOARD_NON_US_HASH_AND_TILDE                 = 0x32,
0,0,//          USB_HID_KEYBOARD_KEYPAD_KEYBOARD_SEMICOLON_AND_COLON                   = 0x33,
0,0,//          USB_HID_KEYBOARD_KEYPAD_KEYBOARD_APOSTROPHE_AND_QUOTE                  = 0x34, ALT GR -> {
96,96,//        USB_HID_KEYBOARD_KEYPAD_KEYBOARD_GRAVE_ACCENT_AND_TILDE                = 0x35, ALT GR -> \  (Tecla º)          
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,                                                                                      
0x84,0x84,//    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,0xA3,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_RIGHT_ARROW                           = 0x4F,
0x82,0x82,//    USB_HID_KEYBOARD_KEYPAD_KEYBOARD_LEFT_ARROW                            = 0x50,
0x81,0xA1,//    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,
};

// Special entry for characters ALT_GR + KEY
// List key 0x35  -  alt_gr= \  ->  92
// List key 0x1E  -  alt_gr= |  ->  124
// List key 0x08  -  alt_gr= €  ->  238
// List key 0x1F  -  alt_gr= @  ->  64
// List key 0x20  -  alt_gr= #  ->  35
// List key 0x21  -  alt_gr= ~  ->  126
// List key 0x2F  -  alt_gr= [  ->  91
// List key 0x30  -  alt_gr= ]  ->  93
// List key 0x31  -  alt_gr= }  ->  125
// List key 0x34  -  alt_gr= {  ->  123

if(info->ralt && Option.USBKeyboard == CONFIG_ES){
if(keyCode==0x35)     return 92;   // \
else if(keyCode==0x1E)return 124;  // |
else if(keyCode==0x08)return 0;    // €
else if(keyCode==0x1F)return 64;   // @
else if(keyCode==0x20)return 35;   // #
else if(keyCode==0x21)return 0;    // ~
else if(keyCode==0x2F)return 91;   // [
else if(keyCode==0x30)return 93;   // ]
else if(keyCode==0x31)return 125;  // }
else if(keyCode==0x34)return 123;  // {
}



You know, spanish keyboard layout have some extra keys:

ç, Ç, ñ, Ñ, ¡, ¿, á, é, í, ó, ú, Á, É, Í, Ó, Ú, à, è, ì, ò, ù, À, È, Ì, Ò, Ù, â,ê,î,ô,û,Â,Ê,Î,Ô,Û,ä,ë,ï,ö,ü,Ä,Ë,Ï,Ö,Ü...  

How I add these graphic definition... Using Fontweak ?
ZX-UNO: ZX-Spectrum Clone with FPGA
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6283
Posted: 10:58pm 12 Aug 2020
Copy link to clipboard 
Print this post

  Quote  You know, spanish keyboard layout have some extra keys:

ç, Ç, ñ, Ñ, ¡, ¿, á, é, í, ó, ú, Á, É, Í, Ó, Ú, à, è, ì, ò, ù, À, È, Ì, Ò, Ù, â,ê,î,ô,û,Â,Ê,Î,Ô,Û,ä,ë,ï,ö,ü,Ä,Ë,Ï,Ö,Ü...  

How I add these graphic definition... Using Fontweak ?

Yes.
But you have to do some work.

Before Unicode, Windows/DOS used 'code pages' for the different character sets used around the world.
If you know what code-page matches your language, that is the first step.
Then you have to find the Unicode equivalents for each character. Wikipedia is very useful here.

Once you have the ASCII to Unicode translation list, you can create an INF file file FontTweak.

The last step is finding a TTF font that has the Unicode characters you are interested in. That is easy to do in FontTweak.

One of the code-pages I have translated already might be what you are looking for.

You will still have to use chr$(xx) to print the characters. You 'could' change characters below 128 to print them directly but that would really mess up the whole system so I don't think that it is a good idea.

Jim
VK7JH
MMedit
 
     Page 1 of 2    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025