rev1.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. #pragma once
  2. #include "sinc.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_75( \
  12. LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, \
  13. LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
  14. LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, \
  15. LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, \
  16. LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
  17. LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \
  18. ) \
  19. { \
  20. { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  21. { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  22. { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  23. { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
  24. { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  25. { KC_NO, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \
  26. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
  27. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \
  28. { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, KC_NO }, \
  29. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
  30. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO }, \
  31. { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, KC_NO } \
  32. }
  33. #define LAYOUT_80( \
  34. LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9, \
  35. LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  36. LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \
  37. LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \
  38. LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  39. LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \
  40. ) \
  41. { \
  42. { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  43. { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  44. { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  45. { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
  46. { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  47. { KC_NO, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \
  48. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  49. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \
  50. { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9 }, \
  51. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  52. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 }, \
  53. { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9 } \
  54. }
  55. #define LAYOUT_75_with_macro( \
  56. LF1, LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, \
  57. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
  58. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, \
  59. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, \
  60. LD1, LD2, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
  61. LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \
  62. ) \
  63. { \
  64. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  65. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  66. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  67. { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
  68. { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  69. { LF1, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \
  70. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
  71. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \
  72. { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, KC_NO }, \
  73. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
  74. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO }, \
  75. { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, KC_NO } \
  76. }
  77. #define LAYOUT_80_with_macro( \
  78. LF1, LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9, \
  79. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  80. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \
  81. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \
  82. LD1, LD2, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  83. LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \
  84. ) \
  85. { \
  86. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  87. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  88. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  89. { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
  90. { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  91. { LF1, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \
  92. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  93. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \
  94. { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9 }, \
  95. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  96. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 }, \
  97. { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9 } \
  98. }
  99. #define LAYOUT_75_iso( \
  100. LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, \
  101. LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
  102. LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, \
  103. LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, \
  104. LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
  105. LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \
  106. ) \
  107. { \
  108. { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  109. { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  110. { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  111. { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  112. { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  113. { KC_NO, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \
  114. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
  115. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, KC_NO }, \
  116. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, KC_NO }, \
  117. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
  118. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO }, \
  119. { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, KC_NO } \
  120. }
  121. #define LAYOUT_80_iso( \
  122. LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9, \
  123. LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  124. LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, \
  125. LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \
  126. LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  127. LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \
  128. ) \
  129. { \
  130. { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  131. { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  132. { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  133. { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  134. { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  135. { KC_NO, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \
  136. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  137. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9 }, \
  138. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \
  139. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  140. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 }, \
  141. { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9 } \
  142. }
  143. #define LAYOUT_75_iso_with_macro( \
  144. LF1, LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, \
  145. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
  146. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, \
  147. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, \
  148. LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
  149. LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \
  150. ) \
  151. { \
  152. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  153. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  154. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  155. { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  156. { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  157. { LF1, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \
  158. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
  159. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, KC_NO }, \
  160. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, KC_NO }, \
  161. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
  162. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO }, \
  163. { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, KC_NO } \
  164. }
  165. #define LAYOUT_80_iso_with_macro( \
  166. LF1, LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9, \
  167. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  168. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, \
  169. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \
  170. LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  171. LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \
  172. ) \
  173. { \
  174. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  175. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  176. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  177. { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  178. { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  179. { LF1, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \
  180. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  181. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9 }, \
  182. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \
  183. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  184. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 }, \
  185. { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9 } \
  186. }
  187. #define LAYOUT_all( \
  188. LF1, LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9, \
  189. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  190. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \
  191. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \
  192. LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  193. LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \
  194. ) \
  195. { \
  196. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  197. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  198. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  199. { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  200. { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \
  201. { LF1, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \
  202. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  203. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \
  204. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \
  205. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  206. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 }, \
  207. { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9 } \
  208. }