ps2base.h
上传用户:qddsws
上传日期:2022-06-22
资源大小:723k
文件大小:2k
源码类别:

操作系统开发

开发平台:

C/C++

  1. #ifndef PS2BASE_H
  2. #define PS2BASE_H
  3. #include<init.h>
  4. #include<devices.h>
  5. #include<list.h>
  6. #include<lib/string.h>
  7. #include <i386/io_low_HLL.h>
  8. #define KEYB_PORT             0x60  /* keyboard port */
  9. #define KEYB_CTRL             0x64  /* keyboard controller port */
  10. #define KCTRL_ENABLE_AUX 0xA8 /* enable aux port (PS/2 mouse) */
  11. #define KCTRL_WRITE_CMD_BYTE  0x60  /* write to command register */
  12. #define KCTRL_WRITE_AUX       0xD4 /* write next byte at port 60 to aux port */
  13. /* flags for KCTRL_WRITE_CMD_BYTE */
  14. #define KCTRL_IRQ1              0x01
  15. #define KCTRL_IRQ12             0x02
  16. #define KCTRL_SYS               0x04
  17. #define KCTRL_OVERRIDE_INHIBIT  0x08
  18. #define KCTRL_DISABLE_KEYB      0x10
  19. #define KCTRL_DISABLE_AUX       0x20
  20. #define KCTRL_TRANSLATE_XT      0x40
  21. /* commands to keyboard */
  22. #define KEYB_SET_LEDS 0xED
  23. #define KEYB_SET_SCANCODE_SET   0xF0
  24. #define KEYB_IDENTIFY           0xF2
  25. #define KEYB_SET_TYPEMATIC      0xF3
  26. #define KEYB_ENABLE             0xF4
  27. #define KEYB_RESET_DISABLE      0xF5
  28. #define KEYB_ALL_TYPM_MAKE_BRK  0xFA
  29. /* default ACK from keyboard following command */
  30. #define KEYB_ACK                "xFA"
  31. /* commands to aux device (PS/2 mouse) */
  32. #define AUX_INFORMATION 0xE9
  33. #define AUX_ENABLE 0xF4
  34. #define AUX_IDENTIFY 0xF2
  35. #define AUX_RESET 0xFF
  36. #ifndef min
  37. #define min(a, b) ((a) < (b) ? (a) : (b))
  38. #endif
  39. #ifndef max
  40. #define max(a, b) ((a) > (b) ? (a) : (b))
  41. #endif
  42. void kbdWrite(word port, byte data);
  43. byte kbdRead();
  44. byte kbdWriteRead(word port, byte data, const char* expect);
  45. #endif