text: #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
  
  static char keytable[0x54] = {
      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',  '.'};
  
  void wait_KBC_sendready(void);
  void init_keyboard(struct FIFO32 *fifo, int data0);
  
  void int_handler21(int *esp);
  
  #endif // _KEYBOARD_H_
  