summaryrefslogtreecommitdiff
path: root/keyboards/converter/ibm_terminal/ibm_terminal.h
blob: ce50e5f437c8e731e96dbc721fc12815533b66ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#pragma once

#include "quantum.h"

#define XXX KC_NO

void matrix_init_user(void);

/*
 * IBM Terminal keyboard 6110345(122keys)/1392595(102keys)
 * http://geekhack.org/showthread.php?10737-What-Can-I-Do-With-a-Terminal-Model-M
 * http://www.seasip.info/VintagePC/ibm_1391406.html
 *
 * Keymap array:
 *     8 bytes
 *   +---------+
 *  0|         |
 *  :|         | 0x00-0x87
 *  ;|         |
 * 17|         |
 *   +---------+
 */
#define LAYOUT( \
                    k08, k10, k18, k20, k28, k30, k38, k40, k48, k50, k57, k5F, \
                    k07, k0F, k17, k1F, k27, k2F, k37, k3F, k47, k4F, k56, k5E, \
\
    k05, k06,  k0E, k16, k1E, k26, k25, k2E, k36, k3D, k3E, k46, k45, k4E, k55, k5D, k66,  k67, k6E, k6F,  k76, k77, k7E, k84, \
    k04, k0C,  k0D, k15, k1D, k24, k2D, k2C, k35, k3C, k43, k44, k4D, k54, k5B,      k5C,  k64, k65, k6D,  k6C, k75, k7D, k7C, \
    k03, k0B,  k14, k1C, k1B, k23, k2B, k34, k33, k3B, k42, k4B, k4C, k52,      k53, k5A,       k63,       k6B, k73, k74, k7B, \
    k83, k0A,  k12, k13, k1A, k22, k21, k2A, k32, k31, k3A, k41, k49, k4A,      k51, k59,  k61, k62, k6A,  k69, k72, k7A, k79, \
    k01, k09,  k11,      k19,                k29,                          k39,      k58,       k60,       k68, k70, k71, k78 \
) { \
    { XXX, k01, XXX, k03, k04, k05, k06, k07 }, \
    { k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \
    { k10, k11, k12, k13, k14, k15, k16, k17 }, \
    { k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \
    { k20, k21, k22, k23, k24, k25, k26, k27 }, \
    { k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \
    { k30, k31, k32, k33, k34, k35, k36, k37 }, \
    { k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \
    { k40, k41, k42, k43, k44, k45, k46, k47 }, \
    { k48, k49, k4A, k4B, k4C, k4D, k4E, k4F }, \
    { k50, k51, k52, k53, k54, k55, k56, k57 }, \
    { k58, k59, k5A, k5B, k5C, k5D, k5E, k5F }, \
    { k60, k61, k62, k63, k64, k65, k66, k67 }, \
    { k68, k69, k6A, k6B, k6C, k6D, k6E, k6F }, \
    { k70, k71, k72, k73, k74, k75, k76, k77 }, \
    { k78, k79, k7A, k7B, k7C, k7D, k7E, XXX }, \
    { XXX, XXX, XXX, k83, k84, XXX, XXX, XXX } \
}

/*
 * IBM Terminal keyboard 1399625, 101-key
 */
#define LAYOUT_101( \
    k08,      k07, k0F, k17, k1F, k27, k2F, k37, k3F, k47, k4F, k56, k5E,  k57, k5F, k62, \
\
    k0E, k16, k1E, k26, k25, k2E, k36, k3D, k3E, k46, k45, k4E, k55, k66,  k67, k6E, k6F,  k76, k77, k7E, k84, \
    k0D, k15, k1D, k24, k2D, k2C, k35, k3C, k43, k44, k4D, k54, k5B, k5C,  k64, k65, k6D,  k6C, k75, k7D, \
    k14, k1C, k1B, k23, k2B, k34, k33, k3B, k42, k4B, k4C, k52,      k5A,                  k6B, k73, k74, k7C, \
    k12,      k1A, k22, k21, k2A, k32, k31, k3A, k41, k49, k4A,      k59,       k63,       k69, k72, k7A, \
    k11,      k19,                k29,                     k39,      k58,  k61, k60, k6A,  k70,      k71, k79 \
) { \
    { XXX, XXX, XXX, XXX, XXX, XXX, XXX, k07 }, \
    { k08, XXX, XXX, XXX, XXX, k0D, k0E, k0F }, \
    { XXX, k11, k12, XXX, k14, k15, k16, k17 }, \
    { XXX, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \
    { XXX, k21, k22, k23, k24, k25, k26, k27 }, \
    { XXX, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \
    { XXX, k31, k32, k33, k34, k35, k36, k37 }, \
    { XXX, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \
    { XXX, k41, k42, k43, k44, k45, k46, k47 }, \
    { XXX, k49, k4A, k4B, k4C, k4D, k4E, k4F }, \
    { XXX, XXX, k52, XXX, k54, k55, k56, k57 }, \
    { k58, k59, k5A, k5B, k5C, XXX, k5E, k5F }, \
    { k60, k61, k62, k63, k64, k65, k66, k67 }, \
    { XXX, k69, k6A, k6B, k6C, k6D, k6E, k6F }, \
    { k70, k71, k72, k73, k74, k75, k76, k77 }, \
    { XXX, k79, k7A, XXX, k7C, k7D, k7E, XXX }, \
    { XXX, XXX, XXX, XXX, k84, XXX, XXX, XXX } \
}