Pluckey: Fix QMK Configurator Implementation (#15254)

* rename LAYOUT to LAYOUT_all

* pluckey.h: add matrix diagram

* pluckey.h: use XXX for KC_NO

* add LAYOUT_ergo macro with keymap

`info.json` had layout data for this macro, but the macro was not present in the source code.

* info.json: correct key sequence

Fixes incorrect key assignments in QMK Configurator.
master
James Young 2021-11-23 19:02:38 +00:00 committed by GitHub
parent e73d22d7f1
commit 8b05d30cd1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 273 additions and 150 deletions

View File

@ -2,147 +2,158 @@
"keyboard_name": "pluckey",
"url": "https://github.com/floookay/pluckey",
"maintainer": "floookay",
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},
"layouts": {
"LAYOUT": {
"LAYOUT_all": {
"layout": [
{"x":3.5, "y":0},
{"x":15, "y":0},
{"x":2.5, "y":0.125},
{"x":4.5, "y":0.125},
{"x":14, "y":0.125},
{"x":16, "y":0.125},
{"x":5.5, "y":0.25},
{"x":6.5, "y":0.25},
{"x":12, "y":0.25},
{"x":13, "y":0.25},
{"x":0, "y":0.625, "w":1.5},
{"x":1.5, "y":0.625},
{"x":17, "y":0.625},
{"x":18, "y":0.625, "w":1.5},
{"x":3.5, "y":1.0},
{"x":15, "y":1.0},
{"x":2.5, "y":1.125},
{"x":4.5, "y":1.125},
{"x":14, "y":1.125},
{"x":16, "y":1.125},
{"x":5.5, "y":1.25},
{"x":6.5, "y":1.25},
{"x":12, "y":1.25},
{"x":13, "y":1.25},
{"x":0, "y":1.625, "w":1.5},
{"x":1.5, "y":1.625},
{"x":17, "y":1.625},
{"x":18, "y":1.625, "w":1.5},
{"x":3.5, "y":2},
{"x":15, "y":2},
{"x":2.5, "y":2.125},
{"x":4.5, "y":2.125},
{"x":14, "y":2.125},
{"x":16, "y":2.125},
{"x":5.5, "y":2.25},
{"x":6.5, "y":2.25},
{"x":12, "y":2.25},
{"x":13, "y":2.25},
{"x":0, "y":2.625, "w":1.5},
{"x":1.5, "y":2.625},
{"x":17, "y":2.625},
{"x":18, "y":2.625, "w":1.5},
{"x":6.5, "y":3.25},
{"x":12, "y":3.25},
{"x":3.5, "y":3},
{"x":15, "y":3},
{"x":2.5, "y":3.125},
{"x":4.5, "y":3.125},
{"x":14, "y":3.125},
{"x":16, "y":3.125},
{"x":5.5, "y":3.25},
{"x":13, "y":3.25},
{"x":0, "y":3.625, "w":1.5},
{"x":1.5, "y":3.625},
{"x":17, "y":3.625},
{"x":18, "y":3.625, "w":1.5},
{"x":7.5, "y":3.75},
{"x":11, "y":3.75},
{"x":3.5, "y":4},
{"x":15, "y":4},
{"x":2.5, "y":4.125},
{"x":4.5, "y":4.125},
{"x":14, "y":4.125},
{"x":16, "y":4.125},
{"x":5.75, "y":4.5, "w":1.5},
{"x":12.25, "y":4.5, "w":1.5},
{"x":7.25, "y":4.75},
{"x":11.25, "y":4.75}
{"label":"Esc", "x":0, "y":0.625, "w":1.5},
{"label":"1!", "x":1.5, "y":0.625},
{"label":"2@", "x":2.5, "y":0.125},
{"label":"3#", "x":3.5, "y":0},
{"label":"4$", "x":4.5, "y":0.125},
{"label":"5%", "x":5.5, "y":0.25},
{"label":"-_", "x":6.5, "y":0.25},
{"label":"=+", "x":12, "y":0.25},
{"label":"6^", "x":13, "y":0.25},
{"label":"7&", "x":14, "y":0.125},
{"label":"8*", "x":15, "y":0},
{"label":"9(", "x":16, "y":0.125},
{"label":"0)", "x":17, "y":0.625},
{"label":"`~", "x":18, "y":0.625, "w":1.5},
{"label":"Tab", "x":0, "y":1.625, "w":1.5},
{"label":"Q", "x":1.5, "y":1.625},
{"label":"W", "x":2.5, "y":1.125},
{"label":"E", "x":3.5, "y":1},
{"label":"R", "x":4.5, "y":1.125},
{"label":"T", "x":5.5, "y":1.25},
{"label":"[{", "x":6.5, "y":1.25},
{"label":"]}", "x":12, "y":1.25},
{"label":"Y", "x":13, "y":1.25},
{"label":"U", "x":14, "y":1.125},
{"label":"I", "x":16, "y":1.125},
{"label":"O", "x":15, "y":1},
{"label":"P", "x":17, "y":1.625},
{"label":"\\|", "x":18, "y":1.625, "w":1.5},
{"label":"Ctrl", "x":0, "y":2.625, "w":1.5},
{"label":"A", "x":1.5, "y":2.625},
{"label":"S", "x":2.5, "y":2.125},
{"label":"D", "x":3.5, "y":2},
{"label":"F", "x":4.5, "y":2.125},
{"label":"G", "x":5.5, "y":2.25},
{"label":"(", "x":6.5, "y":2.25},
{"label":")", "x":12, "y":2.25},
{"label":"H", "x":13, "y":2.25},
{"label":"J", "x":14, "y":2.125},
{"label":"K", "x":16, "y":2.125},
{"label":"L", "x":15, "y":2},
{"label":";:", "x":17, "y":2.625},
{"label":"'\"", "x":18, "y":2.625, "w":1.5},
{"label":"Shift", "x":0, "y":3.625, "w":1.5},
{"label":"Z", "x":1.5, "y":3.625},
{"label":"X", "x":2.5, "y":3.125},
{"label":"C", "x":3.5, "y":3},
{"label":"V", "x":4.5, "y":3.125},
{"label":"B", "x":5.5, "y":3.25},
{"label":"{", "x":6.5, "y":3.25},
{"label":"Home", "x":7.5, "y":3.75},
{"label":"End", "x":11, "y":3.75},
{"label":"}", "x":12, "y":3.25},
{"label":"N", "x":13, "y":3.25},
{"label":"M", "x":14, "y":3.125},
{"label":",<", "x":15, "y":3},
{"label":".>", "x":16, "y":3.125},
{"label":"/?", "x":17, "y":3.625},
{"label":"Shift", "x":18, "y":3.625, "w":1.5},
{"label":"GUI", "x":2.5, "y":4.125},
{"label":"Alt", "x":3.5, "y":4},
{"label":"Lower", "x":4.5, "y":4.125},
{"label":"Space", "x":5.75, "y":4.5, "w":1.5},
{"label":"Backspace", "x":7.25, "y":4.75},
{"label":"Enter", "x":11.25, "y":4.75},
{"label":"Space", "x":12.25, "y":4.5, "w":1.5},
{"label":"Raise", "x":14, "y":4.125},
{"label":"Alt", "x":15, "y":4},
{"label":"MEH", "x":16, "y":4.125}
]
},
"LAYOUT_ergo": {
"layout": [
{"x":3.5, "y":0},
{"x":15, "y":0},
{"x":2.5, "y":0.125},
{"x":4.5, "y":0.125},
{"x":14, "y":0.125},
{"x":16, "y":0.125},
{"x":5.5, "y":0.25},
{"x":6.5, "y":0.25},
{"x":12, "y":0.25},
{"x":13, "y":0.25},
{"x":0, "y":0.625, "w":1.5},
{"x":1.5, "y":0.625},
{"x":17, "y":0.625},
{"x":18, "y":0.625, "w":1.5},
{"x":3.5, "y":1.0},
{"x":15, "y":1.0},
{"x":2.5, "y":1.125},
{"x":4.5, "y":1.125},
{"x":14, "y":1.125},
{"x":16, "y":1.125},
{"x":5.5, "y":1.25},
{"x":6.5, "y":1.25, "h":1.5},
{"x":12, "y":1.25, "h":1.5},
{"x":13, "y":1.25},
{"x":0, "y":1.625, "w":1.5},
{"x":1.5, "y":1.625},
{"x":17, "y":1.625},
{"x":18, "y":1.625, "w":1.5},
{"x":3.5, "y":2},
{"x":15, "y":2},
{"x":2.5, "y":2.125},
{"x":4.5, "y":2.125},
{"x":14, "y":2.125},
{"x":16, "y":2.125},
{"x":5.5, "y":2.25},
{"x":13, "y":2.25},
{"x":0, "y":2.625, "w":1.5},
{"x":1.5, "y":2.625},
{"x":17, "y":2.625},
{"x":18, "y":2.625, "w":1.5},
{"x":6.5, "y":2.75, "h":1.5},
{"x":12, "y":2.75, "h":1.5},
{"x":3.5, "y":3},
{"x":15, "y":3},
{"x":2.5, "y":3.125},
{"x":4.5, "y":3.125},
{"x":14, "y":3.125},
{"x":16, "y":3.125},
{"x":5.5, "y":3.25},
{"x":13, "y":3.25},
{"x":0, "y":3.625, "w":1.5},
{"x":1.5, "y":3.625},
{"x":17, "y":3.625},
{"x":18, "y":3.625, "w":1.5},
{"x":7.5, "y":3.75},
{"x":11, "y":3.75},
{"x":3.5, "y":4},
{"x":15, "y":4},
{"x":2.5, "y":4.125},
{"x":4.5, "y":4.125},
{"x":14, "y":4.125},
{"x":16, "y":4.125},
{"x":5.75, "y":4.5, "w":1.5},
{"x":12.25, "y":4.5, "w":1.5},
{"x":7.25, "y":4.75},
{"x":11.25, "y":4.75}
{"label":"Esc", "x":0, "y":0.625, "w":1.5},
{"label":"1!", "x":1.5, "y":0.625},
{"label":"2@", "x":2.5, "y":0.125},
{"label":"3#", "x":3.5, "y":0},
{"label":"4$", "x":4.5, "y":0.125},
{"label":"5%", "x":5.5, "y":0.25},
{"label":"-_", "x":6.5, "y":0.25},
{"label":"=+", "x":12, "y":0.25},
{"label":"6^", "x":13, "y":0.25},
{"label":"7&", "x":14, "y":0.125},
{"label":"8*", "x":15, "y":0},
{"label":"9(", "x":16, "y":0.125},
{"label":"0)", "x":17, "y":0.625},
{"label":"`~", "x":18, "y":0.625, "w":1.5},
{"label":"Tab", "x":0, "y":1.625, "w":1.5},
{"label":"Q", "x":1.5, "y":1.625},
{"label":"W", "x":2.5, "y":1.125},
{"label":"E", "x":3.5, "y":1},
{"label":"R", "x":4.5, "y":1.125},
{"label":"T", "x":5.5, "y":1.25},
{"label":"[{", "x":6.5, "y":1.25, "h":1.5},
{"label":"]}", "x":12, "y":1.25, "h":1.5},
{"label":"Y", "x":13, "y":1.25},
{"label":"U", "x":14, "y":1.125},
{"label":"I", "x":16, "y":1.125},
{"label":"O", "x":15, "y":1},
{"label":"P", "x":17, "y":1.625},
{"label":"\\|", "x":18, "y":1.625, "w":1.5},
{"label":"Ctrl", "x":0, "y":2.625, "w":1.5},
{"label":"A", "x":1.5, "y":2.625},
{"label":"S", "x":2.5, "y":2.125},
{"label":"D", "x":3.5, "y":2},
{"label":"F", "x":4.5, "y":2.125},
{"label":"G", "x":5.5, "y":2.25},
{"label":"H", "x":13, "y":2.25},
{"label":"J", "x":14, "y":2.125},
{"label":"K", "x":16, "y":2.125},
{"label":"L", "x":15, "y":2},
{"label":";:", "x":17, "y":2.625},
{"label":"'\"", "x":18, "y":2.625, "w":1.5},
{"label":"Shift", "x":0, "y":3.625, "w":1.5},
{"label":"Z", "x":1.5, "y":3.625},
{"label":"X", "x":2.5, "y":3.125},
{"label":"C", "x":3.5, "y":3},
{"label":"V", "x":4.5, "y":3.125},
{"label":"B", "x":5.5, "y":3.25},
{"label":"(", "x":6.5, "y":2.75, "h":1.5},
{"label":"Home", "x":7.5, "y":3.75},
{"label":"End", "x":11, "y":3.75},
{"label":")", "x":12, "y":2.75, "h":1.5},
{"label":"N", "x":13, "y":3.25},
{"label":"M", "x":14, "y":3.125},
{"label":",<", "x":15, "y":3},
{"label":".>", "x":16, "y":3.125},
{"label":"/?", "x":17, "y":3.625},
{"label":"Shift", "x":18, "y":3.625, "w":1.5},
{"label":"GUI", "x":2.5, "y":4.125},
{"label":"Alt", "x":3.5, "y":4},
{"label":"Lower", "x":4.5, "y":4.125},
{"label":"Space", "x":5.75, "y":4.5, "w":1.5},
{"label":"Backspace", "x":7.25, "y":4.75},
{"label":"Enter", "x":11.25, "y":4.75},
{"label":"Space", "x":12.25, "y":4.5, "w":1.5},
{"label":"Raise", "x":14, "y":4.125},
{"label":"Alt", "x":15, "y":4},
{"label":"MEH", "x":16, "y":4.125}
]
}
}

View File

@ -35,28 +35,28 @@ enum custom_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT(
[_BASE] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_HOME, KC_END, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LGUI, KC_LALT, MO_LOW, KC_SPC, KC_BSPC, KC_ENT, KC_SPC, MO_RAIS, KC_RALT, KC_MEH
),
[_LOWER] = LAYOUT(
[_LOWER] = LAYOUT_all(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PSCR,
_______, _______, _______, _______, KC_PIPE, KC_UNDS, KC_LPRN, KC_RPRN, KC_PLUS, KC_PIPE, _______, _______, _______, _______,
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_LPRN, KC_RPRN, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
_______, _______, _______, _______, _______, _______, M_ARROW, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______, _______,
_______, _______, MO_CURR, _______, KC_DEL, _______, _______, MO_ADJU, _______, _______
),
[_RAISE] = LAYOUT(
[_RAISE] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______,
_______, _______, _______, KC_VOLU, _______, _______, KC_LPRN, KC_RPRN, _______, KC_BTN4, KC_UP, KC_BTN5, _______, _______,
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_LPRN, KC_RPRN, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______,
_______, _______, _______, KC_VOLD, _______, _______, M_ARROW, KC_PGUP, KC_PGDN, _______, _______, _______, KC_PGDN, _______, _______, _______,
_______, _______, MO_ADJU, _______, KC_DEL, _______, _______, MO_CURR, _______, _______
),
[_ADJUST] = LAYOUT(
[_ADJUST] = LAYOUT_all(
KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R, _______, _______,

View File

@ -0,0 +1,77 @@
/* Copyright 2021 floookay
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// Defines names for use in layer keycodes and the keymap
enum layer_names {
_BASE,
_LOWER,
_RAISE,
_ADJUST
};
// Defines the keycodes used by our macros in process_record_user
enum custom_keycodes {
M_ARROW
};
#define MO_LOW MO(_LOWER)
#define MO_RAIS MO(_RAISE)
#define MO_ADJU MO(_ADJUST)
#define MO_CURR _______
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_ergo(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LPRN, KC_HOME, KC_END, KC_RPRN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LGUI, KC_LALT, MO_LOW, KC_SPC, KC_BSPC, KC_ENT, KC_SPC, MO_RAIS, KC_RALT, KC_MEH
),
[_LOWER] = LAYOUT_ergo(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PSCR,
_______, _______, _______, _______, KC_PIPE, KC_UNDS, KC_LPRN, KC_RPRN, KC_PLUS, KC_PIPE, _______, _______, _______, _______,
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
_______, _______, _______, _______, _______, _______, M_ARROW, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______, _______,
_______, _______, MO_CURR, _______, KC_DEL, _______, _______, MO_ADJU, _______, _______
),
[_RAISE] = LAYOUT_ergo(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______,
_______, _______, _______, KC_VOLU, _______, _______, KC_LPRN, KC_RPRN, _______, KC_BTN4, KC_UP, KC_BTN5, _______, _______,
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______,
_______, _______, _______, KC_VOLD, _______, _______, M_ARROW, KC_PGUP, KC_PGDN, _______, _______, _______, KC_PGDN, _______, _______, _______,
_______, _______, MO_ADJU, _______, KC_DEL, _______, _______, MO_CURR, _______, _______
),
[_ADJUST] = LAYOUT_ergo(
KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, KC_CLR, _______, _______, _______, _______, _______
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case M_ARROW:
if (record->event.pressed) {
SEND_STRING("->");
}
break;
}
return true;
}

View File

@ -18,6 +18,22 @@
#include "quantum.h"
#define XXX KC_NO
/*
*
* L02L03L04L05L06 R00R01R02R03R04
* L00 L01 R05R06
* L12L13L14L15L16 L16 R10 R10R11R12R13R14
* L10 L11 R15R16
* L22L23L24L25L26 R20R21R22R23R24
* L20 L21 L36 R30 R25R26
* L32L33L34L35L36L41 R45R30R31R32R33R34
* L30 L31 R35R36
* L42L43L44L45 L46 L46 R40 R40R41 R42R43R44
*
*/
/* This is a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
@ -26,21 +42,40 @@
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define LAYOUT( \
#define LAYOUT_all( \
l00, l01, l02, l03, l04, l05, l06, r00, r01, r02, r03, r04, r05, r06, \
l10, l11, l12, l13, l14, l15, l16, r10, r11, r12, r13, r14, r15, r16, \
l20, l21, l22, l23, l24, l25, l26, r20, r21, r22, r23, r24, r25, r26, \
l30, l31, l32, l33, l34, l35, l36, l41, r45, r30, r31, r32, r33, r34, r35, r36, \
l42, l43, l44, l45, l46, r40, r41, r42, r43, r44 \
){ \
{ l00, l01, l02, l03, l04, l05, l06 }, \
{ l10, l11, l12, l13, l14, l15, l16 }, \
{ l20, l21, l22, l23, l24, l25, l26 }, \
{ l30, l31, l32, l33, l34, l35, l36 }, \
{ KC_NO, l41, l42, l43, l44, l45, l46 }, \
{ r06, r05, r04, r03, r02, r01, r00 }, \
{ r16, r15, r14, r13, r12, r11, r10 }, \
{ r26, r25, r24, r23, r22, r21, r20 }, \
{ r36, r35, r34, r33, r32, r31, r30 }, \
{ KC_NO, r45, r44, r43, r42, r41, r40 } \
{ l00, l01, l02, l03, l04, l05, l06 }, \
{ l10, l11, l12, l13, l14, l15, l16 }, \
{ l20, l21, l22, l23, l24, l25, l26 }, \
{ l30, l31, l32, l33, l34, l35, l36 }, \
{ XXX, l41, l42, l43, l44, l45, l46 }, \
{ r06, r05, r04, r03, r02, r01, r00 }, \
{ r16, r15, r14, r13, r12, r11, r10 }, \
{ r26, r25, r24, r23, r22, r21, r20 }, \
{ r36, r35, r34, r33, r32, r31, r30 }, \
{ XXX, r45, r44, r43, r42, r41, r40 } \
}
#define LAYOUT_ergo( \
l00, l01, l02, l03, l04, l05, l06, r00, r01, r02, r03, r04, r05, r06, \
l10, l11, l12, l13, l14, l15, l16, r10, r11, r12, r13, r14, r15, r16, \
l20, l21, l22, l23, l24, l25, r21, r22, r23, r24, r25, r26, \
l30, l31, l32, l33, l34, l35, l36, l41, r45, r30, r31, r32, r33, r34, r35, r36, \
l42, l43, l44, l45, l46, r40, r41, r42, r43, r44 \
){ \
{ l00, l01, l02, l03, l04, l05, l06 }, \
{ l10, l11, l12, l13, l14, l15, l16 }, \
{ l20, l21, l22, l23, l24, l25, XXX }, \
{ l30, l31, l32, l33, l34, l35, l36 }, \
{ XXX, l41, l42, l43, l44, l45, l46 }, \
{ r06, r05, r04, r03, r02, r01, r00 }, \
{ r16, r15, r14, r13, r12, r11, r10 }, \
{ r26, r25, r24, r23, r22, r21, XXX }, \
{ r36, r35, r34, r33, r32, r31, r30 }, \
{ XXX, r45, r44, r43, r42, r41, r40 } \
}