#ifndef GMS_MISC_H
#define GMS_MISC_H TRUE

/* --- Choose one of these for calling Set_Interrupt() --- */

#define INTB_INTEN   14   /* Master interrupt (enable only ) */
#define INTB_EXTER   13   /* External interrupt */
#define INTB_DSKSYNC 12   /* Disk re-SYNChronized */
#define INTB_RBF     11   /* serial port Receive Buffer Full */
#define INTB_AUD3    10   /* Audio channel 3 block finished */
#define INTB_AUD2     9   /* Audio channel 2 block finished */
#define INTB_AUD1     8   /* Audio channel 1 block finished */
#define INTB_AUD0     7   /* Audio channel 0 block finished */
#define INTB_BLIT     6   /* Blitter finished */
#define INTB_VERTB    5   /* start of Vertical Blank */
#define INTB_COPER    4   /* Coprocessor */
#define INTB_PORTS    3   /* I/O Ports and timers */
#define INTB_SOFTINT  2   /* software interrupt rest */
#define INTB_DSKBLK   1   /* Disk Block done */
#define INTB_TBE      0   /* serial port Transmit Buffer Empty */

/* --- Special Keypresses that can be returned from Read_Key().  All other
** keys can be considered to be in ASCII format.
*/

 struct Keys
  {
  WORD  KP_ID;
  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    ""

#endif
