Subversion Repositories pentevo

Rev

Rev 75 | Rev 127 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #ifndef PS2_H
  2. #define PS2_H
  3.  
  4. #include "mytypes.h"
  5.  
  6. // ============  ps2 common ===================
  7.  
  8. extern volatile UBYTE ps2_flags;
  9. #define PS2MOUSE_DIRECTION_FLAG 0x01 //direction for data 0 - Receive/1 - Send
  10. #define PS2MOUSE_TYPE_FLAG      0x02 //type mouse 0 - classical (3bytes in packet)/1 - msoft (4bytes in packet)
  11. #define PS2MOUSE_ZX_READY_FLAG  0x04 //data for zx 0 - not ready/1 - ready
  12. #define SPI_INT_FLAG            0x08 //spi int 0 - not received/1 - received
  13.  
  14. /**
  15.  * Decode received data.
  16.  * @return decoded data.
  17.  * @par count - counter.
  18.  * @par shifter - received bits.
  19.  */
  20. UBYTE ps2_decode(UBYTE count, UWORD shifter);
  21. /**
  22.  * Encode (prepare) sended data.
  23.  * @return encoded data.
  24.  * @par data - data to send.
  25.  */
  26. UWORD ps2_encode(UBYTE data);
  27.  
  28. //=======  ps2 keyboard  ================
  29.  
  30. extern volatile UWORD ps2keyboard_shifter;
  31. extern volatile UBYTE ps2keyboard_count;
  32. extern volatile UBYTE ps2keyboard_timeout;
  33.  
  34. #define PS2KEYBOARD_TIMEOUT 20
  35.  
  36. void ps2keyboard_task(void); // main entry function
  37. void ps2keyboard_parse(UBYTE);
  38.  
  39. //=======  ps2 mouse  ================
  40.  
  41. /** Timeout for waiting response from mouse. */
  42. #define PS2MOUSE_TIMEOUT 20
  43.  
  44. /** Received/sended PS/2 mouse data register.*/
  45. extern volatile UWORD ps2mouse_shifter;
  46.  
  47. /** Counter of current received/sended PS/2 mouse data bit.*/
  48. extern volatile UBYTE ps2mouse_count;
  49.  
  50. /** Timeout register for detecting send/response PS/2 mouse timeouts.*/
  51. extern volatile UBYTE ps2mouse_timeout;
  52.  
  53. /** Index of PS/2 mouse initialization step (@see ps2mouse_init_sequence).*/
  54. extern volatile UBYTE ps2mouse_initstep;
  55.  
  56. /** Counter of PS/2 mouse response bytes.*/
  57. extern volatile UBYTE ps2mouse_resp_count;
  58.  
  59. /** Check and translate data from PS/2 mouse.*/
  60. void ps2mouse_task(void);
  61.  
  62. #endif //PS2_H
  63.  
  64.