]> git.gir.st - tmk_keyboard.git/blob - converter/pc98_usb/keymap.c
Merge commit '22b6e15a179031afb7c3534cf7b109b0668b602c'
[tmk_keyboard.git] / converter / pc98_usb / keymap.c
1 /*
2 Copyright 2012 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
18 #include <stdint.h>
19 #include <stdbool.h>
20 #include "keycode.h"
21 #include "action.h"
22 #include "action_macro.h"
23 #include "util.h"
24 #include "keymap.h"
25
26
27
28
29 /* PC-9801-98-S02 Raku Raku keyboard(Luckyboard) Normal Mode
30 ,---------------------------------------------------------------.
31 | 60| 61| 62| 63| 64| 65| 66| 67| 68| 69| 6A| 6B| 36| 37| 3F| 3E|
32 `---------------------------------------------------------------'
33 ,---------------------------------------------------------------.
34 | 00| 01| 02| 03| 04| 05| 58| 71| 06| 07| 08| 09| 0A| 0E|
35 |---------------------------------------------------------------|
36 | 0F| 10| 11| 12| 13| 14| 3A | 15| 16| 17| 18| 19| 1C|
37 |---------------------------------------------------------'. |
38 | 74| 20| 21| 22| 23| 24| 3B | 3C | 25| 26| 27| 28| 29| |
39 |---------------------------------------------------------------|
40 | 70| 2A| 2B| 2C| 2D| 2E| 38| 3D | 39| 2F| 30| 31| 32| 33| 70|
41 `---------------------------------------------------------------'
42 | 73| 51| 5B| 59| 34| 5A| 35| xx|
43 `-----------------------------------------------'
44 xx: 74 35 F4 B5
45 */
46 #define KEYMAP( \
47 K60, K61, K62, K63, K64, K65, K66, K67, K68, K69, K6A, K6B, K36, K37, K3F, K3E, \
48 K00, K01, K02, K03, K04, K05, K58, K71, K06, K07, K08, K09, K0A, K0E, \
49 K0F, K10, K11, K12, K13, K14, K3A, K15, K16, K17, K18, K19, K1C, \
50 K74, K20, K21, K22, K23, K24, K3B, K3C, K25, K26, K27, K28, K29, \
51 K70,K2A, K2B, K2C, K2D, K2E, K38, K3D, K39, K2F, K30, K31, K32, K33, \
52 K73, K51, K5B, K59, K34, K5A, K35 \
53 ) { \
54 { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
55 { KC_##K08, KC_##K09, KC_##K0A, KC_NO, KC_NO, KC_NO, KC_##K0E, KC_##K0F }, \
56 { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \
57 { KC_##K18, KC_##K19, KC_NO, KC_NO, KC_##K1C, KC_NO, KC_NO, KC_NO }, \
58 { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \
59 { KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \
60 { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, \
61 { KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_##K3F }, \
62 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
63 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
64 { KC_NO, KC_##K51, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
65 { KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_NO, KC_NO, KC_NO, KC_NO }, \
66 { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67 }, \
67 { KC_##K68, KC_##K69, KC_##K6A, KC_##K6B, KC_NO, KC_NO, KC_NO, KC_NO }, \
68 { KC_##K70, KC_##K71, KC_NO, KC_##K73, KC_##K74, KC_NO, KC_NO, KC_NO }, \
69 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \
70 }
71
72
73
74 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
75 /*
76 ,---------------------------------------------------------------.
77 | 60| 61| 62| 63| 64| 65| 66| 67| 68| 69| 6A| 6B| 36| 37| 3F| 3E|
78 `---------------------------------------------------------------'
79 ,---------------------------------------------------------------.
80 | 00| 01| 02| 03| 04| 05| 58| 71| 06| 07| 08| 09| 0A| 0E|
81 |---------------------------------------------------------------|
82 | 0F| 10| 11| 12| 13| 14| 3A | 15| 16| 17| 18| 19| 1C|
83 |---------------------------------------------------------------|
84 | 74| 20| 21| 22| 23| 24| MINS| EQL| 25| 26| 27| 28| 29| |
85 |---------------------------------------------------------------|
86 | 70| 2A| 2B| 2C| 2D| 2E| 38| 3D | 39| 2F| 30| 31| 32| 33| 70|
87 `---------------------------------------------------------------'
88 | 73| 51| 5B| 59| 34| 5A| 35| xx|
89 `-----------------------------------------------'
90 */
91 KEYMAP(
92 CANCEL,COPY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, FN6,
93 ESC, 1, 2, 3, 4, 5, FN4, FN5, 6, 7, 8, 9, 0, BSPC,
94 TAB, Q, W, E, R, T, UP, Y, U, I, O, P, ENT,
95 LCTL, A, S, D, F, G, MINS, EQL, H, J, K, L, FN2,
96 LSFT, Z, X, C, V, B, GRV, BSLS, QUOT, N, M,COMM, DOT, FN1,
97 LGUI, LALT, LCTL, LSFT, SPC, SPC, RALT
98 ),
99 KEYMAP(
100 PAUS,COPY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14,
101 GRV, F1, F2, F3, F4, F5, NO, NO, F6, F7, F8, F9, F10, DEL,
102 TAB, Q, W, E, R, T, UP, HOME,PGDN,PGUP, END, P, ENT,
103 LCTL, A, S, D, F, G, MINS, EQL, LEFT,DOWN, UP,RGHT,SCLN,
104 LSFT, Z, X, C, V, B, INS, DOWN, DEL,HOME,PGDN,PGUP, END,TRNS,
105 LGUI, LALT, LCTL, LSFT, SPC, SPC, RALT
106 ),
107 KEYMAP(
108 PAUS,COPY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14,
109 GRV, F1, F2, F3, F4, F5, NO, NO, F6, F7, F8, F9, F10, DEL,
110 TAB, Q, W, E, R, T, UP, WH_L,WH_D,WH_U,WH_R, P, ENT,
111 LCTL, A, S, D, F, G, MINS, EQL, MS_L,MS_D,MS_U,MS_R,TRNS,
112 LSFT, Z, X, C, V, B, INS, DOWN, BTN3,BTN2,BTN1,BTN4,BTN5,TRNS,
113 LGUI, LALT, LCTL, LSFT, SPC, SPC, RALT
114 ),
115 };
116
117 /*
118 * Macro definition
119 */
120 enum macro_id {
121 LBRACKET,
122 RBRACKET,
123 DUMMY,
124 };
125
126 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
127 {
128 keyevent_t event = record->event;
129 //uint8_t tap_count = record->tap_count;
130
131 switch (id) {
132 case LBRACKET:
133 return (event.pressed ?
134 MACRO( T(LBRC), END ) :
135 MACRO( T(LBRC), END ) );
136 case RBRACKET:
137 return (event.pressed ?
138 MACRO( T(RBRC), END ) :
139 MACRO( T(RBRC), END ) );
140 }
141 return MACRO_NONE;
142 }
143
144 /*
145 * Action function
146 */
147 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
148 {
149 /*
150 keyevent_t event = record->event;
151 uint8_t tap_count = record->tap_count;
152 switch (id) {
153 case 0xFF:
154 action_macro_play(get_macro(opt, event.pressed));
155 break;
156 }
157 */
158 }
159
160
161 /*
162 * Fn actions
163 */
164 const action_t PROGMEM fn_actions[] = {
165 ACTION_LAYER_TAP_TOGGLE(0), // FN0
166 ACTION_LAYER_TAP_KEY(1, KC_SLASH), // FN1
167 ACTION_LAYER_TAP_KEY(2, KC_SCLN), // FN2
168 ACTION_LAYER_MOMENTARY(2), // FN3
169 ACTION_MACRO(LBRACKET), // FN4
170 ACTION_MACRO(RBRACKET), // FN5
171 ACTION_MACRO(DUMMY), // FN6
172 };
Imprint / Impressum