diff --git a/include/keys.h b/include/keys.h
index 46c80e2..ef6876e 100644
--- a/include/keys.h
+++ b/include/keys.h
@@ -21,100 +21,132 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // these are the key numbers that should be passed to Key_Event
 //
-#define	K_TAB			9
-#define	K_ENTER			13
-#define	K_ESCAPE		27
-#define	K_SPACE			32
+
+typedef enum {
+	K_TAB = 9,
+	K_ENTER = 13,
+	K_ESCAPE = 27,
+	K_SPACE	= 32,
 
 // normal keys should be passed as lowercased ascii
 
-#define	K_BACKSPACE		127
-#define	K_UPARROW		128
-#define	K_DOWNARROW		129
-#define	K_LEFTARROW		130
-#define	K_RIGHTARROW	131
+	K_BACKSPACE = 127,
 
-#define	K_ALT			132
-#define	K_CTRL			133
-#define	K_SHIFT			134
-#define	K_F1			135
-#define	K_F2			136
-#define	K_F3			137
-#define	K_F4			138
-#define	K_F5			139
-#define	K_F6			140
-#define	K_F7			141
-#define	K_F8			142
-#define	K_F9			143
-#define	K_F10			144
-#define	K_F11			145
-#define	K_F12			146
-#define	K_INS			147
-#define	K_DEL			148
-#define	K_PGDN			149
-#define	K_PGUP			150
-#define	K_HOME			151
-#define	K_END			152
+	K_CAPSLOCK,
+	K_PRNTSCR,
+	K_SCRLCK,
+	K_PAUSE,
 
-#define K_PAUSE			255
+	K_UPARROW,
+	K_DOWNARROW,
+	K_LEFTARROW,
+	K_RIGHTARROW,
+
+	K_ALT,
+	K_CTRL,
+	K_SHIFT,
+	K_F1,
+	K_F2,
+	K_F3,
+	K_F4,
+	K_F5,
+	K_F6,
+	K_F7,
+	K_F8,
+	K_F9,
+	K_F10,
+	K_F11,
+	K_F12,
+	K_INS,
+	K_DEL,
+	K_PGDN,
+	K_PGUP,
+	K_HOME,
+	K_END,
+
+//
+// Keypad stuff..
+//
+
+	KP_NUMLCK,
+	KP_DIVIDE,
+	KP_MULTIPLY,
+
+	KP_HOME,
+	KP_UPARROW,
+	KP_PGUP,
+	KP_MINUS,
+
+	KP_LEFTARROW,
+	KP_5,
+	KP_RIGHTARROW,
+	KP_PLUS,
+
+	KP_END,
+	KP_DOWNARROW,
+	KP_PGDN,
+
+	KP_INS,
+	KP_DEL,
+	KP_ENTER,
 
 //
 // mouse buttons generate virtual keys
 //
-#define	K_MOUSE1		200
-#define	K_MOUSE2		201
-#define	K_MOUSE3		202
+	K_MOUSE1 = 200,
+	K_MOUSE2,
+	K_MOUSE3,
 
 //
 // joystick buttons
 //
-#define	K_JOY1			203
-#define	K_JOY2			204
-#define	K_JOY3			205
-#define	K_JOY4			206
+	K_JOY1,
+	K_JOY2,
+	K_JOY3,
+	K_JOY4,
 
 //
 // aux keys are for multi-buttoned joysticks to generate so they can use
 // the normal binding process
 //
-#define	K_AUX1			207
-#define	K_AUX2			208
-#define	K_AUX3			209
-#define	K_AUX4			210
-#define	K_AUX5			211
-#define	K_AUX6			212
-#define	K_AUX7			213
-#define	K_AUX8			214
-#define	K_AUX9			215
-#define	K_AUX10			216
-#define	K_AUX11			217
-#define	K_AUX12			218
-#define	K_AUX13			219
-#define	K_AUX14			220
-#define	K_AUX15			221
-#define	K_AUX16			222
-#define	K_AUX17			223
-#define	K_AUX18			224
-#define	K_AUX19			225
-#define	K_AUX20			226
-#define	K_AUX21			227
-#define	K_AUX22			228
-#define	K_AUX23			229
-#define	K_AUX24			230
-#define	K_AUX25			231
-#define	K_AUX26			232
-#define	K_AUX27			233
-#define	K_AUX28			234
-#define	K_AUX29			235
-#define	K_AUX30			236
-#define	K_AUX31			237
-#define	K_AUX32			238
+	K_AUX1,
+	K_AUX2,
+	K_AUX3,
+	K_AUX4,
+	K_AUX5,
+	K_AUX6,
+	K_AUX7,
+	K_AUX8,
+	K_AUX9,
+	K_AUX10,
+	K_AUX11,
+	K_AUX12,
+	K_AUX13,
+	K_AUX14,
+	K_AUX15,
+	K_AUX16,
+	K_AUX17,
+	K_AUX18,
+	K_AUX19,
+	K_AUX20,
+	K_AUX21,
+	K_AUX22,
+	K_AUX23,
+	K_AUX24,
+	K_AUX25,
+	K_AUX26,
+	K_AUX27,
+	K_AUX28,
+	K_AUX29,
+	K_AUX30,
+	K_AUX31,
+	K_AUX32,
 
 // JACK: Intellimouse(c) Mouse Wheel Support
 
-#define K_MWHEELUP		239
-#define K_MWHEELDOWN	240
-
+	K_MWHEELUP,
+	K_MWHEELDOWN
+} keynum_t;
 
 
 typedef enum {key_game, key_console, key_message, key_menu} keydest_t;