aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/keyboard.c4
-rw-r--r--converter/adb_usb/keymap.c80
-rw-r--r--keyboard/hid_liber/keymap.c8
-rw-r--r--keyboard/phantom/led.c8
-rw-r--r--protocol/adb.c1
5 files changed, 77 insertions, 24 deletions
diff --git a/common/keyboard.c b/common/keyboard.c
index cd1ceb420..2dee51d4b 100644
--- a/common/keyboard.c
+++ b/common/keyboard.c
@@ -619,6 +619,10 @@ void keyboard_task(void)
619 Kdebug("FAIL SAFE: clear all keys(default layer).\n"); 619 Kdebug("FAIL SAFE: clear all keys(default layer).\n");
620 clear_keyboard(); 620 clear_keyboard();
621 current_layer = default_layer; 621 current_layer = default_layer;
622 fn_state_bits = 0;
623 delayed_fn = (keyrecord_t){};
624 waiting_key = (keyrecord_t){};
625 NEXT(IDLE);
622 } 626 }
623 } 627 }
624 628
diff --git a/converter/adb_usb/keymap.c b/converter/adb_usb/keymap.c
index 25f851859..bde829de3 100644
--- a/converter/adb_usb/keymap.c
+++ b/converter/adb_usb/keymap.c
@@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18/* 18/*
19 * Keymap for ADB keyboard 19 * Keymap for ADB keyboard
20 */ 20 */
21#include <stdint.h> 21#include <stdint.h>
@@ -31,36 +31,84 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
31 31
32#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)])) 32#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)]))
33 33
34// Convert physical keyboard layout to matrix array. 34#define KEYMAP_ALL( \
35// This is a macro to define keymap easily in keyboard layout form.
36/* Apple Extended Keyboard */
37#define KEYMAP( \
38 K35, K7A,K78,K63,K76, K60,K61,K62,K64, K65,K6D,K67,K6F, K69,K6B,K71, K7F, \ 35 K35, K7A,K78,K63,K76, K60,K61,K62,K64, K65,K6D,K67,K6F, K69,K6B,K71, K7F, \
39 K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K72,K73,K74, K47,K51,K4B,K43, \ 36 K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K72,K73,K74, K47,K51,K4B,K43, \
40 K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E,K2A, K75,K77,K79, K59,K5B,K5C,K4E, \ 37 K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E,K2A, K75,K77,K79, K59,K5B,K5C,K4E, \
41 K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K45, \ 38 K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K45, \
42 K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K7B, K3E, K53,K54,K55, \ 39 K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K7B, K3E, K53,K54,K55, \
43 K36,K3A,K37, K31, K7C,K7D, K3B,K3D,K3C, K52, K41,K4C \ 40 K36,K3A,K37, K31, K7C,K7D, K3B,K3D,K3C, K52, K41,K4C, \
41 /* for ISO/JIS keyboard */ \
42 K0A, /* NON-US \ and | 0x64 */ \
43 K34, /* Keypad ENTER 0x58 */ \
44 K40, /* F17 0x6C */ \
45 K44, /* F18? 0x6d */ \
46 K4F, /* F18 0x6d */ \
47 K50, /* F19 0x6e */ \
48 K5A, /* F20 0x6f */ \
49 K5D, /* INTL3(Yen) 0x89 */ \
50 K5E, /* INTL1(Ro) 0x87 */ \
51 K5F, /* Keypad Comma 0x85 */ \
52 K66, /* LANG2(Eisu) 0x91 */ \
53 K68, /* LANG1(Kana) 0x90 */ \
54 K6A, /* F16 0x6B */ \
55 K6E /* Application 0x65 */ \
44) { \ 56) { \
45 { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \ 57 { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
46 { KC_##K08, KC_##K09, KC_NO, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, \ 58 { KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, \
47 { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \ 59 { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \
48 { KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, \ 60 { KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, \
49 { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \ 61 { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \
50 { KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \ 62 { KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \
51 { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_NO, KC_##K35, KC_##K36, KC_##K37 }, \ 63 { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, \
52 { KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_NO }, \ 64 { KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_NO }, \
53 { KC_NO, KC_##K41, KC_NO, KC_##K43, KC_NO, KC_##K45, KC_NO, KC_##K47 }, \ 65 { KC_##K40, KC_##K41, KC_NO, KC_##K43, KC_##K44, KC_##K45, KC_NO, KC_##K47 }, \
54 { KC_NO, KC_NO, KC_NO, KC_##K4B, KC_##K4C, KC_NO, KC_##K4E, KC_NO }, \ 66 { KC_NO, KC_NO, KC_NO, KC_##K4B, KC_##K4C, KC_NO, KC_##K4E, KC_##K4F }, \
55 { KC_NO, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \ 67 { KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \
56 { KC_##K58, KC_##K59, KC_NO, KC_##K5B, KC_##K5C, KC_NO, KC_NO, KC_NO }, \ 68 { KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_##K5C, KC_##K5D, KC_##K5E, KC_##K5F }, \
57 { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_NO, KC_##K67 }, \ 69 { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67 }, \
58 { KC_NO, KC_##K69, KC_NO, KC_##K6B, KC_NO, KC_##K6D, KC_NO, KC_##K6F }, \ 70 { KC_##K68, KC_##K69, KC_##K6A, KC_##K6B, KC_NO, KC_##K6D, KC_##K6E, KC_##K6F }, \
59 { KC_NO, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77 }, \ 71 { KC_NO, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77 }, \
60 { KC_##K78, KC_##K79, KC_##K7A, KC_##K7B, KC_##K7C, KC_##K7D, KC_NO, KC_##K7F } \ 72 { KC_##K78, KC_##K79, KC_##K7A, KC_##K7B, KC_##K7C, KC_##K7D, KC_NO, KC_##K7F } \
61} 73}
62 74
63 75
76
77// Convert physical keyboard layout to matrix array.
78// This is a macro to define keymap easily in keyboard layout form.
79/* Apple Extended Keyboard */
80#define KEYMAP_EXTENDED_US( \
81 K35, K7A,K78,K63,K76, K60,K61,K62,K64, K65,K6D,K67,K6F, K69,K6B,K71, K7F, \
82 K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K72,K73,K74, K47,K51,K4B,K43, \
83 K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E,K2A, K75,K77,K79, K59,K5B,K5C,K4E, \
84 K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K45, \
85 K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K7B, K3E, K53,K54,K55, \
86 K36,K3A,K37, K31, K7C,K7D, K3B,K3D,K3C, K52, K41,K4C \
87) KEYMAP_ALL( \
88 K35, K7A,K78,K63,K76, K60,K61,K62,K64, K65,K6D,K67,K6F, K69,K6B,K71, K7F, \
89 K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K72,K73,K74, K47,K51,K4B,K43, \
90 K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E,K2A, K75,K77,K79, K59,K5B,K5C,K4E, \
91 K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K45, \
92 K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K7B, K3E, K53,K54,K55, \
93 K36,K3A,K37, K31, K7C,K7D, K3B,K3D,K3C, K52, K41,K4C, \
94 /* for ISO/JIS keyboard */ \
95 NONUS_BSLASH, /* NON-US \ and | 0x64 */ \
96 KP_ENTER, /* Keypad ENTER 0x58 */ \
97 F17, /* F17 0x6C */ \
98 F18, /* F18? 0x6d */ \
99 F18, /* F18 0x6d */ \
100 F19, /* F19 0x6e */ \
101 F20, /* F20 0x6f */ \
102 INT3, /* INTL3(Yen) 0x89 */ \
103 INT1, /* INTL1(Ro) 0x87 */ \
104 KP_COMMA, /* Keypad Comma 0x85 */ \
105 LANG2, /* LANG2(Eisu) 0x91 */ \
106 LANG1, /* LANG1(Kana) 0x90 */ \
107 F16, /* F16 0x6B */ \
108 APPLICATION /* Application 0x65 */ \
109)
110
111
64// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed. 112// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
65static const uint8_t PROGMEM fn_layer[] = { 113static const uint8_t PROGMEM fn_layer[] = {
66 0, // Fn0 114 0, // Fn0
@@ -103,9 +151,9 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
103 * |Ctrl |Gui |Alt | Space | | | | |Lef|Dow|Rig| | 0| .| | 151 * |Ctrl |Gui |Alt | Space | | | | |Lef|Dow|Rig| | 0| .| |
104 * `-----------------------------------------------------------' `-----------' `---------------' 152 * `-----------------------------------------------------------' `-----------' `---------------'
105 */ 153 */
106 KEYMAP( 154 KEYMAP_EXTENDED_US(
107 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS, PWR, 155 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS, PWR,
108 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,EQL, PSLS,PAST, 156 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PEQL,PSLS,PAST,
109 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9, PMNS, 157 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9, PMNS,
110 CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS, 158 CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS,
111 LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3, 159 LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
diff --git a/keyboard/hid_liber/keymap.c b/keyboard/hid_liber/keymap.c
index 55fe87232..e35f7245d 100644
--- a/keyboard/hid_liber/keymap.c
+++ b/keyboard/hid_liber/keymap.c
@@ -125,7 +125,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
125 * |-----------------------------------------------------------| `-----------' 125 * |-----------------------------------------------------------| `-----------'
126 * |FN1 | A| S| D| F| G| H| J| K| L| ;| '|Return | 126 * |FN1 | A| S| D| F| G| H| J| K| L| ;| '|Return |
127 * |-----------------------------------------------------------| ,---. 127 * |-----------------------------------------------------------| ,---.
128 * |Shft | Z| X| C| V| B| N| M| ,| .| /|Shift | |Up | 128 * |Shft|iso| Z| X| C| V| B| N| M| ,| .| /|Shift | |Up |
129 * |-----------------------------------------------------------| ,-----------. 129 * |-----------------------------------------------------------| ,-----------.
130 * |Ctl|Gui|Alt| Space |Alt|Gui|App|Ctl| |Lef|Dow|Rig| 130 * |Ctl|Gui|Alt| Space |Alt|Gui|App|Ctl| |Lef|Dow|Rig|
131 * `-----------------------------------------------------------' `-----------' 131 * `-----------------------------------------------------------' `-----------'
@@ -136,7 +136,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
136 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, INS, HOME, PGUP, \ 136 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, INS, HOME, PGUP, \
137 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, DEL, END, PGDN, \ 137 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, DEL, END, PGDN, \
138 FN1, A, S, D, F, G, H, J, K, L, SCLN, QUOT, ENT, \ 138 FN1, A, S, D, F, G, H, J, K, L, SCLN, QUOT, ENT, \
139 LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, UP, \ 139 LSFT, NUBS, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, UP, \
140 LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, RCTL, LEFT, DOWN, RGHT), 140 LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, RCTL, LEFT, DOWN, RGHT),
141 141
142/* EXAMPLE ISO keymap, see the NUBS and NUHS keycodes 142/* EXAMPLE ISO keymap, see the NUBS and NUHS keycodes
@@ -161,7 +161,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
161 * |-----------------------------------------------------------| `-----------' 161 * |-----------------------------------------------------------| `-----------'
162 * |FN1 | A| S| D| F| G| H| J| K| L| ;| '|Return | 162 * |FN1 | A| S| D| F| G| H| J| K| L| ;| '|Return |
163 * |-----------------------------------------------------------| ,---. 163 * |-----------------------------------------------------------| ,---.
164 * |Shft | Z| X|Clc| V| B| N| M| ,| .| /|Caps | |Up | 164 * |Shft|iso| Z| X|Clc| V| B| N| M| ,| .| /|Caps | |Up |
165 * |-----------------------------------------------------------| ,-----------. 165 * |-----------------------------------------------------------| ,-----------.
166 * |Ctl|Gui|Alt| Space |Alt|Gui|App|Ctl| |Lef|Dow|Rig| 166 * |Ctl|Gui|Alt| Space |Alt|Gui|App|Ctl| |Lef|Dow|Rig|
167 * `-----------------------------------------------------------' `-----------' 167 * `-----------------------------------------------------------' `-----------'
@@ -172,7 +172,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
172 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9,MUTE, VOLD, VOLU, BSPC, INS, HOME, PGUP, \ 172 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9,MUTE, VOLD, VOLU, BSPC, INS, HOME, PGUP, \
173 TAB, Q, W, E, R, T, Y, U, I,MSTP,MPLY, MPRV, MNXT, MSEL, DEL, END, PGDN, \ 173 TAB, Q, W, E, R, T, Y, U, I,MSTP,MPLY, MPRV, MNXT, MSEL, DEL, END, PGDN, \
174 FN1, A, S, D, F, G, H, J, K, L, SCLN, QUOT, ENT, \ 174 FN1, A, S, D, F, G, H, J, K, L, SCLN, QUOT, ENT, \
175 LSFT, NO, Z, X,CALC, V, B, N, M, COMM, DOT, SLSH, CAPS, UP, \ 175 LSFT, NUBS, Z, X,CALC, V, B, N, M, COMM, DOT, SLSH, CAPS, UP, \
176 LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, RCTL, LEFT, DOWN, RGHT), 176 LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, RCTL, LEFT, DOWN, RGHT),
177 177
178 178
diff --git a/keyboard/phantom/led.c b/keyboard/phantom/led.c
index 3523cb756..109004ba8 100644
--- a/keyboard/phantom/led.c
+++ b/keyboard/phantom/led.c
@@ -23,12 +23,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23void led_set(uint8_t usb_led) 23void led_set(uint8_t usb_led)
24{ 24{
25 if (!(usb_led & (1<<USB_LED_CAPS_LOCK))) 25 if (!(usb_led & (1<<USB_LED_CAPS_LOCK)))
26 PORTB &= ~(1<<6); 26 DDRB &= ~(1<<6);
27 else 27 else
28 PORTB |= (1<<6); 28 DDRB |= (1<<6);
29 29
30 if (!(usb_led & (1<<USB_LED_SCROLL_LOCK))) 30 if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)))
31 PORTB &= ~(1<<7); 31 DDRB &= ~(1<<7);
32 else 32 else
33 PORTB |= (1<<7); 33 DDRB |= (1<<7);
34} 34}
diff --git a/protocol/adb.c b/protocol/adb.c
index 9f52f6ce7..9e8d76832 100644
--- a/protocol/adb.c
+++ b/protocol/adb.c
@@ -264,6 +264,7 @@ ADB Keycode
264 http://72.0.193.250/Documentation/macppc/adbkeycodes/ 264 http://72.0.193.250/Documentation/macppc/adbkeycodes/
265 http://m0115.web.fc2.com/m0115.jpg 265 http://m0115.web.fc2.com/m0115.jpg
266 [Inside Macintosh volume V, pages 191-192] 266 [Inside Macintosh volume V, pages 191-192]
267 http://www.opensource.apple.com/source/IOHIDFamily/IOHIDFamily-421.18.3/IOHIDFamily/Cosmo_USB2ADB.c
267ADB Signaling 268ADB Signaling
268 http://kbdbabel.sourceforge.net/doc/kbd_signaling_pcxt_ps2_adb.pdf 269 http://kbdbabel.sourceforge.net/doc/kbd_signaling_pcxt_ps2_adb.pdf
269ADB Overview & History 270ADB Overview & History