rev2.h 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. #pragma once
  2. #include "quefrency.h"
  3. #include "quantum.h"
  4. #ifdef USE_I2C
  5. #include <stddef.h>
  6. #ifdef __AVR__
  7. #include <avr/io.h>
  8. #include <avr/interrupt.h>
  9. #endif
  10. #endif
  11. #define LAYOUT_60( \
  12. LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
  13. LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, \
  14. LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, \
  15. LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
  16. LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8 \
  17. ) \
  18. { \
  19. { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  20. { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  21. { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  22. { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
  23. { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  24. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
  25. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \
  26. { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, KC_NO }, \
  27. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
  28. { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, KC_NO } \
  29. }
  30. #define LAYOUT LAYOUT_60 // For backwards compatibility with Rev. 1
  31. #define LAYOUT_65( \
  32. LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  33. LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \
  34. LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \
  35. LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  36. LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8, RE9 \
  37. ) \
  38. { \
  39. { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  40. { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  41. { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  42. { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
  43. { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  44. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  45. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \
  46. { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9 }, \
  47. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  48. { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, RE9 } \
  49. }
  50. #define LAYOUT_60_with_macro( \
  51. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
  52. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, \
  53. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, \
  54. LD1, LD2, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
  55. LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8 \
  56. ) \
  57. { \
  58. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  59. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  60. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  61. { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
  62. { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  63. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
  64. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \
  65. { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, KC_NO }, \
  66. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
  67. { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, KC_NO } \
  68. }
  69. #define LAYOUT_65_with_macro( \
  70. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  71. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \
  72. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \
  73. LD1, LD2, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  74. LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8, RE9 \
  75. ) \
  76. { \
  77. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  78. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  79. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  80. { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
  81. { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  82. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  83. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \
  84. { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9 }, \
  85. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  86. { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, RE9 } \
  87. }
  88. #define LAYOUT_60_iso( \
  89. LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
  90. LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, \
  91. LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, \
  92. LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
  93. LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8 \
  94. ) \
  95. { \
  96. { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  97. { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  98. { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  99. { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  100. { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  101. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
  102. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, KC_NO }, \
  103. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, KC_NO }, \
  104. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
  105. { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, KC_NO } \
  106. }
  107. #define LAYOUT_65_iso( \
  108. LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  109. LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, \
  110. LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \
  111. LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  112. LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8, RE9 \
  113. ) \
  114. { \
  115. { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  116. { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  117. { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  118. { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  119. { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  120. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  121. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9 }, \
  122. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \
  123. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  124. { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, RE9 } \
  125. }
  126. #define LAYOUT_60_iso_with_macro( \
  127. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
  128. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, \
  129. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, \
  130. LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
  131. LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8 \
  132. ) \
  133. { \
  134. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  135. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  136. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  137. { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  138. { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  139. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
  140. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, KC_NO }, \
  141. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, KC_NO }, \
  142. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
  143. { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, KC_NO } \
  144. }
  145. #define LAYOUT_65_iso_with_macro( \
  146. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  147. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, \
  148. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \
  149. LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  150. LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8, RE9 \
  151. ) \
  152. { \
  153. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  154. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  155. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  156. { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  157. { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  158. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  159. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9 }, \
  160. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \
  161. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  162. { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, RE9 } \
  163. }
  164. #define LAYOUT_all( \
  165. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  166. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \
  167. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \
  168. LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  169. LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8, RE9 \
  170. ) \
  171. { \
  172. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  173. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  174. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  175. { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  176. { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \
  177. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  178. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \
  179. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \
  180. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  181. { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, RE9 } \
  182. }