|
@@ -193,13 +193,14 @@ static const char *ansi_input = "";
|
193
|
193
|
* dense range, so subtracting a constant and treating them as offsets
|
194
|
194
|
* into an array works efficiently.
|
195
|
195
|
*/
|
196
|
|
-#define BIOS_KEY_MIN 0x47
|
|
196
|
+#define BIOS_KEY_MIN 0x42
|
197
|
197
|
|
198
|
198
|
/** Offset into list of interesting BIOS scancodes */
|
199
|
199
|
#define BIOS_KEY(scancode) ( (scancode) - BIOS_KEY_MIN )
|
200
|
200
|
|
201
|
201
|
/** Mapping from BIOS scan codes to ANSI escape sequences */
|
202
|
202
|
static const char *ansi_sequences[] = {
|
|
203
|
+ [ BIOS_KEY ( 0x42 ) ] = "[19~", /* F8 (required for PXE) */
|
203
|
204
|
[ BIOS_KEY ( 0x47 ) ] = "[H", /* Home */
|
204
|
205
|
[ BIOS_KEY ( 0x48 ) ] = "[A", /* Up arrow */
|
205
|
206
|
[ BIOS_KEY ( 0x4b ) ] = "[D", /* Left arrow */
|
|
@@ -222,6 +223,7 @@ static const char * scancode_to_ansi_seq ( unsigned int scancode ) {
|
222
|
223
|
sizeof ( ansi_sequences[0] ) ) ) {
|
223
|
224
|
return ansi_sequences[bios_key];
|
224
|
225
|
}
|
|
226
|
+ DBG ( "Unrecognised BIOS scancode %02x\n", scancode );
|
225
|
227
|
return NULL;
|
226
|
228
|
}
|
227
|
229
|
|