Teensy 4.1 core updated for C++20
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 line
5.0KB

  1. /* Teensyduino Core Library
  2. * http://www.pjrc.com/teensy/
  3. * Copyright (c) 2017 PJRC.COM, LLC.
  4. *
  5. * Permission is hereby granted, free of charge, to any person obtaining
  6. * a copy of this software and associated documentation files (the
  7. * "Software"), to deal in the Software without restriction, including
  8. * without limitation the rights to use, copy, modify, merge, publish,
  9. * distribute, sublicense, and/or sell copies of the Software, and to
  10. * permit persons to whom the Software is furnished to do so, subject to
  11. * the following conditions:
  12. *
  13. * 1. The above copyright notice and this permission notice shall be
  14. * included in all copies or substantial portions of the Software.
  15. *
  16. * 2. If the Software is incorporated into a build system that allows
  17. * selection among a list of target devices, then similar target
  18. * devices manufactured by PJRC.COM must be included in the list of
  19. * target devices and selectable in the same manner.
  20. *
  21. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  22. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  23. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  24. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
  25. * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
  26. * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  27. * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  28. * SOFTWARE.
  29. */
  30. #include <avr/pgmspace.h>
  31. #include <stdint.h>
  32. #include "keylayouts.h"
  33. #ifdef M
  34. #undef M
  35. #endif
  36. #define M(n) ((n) & KEYCODE_MASK)
  37. const KEYCODE_TYPE keycodes_ascii[] = {
  38. M(ASCII_20), M(ASCII_21), M(ASCII_22), M(ASCII_23),
  39. M(ASCII_24), M(ASCII_25), M(ASCII_26), M(ASCII_27),
  40. M(ASCII_28), M(ASCII_29), M(ASCII_2A), M(ASCII_2B),
  41. M(ASCII_2C), M(ASCII_2D), M(ASCII_2E), M(ASCII_2F),
  42. M(ASCII_30), M(ASCII_31), M(ASCII_32), M(ASCII_33),
  43. M(ASCII_34), M(ASCII_35), M(ASCII_36), M(ASCII_37),
  44. M(ASCII_38), M(ASCII_39), M(ASCII_3A), M(ASCII_3B),
  45. M(ASCII_3C), M(ASCII_3D), M(ASCII_3E), M(ASCII_3F),
  46. M(ASCII_40), M(ASCII_41), M(ASCII_42), M(ASCII_43),
  47. M(ASCII_44), M(ASCII_45), M(ASCII_46), M(ASCII_47),
  48. M(ASCII_48), M(ASCII_49), M(ASCII_4A), M(ASCII_4B),
  49. M(ASCII_4C), M(ASCII_4D), M(ASCII_4E), M(ASCII_4F),
  50. M(ASCII_50), M(ASCII_51), M(ASCII_52), M(ASCII_53),
  51. M(ASCII_54), M(ASCII_55), M(ASCII_56), M(ASCII_57),
  52. M(ASCII_58), M(ASCII_59), M(ASCII_5A), M(ASCII_5B),
  53. M(ASCII_5C), M(ASCII_5D), M(ASCII_5E), M(ASCII_5F),
  54. M(ASCII_60), M(ASCII_61), M(ASCII_62), M(ASCII_63),
  55. M(ASCII_64), M(ASCII_65), M(ASCII_66), M(ASCII_67),
  56. M(ASCII_68), M(ASCII_69), M(ASCII_6A), M(ASCII_6B),
  57. M(ASCII_6C), M(ASCII_6D), M(ASCII_6E), M(ASCII_6F),
  58. M(ASCII_70), M(ASCII_71), M(ASCII_72), M(ASCII_73),
  59. M(ASCII_74), M(ASCII_75), M(ASCII_76), M(ASCII_77),
  60. M(ASCII_78), M(ASCII_79), M(ASCII_7A), M(ASCII_7B),
  61. M(ASCII_7C), M(ASCII_7D), M(ASCII_7E), M(ASCII_7F)
  62. };
  63. #ifdef ISO_8859_1_A0
  64. const KEYCODE_TYPE keycodes_iso_8859_1[] = {
  65. M(ISO_8859_1_A0), M(ISO_8859_1_A1), M(ISO_8859_1_A2), M(ISO_8859_1_A3),
  66. M(ISO_8859_1_A4), M(ISO_8859_1_A5), M(ISO_8859_1_A6), M(ISO_8859_1_A7),
  67. M(ISO_8859_1_A8), M(ISO_8859_1_A9), M(ISO_8859_1_AA), M(ISO_8859_1_AB),
  68. M(ISO_8859_1_AC), M(ISO_8859_1_AD), M(ISO_8859_1_AE), M(ISO_8859_1_AF),
  69. M(ISO_8859_1_B0), M(ISO_8859_1_B1), M(ISO_8859_1_B2), M(ISO_8859_1_B3),
  70. M(ISO_8859_1_B4), M(ISO_8859_1_B5), M(ISO_8859_1_B6), M(ISO_8859_1_B7),
  71. M(ISO_8859_1_B8), M(ISO_8859_1_B9), M(ISO_8859_1_BA), M(ISO_8859_1_BB),
  72. M(ISO_8859_1_BC), M(ISO_8859_1_BD), M(ISO_8859_1_BE), M(ISO_8859_1_BF),
  73. M(ISO_8859_1_C0), M(ISO_8859_1_C1), M(ISO_8859_1_C2), M(ISO_8859_1_C3),
  74. M(ISO_8859_1_C4), M(ISO_8859_1_C5), M(ISO_8859_1_C6), M(ISO_8859_1_C7),
  75. M(ISO_8859_1_C8), M(ISO_8859_1_C9), M(ISO_8859_1_CA), M(ISO_8859_1_CB),
  76. M(ISO_8859_1_CC), M(ISO_8859_1_CD), M(ISO_8859_1_CE), M(ISO_8859_1_CF),
  77. M(ISO_8859_1_D0), M(ISO_8859_1_D1), M(ISO_8859_1_D2), M(ISO_8859_1_D3),
  78. M(ISO_8859_1_D4), M(ISO_8859_1_D5), M(ISO_8859_1_D6), M(ISO_8859_1_D7),
  79. M(ISO_8859_1_D8), M(ISO_8859_1_D9), M(ISO_8859_1_DA), M(ISO_8859_1_DB),
  80. M(ISO_8859_1_DC), M(ISO_8859_1_DD), M(ISO_8859_1_DE), M(ISO_8859_1_DF),
  81. M(ISO_8859_1_E0), M(ISO_8859_1_E1), M(ISO_8859_1_E2), M(ISO_8859_1_E3),
  82. M(ISO_8859_1_E4), M(ISO_8859_1_E5), M(ISO_8859_1_E6), M(ISO_8859_1_E7),
  83. M(ISO_8859_1_E8), M(ISO_8859_1_E9), M(ISO_8859_1_EA), M(ISO_8859_1_EB),
  84. M(ISO_8859_1_EC), M(ISO_8859_1_ED), M(ISO_8859_1_EE), M(ISO_8859_1_EF),
  85. M(ISO_8859_1_F0), M(ISO_8859_1_F1), M(ISO_8859_1_F2), M(ISO_8859_1_F3),
  86. M(ISO_8859_1_F4), M(ISO_8859_1_F5), M(ISO_8859_1_F6), M(ISO_8859_1_F7),
  87. M(ISO_8859_1_F8), M(ISO_8859_1_F9), M(ISO_8859_1_FA), M(ISO_8859_1_FB),
  88. M(ISO_8859_1_FC), M(ISO_8859_1_FD), M(ISO_8859_1_FE), M(ISO_8859_1_FF)
  89. };
  90. #endif // ISO_8859_1_A0