/* Keyboard.h

   by Fabbian G. Dufoe, III
   This is a public domain program.  You may use it any way you like.

   This file contains function prototypes and definitions for using the
   functions in Keyboard.c.  If your compiler does not support function
   prototypes you must define the preprocessor symbol "__NOPROTO" to compile
   programs using this file.
*/

#include <dos.h>

#ifndef INTUITION_INTUITION_H
#include <intuition/intuition.h>
#endif

#ifndef KEYBOARD_H
#define KEYBOARD_H TRUE

#define K_UP      301   /* Arrow keys */
#define K_DOWN    302
#define K_RIGHT   303
#define K_LEFT    304
#define K_S_UP    305   /* Shifted arrow keys */
#define K_S_DOWN  306
#define K_S_RIGHT 307
#define K_S_LEFT  308
#define K_HELP    309   /* Help key */
#define K_F1      331   /* Function keys F1-F10 */
#define K_F2      332
#define K_F3      333
#define K_F4      334
#define K_F5      335
#define K_F6      336
#define K_F7      337
#define K_F8      338
#define K_F9      339
#define K_F10     340
#define K_S_F1    341   /* Shifted function keys F1-F10 */
#define K_S_F2    342
#define K_S_F3    343
#define K_S_F4    344
#define K_S_F5    345
#define K_S_F6    346
#define K_S_F7    347
#define K_S_F8    348
#define K_S_F9    349
#define K_S_F10   350


/* Prototypes for functions defined in Keyboard.c */

#ifndef __NOPROTO
#ifndef __PROTO
#define __PROTO(a) a
#endif
#else
#ifndef __PROTO
#define __PROTO(a) ()
#endif
#endif

void CloseReadConsole __PROTO((void));
int DeadKeyConvert __PROTO((struct IntuiMessage *Message,
                            unsigned char *KeyBuffer,
                            int BufferSize,
                            struct KeyMap *KeyMap));
int OpenReadConsole __PROTO((void));
char ReadKey __PROTO((struct IntuiMessage *Message,
                      unsigned short *KeyID,
                      struct KeyMap *KeyMap));


#endif
