]> git.friedersdorff.com Git - max/tmk_keyboard.git/blob - converter/ibm4704_usb/unimap_trans.h
ibmpc: Fix how to initialize keyboard
[max/tmk_keyboard.git] / converter / ibm4704_usb / unimap_trans.h
1 /*
2 Copyright 2016 Jun Wako <wakojun@gmail.com>
3
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17 #ifndef UNIMAP_TRNAS_H
18 #define UNIMAP_TRNAS_H
19
20 #include <stdint.h>
21 #include <avr/pgmspace.h>
22 #include "unimap.h"
23
24
25 const uint8_t PROGMEM unimap_trans[MATRIX_ROWS][MATRIX_COLS] = { // 16*8
26 #ifndef IBM4704_ALPS
27     /* IBM4740 Capcitive models(62-key/77-key/107-key)
28      * ,-------. ,-----------------------------------------------------------. ,-----------. ,---------------.
29      * | F1| F2| |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|JPY|BSp| |Ins|Hom|PgU| |NmL|  /|  *|  -|
30      * |-------| |-----------------------------------------------------------| |-----------| |---------------|
31      * | F3| F4| |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \| |Del|End|PgD| |  7|  8|  9|  +|
32      * |-------| |-----------------------------------------------------------| |-----------| |---------------|
33      * | F5| F6| |Caps  |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|  #|Retn| |PrS|ScL|Pau| |  4|  5|  6|KP,|
34      * |-------| |-----------------------------------------------------------| |-----------| |---------------|
35      * | F7| F8| |Shif|  <|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /| RO|Shift | |F11| Up|F12| |  1|  2|  3|Ent|
36      * |-------| |-----------------------------------------------------------| |-----------| |---------------|
37      * | F9|F10| |Ctrl |Gui|Alt  |         Space             |Alt* |Gui|Ctrl | |Lef|Dow|Rig| |Esc|  0|KP.|KP=|
38      * `-------' `-----------------------------------------------------------' `-----------' `---------------'
39      * scan codes
40      * ,-------. ,-----------------------------------------------------------. ,-----------. ,---------------.
41      * | 46| 64| | 00| 18| 19| 1A| 10| 11| 12| 08| 09| 0A| 0F| 1F| 0D| 0C| 0E| | 6A| 6B| 6C| | 47| 48| 49| 4A|
42      * |-------| |-----------------------------------------------------------| |-----------| |---------------|
43      * | 56| 66| | 04  | 05| 06| 13| 14| 15| 16| 17| 01| 02| 03| 1B| 1C|   1D| | 6D| 6E| 6F| | 4B| 4C| 4D| 4E|
44      * |-------| |-----------------------------------------------------------| |-----------| |---------------|
45      * | 71| 77| | 20   | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2A| 2B| 2C|  2D| | 70| 65| 72| | 50| 51| 52| 53|
46      * |-------| |-----------------------------------------------------------| |-----------| |---------------|
47      * | 44| 45| | 30 | 3E| 32| 33| 34| 35| 36| 37| 38| 39| 3A| 3B| 3C|    3D| | 74| 75| 76| | 5E| 58| 59| 5A|
48      * |-------| |-----------------------------------------------------------| |-----------| |---------------|
49      * | 54| 55| |  31 | 41|  3F |          40               | *3F | 42|  2F | | 78| 67| 79| | 5B| 5C| 5D| 57|
50      * `-------' `-----------------------------------------------------------' `-----------' `---------------'
51      * Both Alt keys spit same scan code 3F.
52      */
53     { UNIMAP_GRV,  UNIMAP_I,    UNIMAP_O,    UNIMAP_P,    UNIMAP_TAB,  UNIMAP_Q,    UNIMAP_W,    UNIMAP_NO   }, // 00-07
54     { UNIMAP_7,    UNIMAP_8,    UNIMAP_9,    UNIMAP_F13,  UNIMAP_JYEN, UNIMAP_EQL,  UNIMAP_BSPC, UNIMAP_0    }, // 08-0F
55     { UNIMAP_4,    UNIMAP_5,    UNIMAP_6,    UNIMAP_E,    UNIMAP_R,    UNIMAP_T,    UNIMAP_Y,    UNIMAP_U    }, // 10-17
56     { UNIMAP_1,    UNIMAP_2,    UNIMAP_3,    UNIMAP_LBRC, UNIMAP_RBRC, UNIMAP_BSLS, UNIMAP_F14,  UNIMAP_MINS }, // 18-1F
57     { UNIMAP_CAPS, UNIMAP_A,    UNIMAP_S,    UNIMAP_D,    UNIMAP_F,    UNIMAP_G,    UNIMAP_H,    UNIMAP_J    }, // 20-27
58     { UNIMAP_K,    UNIMAP_L,    UNIMAP_SCLN, UNIMAP_QUOT, UNIMAP_NUHS, UNIMAP_ENT,  UNIMAP_NO,   UNIMAP_RCTL }, // 28-2F
59     { UNIMAP_LSFT, UNIMAP_LCTL, UNIMAP_Z,    UNIMAP_X,    UNIMAP_C,    UNIMAP_V,    UNIMAP_B,    UNIMAP_N,   }, // 30-37
60     { UNIMAP_M,    UNIMAP_COMM, UNIMAP_DOT,  UNIMAP_SLSH, UNIMAP_RO,   UNIMAP_RSFT, UNIMAP_NUBS, UNIMAP_LALT }, // 38-3F
61     { UNIMAP_SPC,  UNIMAP_LGUI, UNIMAP_RGUI, UNIMAP_NO,   UNIMAP_F7,   UNIMAP_F8,   UNIMAP_F1,   UNIMAP_NLCK }, // 40-47
62     { UNIMAP_PSLS, UNIMAP_PAST, UNIMAP_PMNS, UNIMAP_P7,   UNIMAP_P8,   UNIMAP_P9,   UNIMAP_PPLS, UNIMAP_NO   }, // 48-4F
63     { UNIMAP_P4,   UNIMAP_P5,   UNIMAP_P6,   UNIMAP_PCMM, UNIMAP_F9,   UNIMAP_F10,  UNIMAP_F3,   UNIMAP_PEQL }, // 50-57
64     { UNIMAP_P2,   UNIMAP_P3,   UNIMAP_PENT, UNIMAP_ESC,  UNIMAP_P0,   UNIMAP_PDOT, UNIMAP_P1,   UNIMAP_NO   }, // 58-5F
65     { UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,   UNIMAP_F2,   UNIMAP_SLCK, UNIMAP_F4,   UNIMAP_DOWN }, // 60-67
66     { UNIMAP_NO,   UNIMAP_NO,   UNIMAP_INS,  UNIMAP_HOME, UNIMAP_PGUP, UNIMAP_DEL,  UNIMAP_END,  UNIMAP_PGDN }, // 68-6F
67     { UNIMAP_PSCR, UNIMAP_F5,   UNIMAP_PAUS, UNIMAP_NO,   UNIMAP_F11,  UNIMAP_UP,   UNIMAP_F12,  UNIMAP_F6   }, // 70-77
68     { UNIMAP_LEFT, UNIMAP_RGHT, UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO   }  // 78-7F
69 #else
70     /* IBM4740 Alps models(102-key)
71      * ,---------------------------------------------------------------. ,-----------. ,---------------.
72      * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|JPY|BSp| F1| |Ins|Hom|PgU| |NmL|  /|  *|  -|
73      * |---------------------------------------------------------------| |-----------| |---------------|
74      * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \| F2| |Del|End|PgD| |  7|  8|  9|  +|
75      * |---------------------------------------------------------------| |-----------| |---------------|
76      * |Caps  |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|  #|Retn| F3| |PrS|ScL|Pau| |  4|  5|  6|KP,|
77      * |---------------------------------------------------------------| |-----------| |---------------|
78      * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /| RO|Shift | F4| |F11| Up|F12| |  1|  2|  3|Ent|
79      * |---------------------------------------------------------------| |-----------| |---------------|
80      * |Ctrl |Gui|Alt  |         Space             |Alt  |Gui|  Ctrl   | |Lef|Dow|Rig| |Esc|  0|KP.|KP=|
81      * `---------------------------------------------------------------' `-----------' `---------------'
82      * ,---------------------------------------------------------------. ,-----------. ,---------------.
83      * | 00| 0F| 01| 02| 03| 04| 05| 06| 07| 08| 09| 0A| 0B| 0C| 0D| 0E| | 44| 45| 46| | 43| 41| 42| 4A|
84      * |---------------------------------------------------------------| |-----------| |---------------|
85      * |  10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1A| 1B| 1C|  1D | 1E| | 54| 55| 56| | 50| 51| 52| 5A|
86      * |---------------------------------------------------------------| |-----------| |---------------|
87      * | 20   | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2A| 2B| 2C| 2D | 2E| | 64| 65| 66| | 60| 61| 62| 6B|
88      * |---------------------------------------------------------------| |-----------| |---------------|
89      * |   30   | 32| 33| 34| 35| 36| 37| 38| 39| 3A| 3B| 3C|  3D  | 3E| | 74| 75| 76| | 70| 71| 72| 7B|
90      * |---------------------------------------------------------------| |-----------| |---------------|
91      * |  31 | 47|  3F |          40               | 4F  | 48|     2F  | | 77| 67| 57| | 73| 63| 53| 4E|
92      * `---------------------------------------------------------------' `-----------' `---------------'
93      */
94     { UNIMAP_GRV,  UNIMAP_2,    UNIMAP_3,    UNIMAP_4,    UNIMAP_5,    UNIMAP_6,    UNIMAP_7,    UNIMAP_8    }, // 00-07
95     { UNIMAP_9,    UNIMAP_0,    UNIMAP_MINS, UNIMAP_EQL,  UNIMAP_JYEN, UNIMAP_BSPC, UNIMAP_F1,   UNIMAP_1    }, // 08-0F
96     { UNIMAP_TAB,  UNIMAP_Q,    UNIMAP_W,    UNIMAP_E,    UNIMAP_R,    UNIMAP_T,    UNIMAP_Y,    UNIMAP_U    }, // 10-17
97     { UNIMAP_I,    UNIMAP_O,    UNIMAP_P,    UNIMAP_LBRC, UNIMAP_RBRC, UNIMAP_BSLS, UNIMAP_F2,   UNIMAP_NO   }, // 18-1F
98     { UNIMAP_CAPS, UNIMAP_A,    UNIMAP_S,    UNIMAP_D,    UNIMAP_F,    UNIMAP_G,    UNIMAP_H,    UNIMAP_J    }, // 20-27
99     { UNIMAP_K,    UNIMAP_L,    UNIMAP_SCLN, UNIMAP_QUOT, UNIMAP_NUHS, UNIMAP_ENT,  UNIMAP_F3,   UNIMAP_RCTL }, // 28-2F
100     { UNIMAP_LSFT, UNIMAP_LCTL, UNIMAP_Z,    UNIMAP_X,    UNIMAP_C,    UNIMAP_V,    UNIMAP_B,    UNIMAP_N    }, // 30-37
101     { UNIMAP_M,    UNIMAP_COMM, UNIMAP_DOT,  UNIMAP_SLSH, UNIMAP_RO,   UNIMAP_RSFT, UNIMAP_F4,   UNIMAP_LALT }, // 38-3F
102     { UNIMAP_SPC,  UNIMAP_PSLS, UNIMAP_PAST, UNIMAP_NLCK, UNIMAP_INS,  UNIMAP_HOME, UNIMAP_PGUP, UNIMAP_LGUI }, // 40-47
103     { UNIMAP_RGUI, UNIMAP_NO,   UNIMAP_PMNS, UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,   UNIMAP_PEQL, UNIMAP_RALT }, // 48-4F
104     { UNIMAP_P7,   UNIMAP_P8,   UNIMAP_P9,   UNIMAP_PDOT, UNIMAP_DEL,  UNIMAP_END,  UNIMAP_PGDN, UNIMAP_RGHT }, // 50-57
105     { UNIMAP_NO,   UNIMAP_NO,   UNIMAP_PPLS, UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,  }, // 58-5F
106     { UNIMAP_P4,   UNIMAP_P5,   UNIMAP_P6,   UNIMAP_P0,   UNIMAP_PSCR, UNIMAP_SLCK, UNIMAP_PAUS, UNIMAP_DOWN }, // 60-67
107     { UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,   UNIMAP_PCMM, UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,  }, // 68-6F
108     { UNIMAP_P1,   UNIMAP_P2,   UNIMAP_P3,   UNIMAP_ESC,  UNIMAP_F11,  UNIMAP_UP,   UNIMAP_F12,  UNIMAP_LEFT }, // 70-77
109     { UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,   UNIMAP_PENT, UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,   UNIMAP_NO,  }  // 78-7F
110 #endif
111 };
112
113 #endif