From 96a1a2c6f043e45b16bb278669ddb3c800a64c1e Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 20 Dec 2006 21:53:07 +0000 Subject: [PATCH] Key definitions --- src/include/gpxe/keys.h | 78 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/include/gpxe/keys.h diff --git a/src/include/gpxe/keys.h b/src/include/gpxe/keys.h new file mode 100644 index 00000000..601aeaa6 --- /dev/null +++ b/src/include/gpxe/keys.h @@ -0,0 +1,78 @@ +#ifndef _GPXE_KEYS_H +#define _GPXE_KEYS_H + +/** @file + * + * Key definitions + * + */ + +/* + * Symbolic names for some standard ASCII characters + * + */ + +#define NUL 0x00 +#define CTRL_A 0x01 +#define CTRL_B 0x02 +#define CTRL_C 0x03 +#define CTRL_D 0x04 +#define CTRL_E 0x05 +#define CTRL_F 0x06 +#define CTRL_G 0x07 +#define CTRL_H 0x08 +#define CTRL_I 0x09 +#define CTRL_J 0x0a +#define CTRL_K 0x0b +#define CTRL_L 0x0c +#define CTRL_M 0x0d +#define CTRL_N 0x0e +#define CTRL_O 0x0f +#define CTRL_P 0x10 +#define CTRL_Q 0x11 +#define CTRL_R 0x12 +#define CTRL_S 0x13 +#define CTRL_T 0x14 +#define CTRL_U 0x15 +#define CTRL_V 0x16 +#define CTRL_W 0x17 +#define CTRL_X 0x18 +#define CTRL_Y 0x19 +#define CTRL_Z 0x1a + +#define BACKSPACE CTRL_H +#define TAB CTRL_I +#define ENTER CTRL_M +#define ESC 0x1b + +/* + * Special keys outside the normal ASCII range + * + * + * These values are chosen to facilitate easy conversion from a + * received ANSI escape sequence to a KEY_XXX constant. The KEY_XXX + * constant is simply 0x100 plus the first byte following CSI in the + * ANSI escape sequence. For example, KEY_LEFT is 0x144, since a left + * cursor key is transmitted as the ANSI sequence "^[[D". + */ + +#define KEY_ANSI( character ) ( 0x100 + (character) ) + +#define KEY_MIN 0x101 +#define KEY_UP KEY_ANSI ( 'A' ) +#define KEY_DOWN KEY_ANSI ( 'B' ) +#define KEY_RIGHT KEY_ANSI ( 'C' ) +#define KEY_LEFT KEY_ANSI ( 'D' ) +#define KEY_END KEY_ANSI ( 'E' ) +#define KEY_HOME KEY_ANSI ( 'H' ) +#define KEY_PPAGE KEY_ANSI ( '5' ) +#define KEY_NPAGE KEY_ANSI ( '6' ) +#define KEY_MAX 0x1ff + +/* Not in the [KEY_MIN,KEY_MAX] range; terminals seem to send these as + * normal ASCII values. + */ +#define KEY_BACKSPACE BACKSPACE +#define KEY_ENTER ENTER + +#endif /* _GPXE_KEYS_H */