Subversion Repositories pentevo

Rev

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

  1. #ifndef ZX_H
  2. #define ZX_H
  3.  
  4. #include "mytypes.h"
  5.  
  6.  
  7.  
  8. // key code is 7 bits, 8th bit is press/release (1=press,0=release)
  9. //
  10. // ACHTUNG!!!! DO NOT CHANGE THESE DEFINES, OTHERWISE MUCH OF CODE WILL BREAK!!!!
  11. //
  12. #define PRESS_BIT  7
  13. #define PRESS_MASK 128
  14. #define KEY_MASK   127
  15. //
  16. #define KEY_SP  0
  17. #define KEY_EN  1
  18. #define KEY_P   2
  19. #define KEY_0   3
  20. #define KEY_1   4
  21. #define KEY_Q   5
  22. #define KEY_A   6
  23. #define KEY_CS  7
  24. //
  25. #define KEY_SS  8
  26. #define KEY_L   9
  27. #define KEY_O  10
  28. #define KEY_9  11
  29. #define KEY_2  12
  30. #define KEY_W  13
  31. #define KEY_S  14
  32. #define KEY_Z  15
  33. //
  34. #define KEY_M  16
  35. #define KEY_K  17
  36. #define KEY_I  18
  37. #define KEY_8  19
  38. #define KEY_3  20
  39. #define KEY_E  21
  40. #define KEY_D  22
  41. #define KEY_X  23
  42. //
  43. #define KEY_N  24
  44. #define KEY_J  25
  45. #define KEY_U  26
  46. #define KEY_7  27
  47. #define KEY_4  28
  48. #define KEY_R  29
  49. #define KEY_F  30
  50. #define KEY_C  31
  51. //
  52. #define KEY_B  32
  53. #define KEY_H  33
  54. #define KEY_Y  34
  55. #define KEY_6  35
  56. #define KEY_5  36
  57. #define KEY_T  37
  58. #define KEY_G  38
  59. #define KEY_V  39
  60. //
  61. #define NO_KEY 0x7F
  62. #define RST_48 0x7E
  63. #define RST128 0x7D
  64. #define RSTRDS 0x7C
  65. #define RSTSYS 0x7B
  66. #define CLRKYS 0x7A
  67. //
  68.  
  69.  
  70. // pause between (CS|SS) and not(CS|SS)
  71. #define SHIFT_PAUSE 8
  72. //
  73. extern volatile UBYTE shift_pause;
  74.  
  75. /*struct zx {
  76.         UBYTE counters[40];
  77.         UBYTE map[5]; // send order: LSbit first, from [4] to [0]
  78.         UBYTE reset_type;
  79. };*/
  80.  
  81.  
  82. #define ZX_TASK_INIT 0
  83. #define ZX_TASK_WORK 1
  84.  
  85. void zx_task(UBYTE operation);
  86.  
  87. void zx_init(void);
  88.  
  89. void to_zx(UBYTE scancode, UBYTE was_E0, UBYTE was_release);
  90.  
  91. void update_keys(UBYTE zxcode, UBYTE was_release);
  92.  
  93. void zx_clr_kb(void);
  94.  
  95.  
  96. void  zx_fifo_put(UBYTE input);
  97. UBYTE zx_fifo_isfull(void);
  98. UBYTE zx_fifo_isempty(void);
  99. UBYTE zx_fifo_get(void);
  100. UBYTE zx_fifo_copy(void);
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107. #endif
  108.  
  109.