44 lines
1.8 KiB
C
44 lines
1.8 KiB
C
#include "fifo.h"
|
|
|
|
#ifndef _KEYBOARD_H_
|
|
#define _KEYBOARD_H_
|
|
|
|
#define PORT_KEYDAT 0x0060
|
|
#define PORT_KEYSTA 0x0064
|
|
#define PORT_KEYCMD 0x0064
|
|
|
|
#define KEYSTA_SEND_NOTREADY 0x02
|
|
#define KEYCMD_WRITE_MODE 0x60
|
|
#define KBC_MODE 0x47
|
|
|
|
#define KEYCMD_LED 0xed
|
|
|
|
static char keytable0[] = {
|
|
0, 0, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', 0,
|
|
0, 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '[', ']', 0, 0,
|
|
'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ';', '\'', '`', 0, '\\', 'Z',
|
|
'X', 'C', 'V', 'B', 'N', 'M', ',', '.', '/', 0, '*', 0, ' ', 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '7', '8', '9', '-',
|
|
'4', '5', '6', '+', '1', '2', '3', '0', '.', 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
static char keytable1[] = {
|
|
0, 0, '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', 0,
|
|
0, 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '{', '}', 0, 0,
|
|
'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ':', '"', '~', 0, '|', 'Z',
|
|
'X', 'C', 'V', 'B', 'N', 'M', '<', '>', '?', 0, '*', 0, ' ', 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '7', '8', '9', '-',
|
|
'4', '5', '6', '+', '1', '2', '3', '0', '.', 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
void wait_KBC_sendready(void);
|
|
void init_keyboard(struct FIFO32 *fifo, int data0);
|
|
|
|
void int_handler21(int *esp);
|
|
|
|
#endif // _KEYBOARD_H_
|