aboutsummaryrefslogtreecommitdiff
path: root/keyboards/amj60/amj60.h
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/amj60/amj60.h')
-rw-r--r--keyboards/amj60/amj60.h158
1 files changed, 60 insertions, 98 deletions
diff --git a/keyboards/amj60/amj60.h b/keyboards/amj60/amj60.h
index 07b406868..feda68003 100644
--- a/keyboards/amj60/amj60.h
+++ b/keyboards/amj60/amj60.h
@@ -1,5 +1,21 @@
1#ifndef AMJ60_H 1/* Copyright 2016 Toni (@toneman77)
2#define AMJ60_H 2 * 2021 James Young for QMK (@noroadsleft)
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#pragma once
3 19
4#include "quantum.h" 20#include "quantum.h"
5 21
@@ -7,23 +23,43 @@
7#define XXX KC_NO 23#define XXX KC_NO
8 24
9/* AMJ60 layout to the best of my knowledge matrix layout 25/* AMJ60 layout to the best of my knowledge matrix layout
10 * ,-----------------------------------------------------------. 26 *
11 * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49| 27 * I scoured the internet researching this PCB, which near as I know was
12 * |-----------------------------------------------------------| 28 * discontinued around 2017. Fortunately, the wiring seems to be based on the
13 * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | 29 * GH60, and I own a KC60, which is also based on the GH60. I traced my KC60
14 * |-----------------------------------------------------------| 30 * (which I already had apart!) and worked out the right shift can be split
15 * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d | 31 * 1.75/1 (HHKB style) or 1/1.75 (JIS/ABNT2). With either split, the 1u key
16 * |-----------------------------------------------------------| 32 * was on column C, so I used that here.
17 * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3c | 3d | 33 *
18 * |-----------------------------------------------------------| 34 * - noroadsleft
19 * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d | 35 *
20 * `-----------------------------------------------------------' 36 * ┌───────┐
37 * 2u Backspace │0d │
38 * └───────┘
39 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
40 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │49 │ ┌─────┐
41 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ │ │
42 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ ┌──┴┐ │ ISO Enter
43 * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ │2c │2d │
44 * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ └───┴────┘
45 * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌──────────┐
46 * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │3c │ │3d │ 2.75u RShift
47 * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ └──────────┘
48 * │40 │41 │42 │ 45 │4a │4b │4c │4d │ ┌───┬──────┐
49 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ │3c │3d │ JIS RShift
50 * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ └───┴──────┘
51 * Tsangan │40 │41 │42 │ 45 │4b │4c │4d │
52 * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
53 * ┌─────┬───┬─────┬───────────────────────┬─────┬───┬───┬─────┐
54 * Topre-style │40 │41 │42 │ 45 │4a │4b │4c │4d │
55 * └─────┴───┴─────┴───────────────────────┴─────┴───┴───┴─────┘
56 *
21 */ 57 */
22#define LAYOUT( \ 58#define LAYOUT_all( \
23 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\ 59 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
24 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ 60 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
25 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ 61 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
26 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ 62 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
27 k40, k41, k42, k45, k4a, k4b, k4c, k4d \ 63 k40, k41, k42, k45, k4a, k4b, k4c, k4d \
28) \ 64) \
29{ \ 65{ \
@@ -34,20 +70,6 @@
34 {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \ 70 {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
35} 71}
36 72
37/*
38 * ANSI
39 * ,-----------------------------------------------------------.
40 * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
41 * |-----------------------------------------------------------|
42 * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
43 * |-----------------------------------------------------------|
44 * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
45 * |-----------------------------------------------------------|
46 * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d |
47 * |-----------------------------------------------------------|
48 * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
49 * `-----------------------------------------------------------'
50 */
51#define LAYOUT_60_ansi( \ 73#define LAYOUT_60_ansi( \
52 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ 74 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
53 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ 75 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
@@ -63,107 +85,47 @@
63 {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \ 85 {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
64} 86}
65 87
66/* AMJ60 HHKB matrix layout 88#define LAYOUT_60_hhkb( \
67 * ,------------------------------------------------------------.
68 * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49 |
69 * |------------------------------------------------------------|
70 * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
71 * |------------------------------------------------------------|
72 * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
73 * |------------------------------------------------------------|
74 * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c |
75 * |------------------------------------------------------------|
76 * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
77 * `------------------------------------------------------------'
78 */
79
80#define LAYOUT_hhkb( \
81 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49, \ 89 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49, \
82 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ 90 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
83 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ 91 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
84 k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \ 92 k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
85 k40, k41, k42, k45, k4a, k4b, k4c, k4d \ 93 k41, k42, k45, k4b, k4c \
86) \ 94) \
87{ \ 95{ \
88 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ 96 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
89 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ 97 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
90 {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \ 98 {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
91 {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ 99 {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
92 {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \ 100 {XXX, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, XXX, k4b, k4c, XXX} \
93} 101}
94 102
95/* ISO 103#define LAYOUT_60_iso( \
96 * ,-----------------------------------------------------------.
97 * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
98 * |-----------------------------------------------------------|
99 * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
100 * |-----------------------------------------------------------|
101 * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d |
102 * |-----------------------------------------------------------|
103 * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d |
104 * |-----------------------------------------------------------|
105 * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
106 * `-----------------------------------------------------------'
107 */
108#define LAYOUT_iso( \
109 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ 104 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
110 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ 105 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
111 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ 106 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
112 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ 107 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
113 k40, k41, k42, k45, k4a, k4b, k4c, k4d \ 108 k40, k41, k42, k45, k4a, k4b, k4c, k4d \
114) \ 109) \
115{ \ 110{ \
116 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ 111 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
117 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ 112 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX}, \
118 {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \ 113 {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
119 {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d}, \ 114 {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d}, \
120 {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \ 115 {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
121} 116}
122 117
123/* ISO w/ split right shift key matrix layout 118#define LAYOUT_60_ansi_split_bs_rshift( \
124 * ,-----------------------------------------------------------.
125 * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
126 * |-----------------------------------------------------------|
127 * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
128 * |-----------------------------------------------------------|
129 * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d |
130 * |-----------------------------------------------------------|
131 * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c |
132 * |-----------------------------------------------------------|
133 * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
134 * `-----------------------------------------------------------'
135 */
136#define LAYOUT_iso_splitrshift( \
137 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
138 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
139 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
140 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
141 k40, k41, k42, k45, k4a, k4b, k4c, k4d \
142) \
143{ \
144 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
145 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
146 {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
147 {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
148 {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
149}
150
151#define LAYOUT_max( \
152 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\ 119 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
153 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ 120 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
154 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ 121 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
155 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \ 122 k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
156 k40, k41, k42, k45, k4a, k4b, k4c, k4d \ 123 k40, k41, k42, k45, k4a, k4b, k4c, k4d \
157) \ 124) \
158{ \ 125{ \
159 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ 126 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
160 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ 127 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
161 {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \ 128 {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
162 {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ 129 {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
163 {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \ 130 {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
164} 131}
165
166void matrix_init_user(void);
167void matrix_scan_user(void);
168
169#endif