]> git.friedersdorff.com Git - max/tmk_keyboard.git/blob - converter/pc98_usb/keymap.c
Fix matrix.c to use new default impl.
[max/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 };