lk201.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:5k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * Commands to the keyboard processor
  3.  */
  4. #define LK_PARAM 0x80 /* start/end parameter list */
  5. #define LK_CMD_RESUME 0x8b /* resume transmission to the host */
  6. #define LK_CMD_INHIBIT 0x89 /* stop transmission to the host */
  7. #define LK_CMD_LEDS_ON 0x13 /* light LEDs */
  8. /* 1st param: led bitmask */
  9. #define LK_CMD_LEDS_OFF 0x11 /* turn off LEDs */
  10. /* 1st param: led bitmask */
  11. #define LK_CMD_DIS_KEYCLK 0x99 /* disable the keyclick */
  12. #define LK_CMD_ENB_KEYCLK 0x1b /* enable the keyclick */
  13. /* 1st param: volume */
  14. #define LK_CMD_DIS_CTLCLK 0xb9 /* disable the Ctrl keyclick */
  15. #define LK_CMD_ENB_CTLCLK 0xbb /* enable the Ctrl keyclick */
  16. #define LK_CMD_SOUND_CLK 0x9f /* emit a keyclick */
  17. #define LK_CMD_DIS_BELL 0xa1 /* disable the bell */
  18. #define LK_CMD_ENB_BELL 0x23 /* enable the bell */
  19. /* 1st param: volume */
  20. #define LK_CMD_BELL 0xa7 /* emit a bell */
  21. #define LK_CMD_TMP_NORPT 0xd1 /* disable typematic */
  22. /* for the currently pressed key */
  23. #define LK_CMD_ENB_RPT 0xe3 /* enable typematic */
  24. /* for RPT_DOWN groups */
  25. #define LK_CMD_DIS_RPT 0xe1 /* disable typematic */
  26. /* for RPT_DOWN groups */
  27. #define LK_CMD_RPT_TO_DOWN 0xd9 /* set RPT_DOWN groups to DOWN */
  28. #define LK_CMD_REQ_ID 0xab /* request the keyboard ID */
  29. #define LK_CMD_POWER_UP 0xfd /* init power-up sequence */
  30. #define LK_CMD_TEST_MODE 0xcb /* enter the factory test mode */
  31. #define LK_CMD_TEST_EXIT 0x80 /* exit the factory test mode */
  32. #define LK_CMD_SET_DEFAULTS 0xd3 /* set power-up defaults */
  33. #define LK_CMD_MODE(m,div) (LK_PARAM|(((div)&0xf)<<3)|(((m)&0x3)<<1))
  34. /* select the repeat mode */
  35. /* for the selected key group */
  36. #define LK_CMD_MODE_AR(m,div) ((((div)&0xf)<<3)|(((m)&0x3)<<1))
  37. /* select the repeat mode */
  38. /* and the repeat register */
  39. /* for the selected key group */
  40. /* 1st param: register number */
  41. #define LK_CMD_RPT_RATE(r) (0x78|(((r)&0x3)<<1))
  42. /* set the delay and repeat rate */
  43. /* for the selected repeat register */
  44. /* 1st param: initial delay */
  45. /* 2nd param: repeat rate */
  46. /* there are 4 leds, represent them in the low 4 bits of a byte */
  47. #define LK_PARAM_LED_MASK(ledbmap) (LK_PARAM|((ledbmap)&0xf))
  48. #define LK_LED_WAIT 0x1 /* Wait LED */
  49. #define LK_LED_COMP 0x2 /* Compose LED */
  50. #define LK_LED_LOCK 0x4 /* Lock LED */
  51. #define LK_LED_HOLD 0x8 /* Hold Screen LED */
  52. /* max volume is 0, lowest is 0x7 */
  53. #define LK_PARAM_VOLUME(v) (LK_PARAM|((v)&0x7))
  54. /* mode set command details, div is a key group number */
  55. #define LK_MODE_DOWN 0x0 /* make only */
  56. #define LK_MODE_RPT_DOWN 0x1 /* make and typematic */
  57. #define LK_MODE_DOWN_UP 0x3 /* make and release */
  58. /* there are 4 repeat registers */
  59. #define LK_PARAM_AR(r) (LK_PARAM|((v)&0x3))
  60. /*
  61.  * Mappings between key groups and keycodes are as follows:
  62.  *
  63.  *  1: 0xbf - 0xfb -- alphanumeric,
  64.  *  2: 0x92 - 0xa4 -- numeric keypad,
  65.  *  3: 0xbc        -- Backspace,
  66.  *  4: 0xbd - 0xbe -- Tab, Return,
  67.  *  5: 0xb0 - 0xb1 -- Lock, Compose Character,
  68.  *  6: 0xae - 0xaf -- Ctrl, Shift,
  69.  *  7: 0xa7 - 0xa8 -- Left Arrow, Right Arrow,
  70.  *  8: 0xa9 - 0xab -- Up Arrow, Down Arrow, Right Shift,
  71.  *  9: 0x8a - 0x8f -- editor keypad,
  72.  * 10: 0x56 - 0x5a -- F1 - F5,
  73.  * 11: 0x64 - 0x68 -- F6 - F10,
  74.  * 12: 0x71 - 0x74 -- F11 - F14,
  75.  * 13: 0x7c - 0x7d -- Help, Do,
  76.  * 14: 0x80 - 0x83 -- F17 - F20.
  77.  *
  78.  * Others, i.e. 0x55, 0xac, 0xad, 0xb2, are undiscovered.
  79.  */
  80. /* delay is 5 - 630 ms; 0x00 and 0x7f are reserved */
  81. #define LK_PARAM_DELAY(t) ((t)&0x7f)
  82. /* rate is 12 - 127 Hz; 0x00 - 0x0b and 0x7d (power-up!) are reserved */
  83. #define LK_PARAM_RATE(r) (LK_PARAM|((r)&0x7f))
  84. #define LK_SHIFT 1<<0
  85. #define LK_CTRL 1<<1
  86. #define LK_LOCK 1<<2
  87. #define LK_COMP 1<<3
  88. #define LK_KEY_SHIFT 0xae
  89. #define LK_KEY_CTRL 0xaf
  90. #define LK_KEY_LOCK 0xb0
  91. #define LK_KEY_COMP 0xb1
  92. #define LK_KEY_RELEASE 0xb3 /* all keys released */
  93. #define LK_KEY_REPEAT 0xb4 /* repeat the last key */
  94. /* status responses */
  95. #define LK_STAT_RESUME_ERR 0xb5 /* keystrokes lost while inhibited */
  96. #define LK_STAT_ERROR 0xb6 /* an invalid command received */
  97. #define LK_STAT_INHIBIT_ACK 0xb7 /* transmission inhibited */
  98. #define LK_STAT_TEST_ACK 0xb8 /* the factory test mode entered */
  99. #define LK_STAT_MODE_KEYDOWN 0xb9 /* a key is down on a change */
  100. /* to the DOWN_UP mode; */
  101. /* the keycode follows */
  102. #define LK_STAT_MODE_ACK 0xba /* the mode command succeeded */
  103. #define LK_STAT_PWRUP_ID 0x01 /* the power-up response start mark */
  104. #define LK_STAT_PWRUP_OK 0x00 /* the power-up self test OK */
  105. #define LK_STAT_PWRUP_KDOWN 0x3d /* a key was down during the test */
  106. #define LK_STAT_PWRUP_ERROR 0x3e /* keyboard self test failure */
  107. extern unsigned char scancodeRemap[256];