/*
Copyright (C) 1998 BJ Eirich (aka vecna)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public Lic
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/

#ifndef KEYBOARD_H
#define KEYBOARD_H

extern volatile byte key[128];
extern volatile byte last_pressed;
extern int InitKeyboard(void);
extern void ShutdownKeyboard(void);
#ifdef DJGPP
extern void keyboard_chain(int toggle);
#endif

/* Constants for keyboard scan-codes */

#define SCAN_ESC        0x01
#define SCAN_1          0x02
#define SCAN_2          0x03
#define SCAN_3          0x04
#define SCAN_4          0x05
#define SCAN_5          0x06
#define SCAN_6          0x07
#define SCAN_7          0x08
#define SCAN_8          0x09
#define SCAN_9          0x0a
#define SCAN_0          0x0b
#define SCAN_MINUS      0x0c
#define SCAN_EQUALS     0x0d
#define SCAN_BACKSP     0x0e
#define SCAN_TAB        0x0f
#define SCAN_Q          0x10
#define SCAN_W          0x11
#define SCAN_E          0x12
#define SCAN_R          0x13
#define SCAN_T          0x14
#define SCAN_Y          0x15
#define SCAN_U          0x16
#define SCAN_I          0x17
#define SCAN_O          0x18
#define SCAN_P          0x19
#define SCAN_LANGLE     0x1a
#define SCAN_RANGLE     0x1b
#define SCAN_ENTER      0x1c
#define SCAN_CTRL       0x1d
#define SCAN_A          0x1e
#define SCAN_S          0x1f
#define SCAN_D          0x20
#define SCAN_F          0x21
#define SCAN_G          0x22
#define SCAN_H          0x23
#define SCAN_J          0x24
#define SCAN_K          0x25
#define SCAN_L          0x26
#define SCAN_SCOLON     0x27
#define SCAN_QUOTA      0x28
#define SCAN_RQUOTA     0x29
#define SCAN_LSHIFT     0x2a
#define SCAN_BSLASH     0x2b
#define SCAN_Z          0x2c
#define SCAN_X          0x2d
#define SCAN_C          0x2e
#define SCAN_V          0x2f
#define SCAN_B          0x30
#define SCAN_N          0x31
#define SCAN_M          0x32
#define SCAN_COMA       0x33
#define SCAN_DOT        0x34
#define SCAN_SLASH      0x35
#define SCAN_RSHIFT     0x36
#define SCAN_GREY_STAR  0x37
#define SCAN_ALT        0x38
#define SCAN_SPACE      0x39
#define SCAN_CAPS       0x3a
#define SCAN_F1         0x3b
#define SCAN_F2         0x3c
#define SCAN_F3         0x3d
#define SCAN_F4         0x3e
#define SCAN_F5         0x3f
#define SCAN_F6         0x40
#define SCAN_F7         0x41
#define SCAN_F8         0x42
#define SCAN_F9         0x43
#define SCAN_F10        0x44
#define SCAN_NUMLOCK    0x45
#define SCAN_SCRLOCK    0x46
#define SCAN_HOME       0x47
#define SCAN_UP         0x48
#define SCAN_PGUP       0x49
#define SCAN_GREY_MINUS 0x4a
#define SCAN_LEFT       0x4b
#define SCAN_PAD_5      0x4c
#define SCAN_RIGHT      0x4d
#define SCAN_GREY_PLUS  0x4e
#define SCAN_END        0x4f
#define SCAN_DOWN       0x50
#define SCAN_PGDN       0x51
#define SCAN_INSERT     0x52
#define SCAN_DEL        0x53
#define SCAN_F11        0x57
#define SCAN_F12        0x58
#endif
