#ifndef INPUT_H
#define INPUT_H TRUE

/*
**	$VER: input.i V0.8B
**
**	(C) Copyright 1996-1997 DreamWorld Productions.
**	    All Rights Reserved
*/

#ifndef DPKERNEL_H
#include <games/dpkernel.h>
#endif

/****************************************************************************
** Special Keypresses that can be returned from ReadKey() are listed here.
** All other keys can be considered to be in ASCII format.
*/

struct Keys {
  struct Head Head;
  BYTE  KP_Key1;
  BYTE  KP_Key2;
  BYTE  KP_Key3;
  BYTE  KP_Key4;
};

#define K_SCS    0x80       /* Screen switch (LEFTAMIGA + M) */
#define K_DEL    0x81
#define K_HELP   0x82

#define K_LSHIFT 0x83
#define K_RSHIFT 0x84
#define K_CAPS   0x85
#define K_CTRL   0x86
#define K_LALT   0x87
#define K_RALT   0x88
#define K_LAMIGA 0x89
#define K_RAMIGA 0x8a

#define K_F1  0x8b
#define K_F2  0x8c
#define K_F3  0x8d
#define K_F4  0x8e
#define K_F5  0x8f
#define K_F6  0x90
#define K_F7  0x91
#define K_F8  0x92
#define K_F9  0x93
#define K_F10 0x94
#define K_F11 0x95
#define K_F12 0x96
#define K_F13 0x97
#define K_F14 0x98
#define K_F15 0x99
#define K_F16 0x9a
#define K_F17 0x9b
#define K_F18 0x9c
#define K_F19 0x9d
#define K_F20 0x9e

#define C_UP     0x9f
#define C_DOWN   0xa0
#define C_RIGHT  0xa1
#define C_LEFT   0xa2

#define K_SRIGHT 0xa3   /* Special key on right */
#define K_SLEFT  0xa4   /* Special key on left */

/* Special keys that are recognised under ASCII (here for convenience) */

#define K_BAKSPC 08
#define K_TAB    09
#define K_ENTER  10
#define K_RETURN 10
#define K_ESC    0x1b

#endif
