@@ -158,6 +158,20 @@ static const unsigned char KEYBOARD_ASCII_MAPH_09[] = {
158158 KEYBOARD_SC_RPF0_9
159159};
160160
161+ static const unsigned char KEYBOARD_ASCII_MAPH_KEYPAD_09 [] = {
162+ KEYBOARD_SC_RPF0_keypad_0 ,
163+ KEYBOARD_SC_RPF0_keypad_1 ,
164+ KEYBOARD_SC_RPF0_keypad_2 ,
165+ KEYBOARD_SC_RPF0_keypad_3 ,
166+ KEYBOARD_SC_RPF0_keypad_4 ,
167+ KEYBOARD_SC_RPF0_keypad_5 ,
168+ KEYBOARD_SC_RPF0_keypad_6 ,
169+ KEYBOARD_SC_RPF0_keypad_7 ,
170+ KEYBOARD_SC_RPF0_keypad_8 ,
171+ KEYBOARD_SC_RPF0_keypad_9
172+ };
173+
174+
161175// Key ScanCode and ASCII code are listed alternatively in the next list.
162176static const unsigned char KEYBOARD_ASCII_MAPH_OTHERS [] = {
163177 KEYBOARD_SC_RPF0_space , ' ' ,
@@ -168,7 +182,15 @@ static const unsigned char KEYBOARD_ASCII_MAPH_OTHERS[] = {
168182 KEYBOARD_SC_RPF0_quotation , '\'' ,
169183 KEYBOARD_SC_RPF0_brace_sq_o , '[' ,
170184 KEYBOARD_SC_RPF0_brace_sq_c , ']' ,
171- KEYBOARD_SC_RPF0_blackslash , '\\'
185+ KEYBOARD_SC_RPF0_blackslash , '\\' ,
186+
187+ KEYBOARD_SC_RPF0_enter , '\n' ,
188+ KEYBOARD_SC_RPF0_keypad_dot , '.' ,
189+ KEYBOARD_SC_RPF0_keypad_minus , '-' ,
190+ KEYBOARD_SC_RPF0_keypad_mul , '*' ,
191+ KEYBOARD_SC_RPF0_keypad_plus , '+' ,
192+ KEYBOARD_SC_PE0_RPF0_keypad_enter , '\n'
193+
172194};
173195
174196static unsigned char KEYBOARD_ASCII_MAPPING [256 ];
@@ -204,7 +226,11 @@ void keyboard_scanner_handler_init() {
204226 unsigned char c = '0' + i ;
205227 KEYBOARD_ASCII_MAPPING [code ]= c ;
206228 }
207- if (last_ascii_available ) return 1 ;
229+ for (int i = 0 ;i < sizeof (KEYBOARD_ASCII_MAPH_KEYPAD_09 );i ++ ) {
230+ unsigned char code = KEYBOARD_ASCII_MAPH_KEYPAD_09 [i ];
231+ unsigned char c = '0' + i ;
232+ KEYBOARD_ASCII_MAPPING [code ]= c ;
233+ }
208234 for (int i = 0 ;i < sizeof (KEYBOARD_ASCII_MAPH_OTHERS );i += 2 ) {
209235 unsigned char code = KEYBOARD_ASCII_MAPH_OTHERS [i ];
210236 unsigned char c = KEYBOARD_ASCII_MAPH_OTHERS [i + 1 ];
0 commit comments