aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/converter/ibm_terminal/README.md40
-rw-r--r--keyboards/converter/ibm_terminal/ibm_terminal.h10
-rw-r--r--keyboards/converter/ibm_terminal/info.json245
-rw-r--r--keyboards/converter/ibm_terminal/keymaps/default/config.h7
-rw-r--r--keyboards/converter/ibm_terminal/keymaps/default/keymap.c12
-rw-r--r--keyboards/converter/ibm_terminal/keymaps/priyadi/config.h7
-rw-r--r--keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c28
-rw-r--r--keyboards/converter/ibm_terminal/readme.md39
8 files changed, 305 insertions, 83 deletions
diff --git a/keyboards/converter/ibm_terminal/README.md b/keyboards/converter/ibm_terminal/README.md
deleted file mode 100644
index dff26e059..000000000
--- a/keyboards/converter/ibm_terminal/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
1Keyboard converter for IBM terminal keyboard
2============================================
3
4This is a port of TMK's converter/terminal_usb to QMK.
5
6It supports PS/2 Scan Code Set 3 and runs on USB AVR chips such like PJRC Teensy.
7I tested the converter on ATMega32U4 with 1392595(102keys) and 6110345(122keys).
8
9Source code: https://github.com/qmk/qmk_firmware.git
10Article: http://geekhack.org/index.php?topic=27272.0
11
12
13CONNECTION
14----------
15Keyboard ATMega32U4
16----------------------
17Data: PD2
18Clock: PD5
19
20And VCC and GND, of course. See RESOURCE for keyboard connector pin assign.
21
22
23BUILD
24-----
25$ git clone https://github.com/qmk/qmk_firmware.git
26$ cd qmk_firmware
27$ make converter/ibm_terminal:default
28
29
30RESOURCE
31--------
32Soarer's Converter: http://geekhack.org/index.php?topic=17458.0
33102keys(1392595): http://geekhack.org/index.php?topic=10737.0
34122keys(1390876): http://www.seasip.info/VintagePC/ibm_1390876.html
35KbdBabel: http://www.kbdbabel.org/
36RJ45 Connector: http://www.kbdbabel.org/conn/kbd_connector_ibmterm.png
37DIN Connector: http://www.kbdbabel.org/conn/kbd_connector_ibm3179_318x_319x.png
38WinAVR: http://winavr.sourceforge.net/
39
40EOF
diff --git a/keyboards/converter/ibm_terminal/ibm_terminal.h b/keyboards/converter/ibm_terminal/ibm_terminal.h
index c6468349c..adf048206 100644
--- a/keyboards/converter/ibm_terminal/ibm_terminal.h
+++ b/keyboards/converter/ibm_terminal/ibm_terminal.h
@@ -19,7 +19,7 @@ void matrix_init_user(void);
19 * 17| | 19 * 17| |
20 * +---------+ 20 * +---------+
21 */ 21 */
22#define KEYMAP( \ 22#define LAYOUT( \
23 K08,K10,K18,K20,K28,K30,K38,K40,K48,K50,K57,K5F, \ 23 K08,K10,K18,K20,K28,K30,K38,K40,K48,K50,K57,K5F, \
24 K07,K0F,K17,K1F,K27,K2F,K37,K3F,K47,K4F,K56,K5E, \ 24 K07,K0F,K17,K1F,K27,K2F,K37,K3F,K47,K4F,K56,K5E, \
25 \ 25 \
@@ -45,13 +45,13 @@ void matrix_init_user(void);
45 { K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ 45 { K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \
46 { K70, K71, K72, K73, K74, K75, K76, K77 }, \ 46 { K70, K71, K72, K73, K74, K75, K76, K77 }, \
47 { K78, K79, K7A, K7B, K7C, K7D, K7E, KC_NO }, \ 47 { K78, K79, K7A, K7B, K7C, K7D, K7E, KC_NO }, \
48 { KC_NO, KC_NO, KC_NO, K83, K84, KC_NO, KC_NO, KC_NO,}, \ 48 { KC_NO, KC_NO, KC_NO, K83, K84, KC_NO, KC_NO, KC_NO } \
49} 49}
50 50
51/* 51/*
52 * IBM Terminal keyboard 1399625, 101-key 52 * IBM Terminal keyboard 1399625, 101-key
53 */ 53 */
54#define KEYMAP_101( \ 54#define LAYOUT_101( \
55 K08, K07,K0F,K17,K1F,K27,K2F,K37,K3F,K47,K4F,K56,K5E, K57,K5F,K62, \ 55 K08, K07,K0F,K17,K1F,K27,K2F,K37,K3F,K47,K4F,K56,K5E, K57,K5F,K62, \
56 \ 56 \
57 K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, K67,K6E,K6F, K76,K77,K7E,K84, \ 57 K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, K67,K6E,K6F, K76,K77,K7E,K84, \
@@ -76,7 +76,7 @@ void matrix_init_user(void);
76 { KC_NO, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ 76 { KC_NO, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \
77 { K70, K71, K72, K73, K74, K75, K76, K77 }, \ 77 { K70, K71, K72, K73, K74, K75, K76, K77 }, \
78 { KC_NO, K79, K7A, KC_NO, K7C, K7D, K7E, KC_NO }, \ 78 { KC_NO, K79, K7A, KC_NO, K7C, K7D, K7E, KC_NO }, \
79 { KC_NO, KC_NO, KC_NO, KC_NO, K84, KC_NO, KC_NO, KC_NO,}, \ 79 { KC_NO, KC_NO, KC_NO, KC_NO, K84, KC_NO, KC_NO, KC_NO } \
80} 80}
81 81
82#endif \ No newline at end of file 82#endif
diff --git a/keyboards/converter/ibm_terminal/info.json b/keyboards/converter/ibm_terminal/info.json
new file mode 100644
index 000000000..f064f3c5b
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/info.json
@@ -0,0 +1,245 @@
1{
2 "keyboard_name": "Keyboard converter for IBM terminal keyboard",
3 "url": "",
4 "maintainer": "qmk",
5 "width": 24.75,
6 "height": 8,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label":"F13", "x":3.25, "y":0},
11 {"label":"F14", "x":4.25, "y":0},
12 {"label":"F15", "x":5.25, "y":0},
13 {"label":"F16", "x":6.25, "y":0},
14 {"label":"F17", "x":7.25, "y":0},
15 {"label":"F18", "x":8.25, "y":0},
16 {"label":"F19", "x":9.25, "y":0},
17 {"label":"F20", "x":10.25, "y":0},
18 {"label":"F21", "x":11.25, "y":0},
19 {"label":"F22", "x":12.25, "y":0},
20 {"label":"F23", "x":13.25, "y":0},
21 {"label":"F24", "x":14.25, "y":0},
22 {"label":"F1", "x":3.25, "y":1},
23 {"label":"F2", "x":4.25, "y":1},
24 {"label":"F3", "x":5.25, "y":1},
25 {"label":"F4", "x":6.25, "y":1},
26 {"label":"F5", "x":7.25, "y":1},
27 {"label":"F6", "x":8.25, "y":1},
28 {"label":"F7", "x":9.25, "y":1},
29 {"label":"F8", "x":10.25, "y":1},
30 {"label":"F9", "x":11.25, "y":1},
31 {"label":"F10", "x":12.25, "y":1},
32 {"label":"F11", "x":13.25, "y":1},
33 {"label":"F12", "x":14.25, "y":1},
34 {"label":"Print Screen", "x":0, "y":3},
35 {"label":"Esc", "x":1, "y":3},
36 {"label":"Esc", "x":2.25, "y":3},
37 {"label":"1", "x":3.25, "y":3},
38 {"label":"2", "x":4.25, "y":3},
39 {"label":"3", "x":5.25, "y":3},
40 {"label":"4", "x":6.25, "y":3},
41 {"label":"5", "x":7.25, "y":3},
42 {"label":"6", "x":8.25, "y":3},
43 {"label":"7", "x":9.25, "y":3},
44 {"label":"8", "x":10.25, "y":3},
45 {"label":"9", "x":11.25, "y":3},
46 {"label":"0", "x":12.25, "y":3},
47 {"label":"-", "x":13.25, "y":3},
48 {"label":"=", "x":14.25, "y":3},
49 {"label":"No", "x":15.25, "y":3},
50 {"label":"Back Space", "x":16.25, "y":3},
51 {"label":"Insert", "x":17.5, "y":3},
52 {"label":"Home", "x":18.5, "y":3},
53 {"label":"Page Up", "x":19.5, "y":3},
54 {"label":"Num Lock", "x":20.75, "y":3},
55 {"label":"/", "x":21.75, "y":3},
56 {"label":"*", "x":22.75, "y":3},
57 {"label":"-", "x":23.75, "y":3},
58 {"label":"Scroll Lock", "x":0, "y":4},
59 {"label":"Int4", "x":1, "y":4},
60 {"label":"Tab", "x":2.25, "y":4, "w":1.5},
61 {"label":"Q", "x":3.75, "y":4},
62 {"label":"W", "x":4.75, "y":4},
63 {"label":"E", "x":5.75, "y":4},
64 {"label":"R", "x":6.75, "y":4},
65 {"label":"T", "x":7.75, "y":4},
66 {"label":"Y", "x":8.75, "y":4},
67 {"label":"U", "x":9.75, "y":4},
68 {"label":"I", "x":10.75, "y":4},
69 {"label":"O", "x":11.75, "y":4},
70 {"label":"P", "x":12.75, "y":4},
71 {"label":"[", "x":13.75, "y":4},
72 {"label":"]", "x":14.75, "y":4},
73 {"label":"No", "x":15.75, "y":4, "w":1.5},
74 {"label":"Delete", "x":17.5, "y":4},
75 {"label":"End", "x":18.5, "y":4},
76 {"label":"Page Down", "x":19.5, "y":4},
77 {"label":"7", "x":20.75, "y":4},
78 {"label":"8", "x":21.75, "y":4},
79 {"label":"9", "x":22.75, "y":4},
80 {"label":"+", "x":23.75, "y":4},
81 {"label":"Pause", "x":0, "y":5},
82 {"label":"Int5", "x":1, "y":5},
83 {"label":"Caps Lock", "x":2.25, "y":5, "w":1.75},
84 {"label":"A", "x":4, "y":5},
85 {"label":"S", "x":5, "y":5},
86 {"label":"D", "x":6, "y":5},
87 {"label":"F", "x":7, "y":5},
88 {"label":"G", "x":8, "y":5},
89 {"label":"H", "x":9, "y":5},
90 {"label":"J", "x":10, "y":5},
91 {"label":"K", "x":11, "y":5},
92 {"label":"L", "x":12, "y":5},
93 {"label":";", "x":13, "y":5},
94 {"label":"'", "x":14, "y":5},
95 {"label":"\\", "x":15, "y":5},
96 {"label":"Enter", "x":16, "y":5, "w":1.25},
97 {"label":"Up", "x":18.5, "y":5},
98 {"label":"4", "x":20.75, "y":5},
99 {"label":"5", "x":21.75, "y":5},
100 {"label":"6", "x":22.75, "y":5},
101 {"label":",", "x":23.75, "y":5},
102 {"label":"App", "x":0, "y":6},
103 {"label":"Int6", "x":1, "y":6},
104 {"label":"Shift", "x":2.25, "y":6, "w":1.25},
105 {"label":"ISO \\", "x":3.5, "y":6},
106 {"label":"Z", "x":4.5, "y":6},
107 {"label":"X", "x":5.5, "y":6},
108 {"label":"C", "x":6.5, "y":6},
109 {"label":"V", "x":7.5, "y":6},
110 {"label":"B", "x":8.5, "y":6},
111 {"label":"N", "x":9.5, "y":6},
112 {"label":"M", "x":10.5, "y":6},
113 {"label":",", "x":11.5, "y":6},
114 {"label":".", "x":12.5, "y":6},
115 {"label":"/", "x":13.5, "y":6},
116 {"label":"No", "x":14.5, "y":6},
117 {"label":"Shift", "x":15.5, "y":6, "w":1.75},
118 {"label":"Left", "x":17.5, "y":6},
119 {"label":"Int2", "x":18.5, "y":6},
120 {"label":"Right", "x":19.5, "y":6},
121 {"label":"1", "x":20.75, "y":6},
122 {"label":"2", "x":21.75, "y":6},
123 {"label":"3", "x":22.75, "y":6},
124 {"label":"Enter", "x":23.75, "y":6},
125 {"label":"RGUI", "x":0, "y":7},
126 {"label":"lgui", "x":1, "y":7},
127 {"label":"Ctrl", "x":2.25, "y":7, "w":1.5},
128 {"label":"Alt", "x":4.75, "y":7, "w":1.5},
129 {"label":"Space", "x":6.25, "y":7, "w":7},
130 {"label":"Alt", "x":13.25, "y":7, "w":1.5},
131 {"label":"Ctrl", "x":15.75, "y":7, "w":1.5},
132 {"label":"Down", "x":18.5, "y":7},
133 {"label":"No", "x":20.75, "y":7},
134 {"label":"0", "x":21.75, "y":7},
135 {"label":".", "x":22.75, "y":7},
136 {"label":"No", "x":23.75, "y":7}
137 ]
138 },
139 "LAYOUT_101": {
140 "layout": [
141 {"label":"Esc", "x":0, "y":0},
142 {"label":"F1", "x":2, "y":0},
143 {"label":"F2", "x":3, "y":0},
144 {"label":"F3", "x":4, "y":0},
145 {"label":"F4", "x":5, "y":0},
146 {"label":"F5", "x":6.5, "y":0},
147 {"label":"F6", "x":7.5, "y":0},
148 {"label":"F7", "x":8.5, "y":0},
149 {"label":"F8", "x":9.5, "y":0},
150 {"label":"F9", "x":11, "y":0},
151 {"label":"F10", "x":12, "y":0},
152 {"label":"F11", "x":13, "y":0},
153 {"label":"F12", "x":14, "y":0},
154 {"label":"Print Screen", "x":15.25, "y":0},
155 {"label":"Scroll Lock", "x":16.25, "y":0},
156 {"label":"Pause", "x":17.25, "y":0},
157 {"label":"`", "x":0, "y":2},
158 {"label":"1", "x":1, "y":2},
159 {"label":"2", "x":2, "y":2},
160 {"label":"3", "x":3, "y":2},
161 {"label":"4", "x":4, "y":2},
162 {"label":"5", "x":5, "y":2},
163 {"label":"6", "x":6, "y":2},
164 {"label":"7", "x":7, "y":2},
165 {"label":"8", "x":8, "y":2},
166 {"label":"9", "x":9, "y":2},
167 {"label":"0", "x":10, "y":2},
168 {"label":"-", "x":11, "y":2},
169 {"label":"=", "x":12, "y":2},
170 {"label":"Back Space", "x":13, "y":2, "w":2},
171 {"label":"Insert", "x":15.25, "y":2},
172 {"label":"Home", "x":16.25, "y":2},
173 {"label":"Page Up", "x":17.25, "y":2},
174 {"label":"Num Lock", "x":18.5, "y":2},
175 {"label":"/", "x":19.5, "y":2},
176 {"label":"*", "x":20.5, "y":2},
177 {"label":"-", "x":21.5, "y":2},
178 {"label":"Tab", "x":0, "y":3, "w":1.5},
179 {"label":"Q", "x":1.5, "y":3},
180 {"label":"W", "x":2.5, "y":3},
181 {"label":"E", "x":3.5, "y":3},
182 {"label":"R", "x":4.5, "y":3},
183 {"label":"T", "x":5.5, "y":3},
184 {"label":"Y", "x":6.5, "y":3},
185 {"label":"U", "x":7.5, "y":3},
186 {"label":"I", "x":8.5, "y":3},
187 {"label":"O", "x":9.5, "y":3},
188 {"label":"P", "x":10.5, "y":3},
189 {"label":"[", "x":11.5, "y":3},
190 {"label":"]", "x":12.5, "y":3},
191 {"label":"\\", "x":13.5, "y":3, "w":1.5},
192 {"label":"Delete", "x":15.25, "y":3},
193 {"label":"End", "x":16.25, "y":3},
194 {"label":"Page Down", "x":17.25, "y":3},
195 {"label":"7", "x":18.5, "y":3},
196 {"label":"8", "x":19.5, "y":3},
197 {"label":"9", "x":20.5, "y":3},
198 {"label":"Caps Lock", "x":0, "y":4, "w":1.75},
199 {"label":"A", "x":1.75, "y":4},
200 {"label":"S", "x":2.75, "y":4},
201 {"label":"D", "x":3.75, "y":4},
202 {"label":"F", "x":4.75, "y":4},
203 {"label":"G", "x":5.75, "y":4},
204 {"label":"H", "x":6.75, "y":4},
205 {"label":"J", "x":7.75, "y":4},
206 {"label":"K", "x":8.75, "y":4},
207 {"label":"L", "x":9.75, "y":4},
208 {"label":";", "x":10.75, "y":4},
209 {"label":"'", "x":11.75, "y":4},
210 {"label":"Enter", "x":12.75, "y":4, "w":2.25},
211 {"label":"4", "x":18.5, "y":4},
212 {"label":"5", "x":19.5, "y":4},
213 {"label":"6", "x":20.5, "y":4},
214 {"label":"+", "x":21.5, "y":3, "h":2},
215 {"label":"Shift", "x":0, "y":5, "w":2.25},
216 {"label":"Z", "x":2.25, "y":5},
217 {"label":"X", "x":3.25, "y":5},
218 {"label":"C", "x":4.25, "y":5},
219 {"label":"V", "x":5.25, "y":5},
220 {"label":"B", "x":6.25, "y":5},
221 {"label":"N", "x":7.25, "y":5},
222 {"label":"M", "x":8.25, "y":5},
223 {"label":",", "x":9.25, "y":5},
224 {"label":".", "x":10.25, "y":5},
225 {"label":"/", "x":11.25, "y":5},
226 {"label":"Shift", "x":12.25, "y":5, "w":2.75},
227 {"label":"Up", "x":16.25, "y":5},
228 {"label":"1", "x":18.5, "y":5},
229 {"label":"2", "x":19.5, "y":5},
230 {"label":"3", "x":20.5, "y":5},
231 {"label":"Ctrl", "x":0, "y":6, "w":1.5},
232 {"label":"Alt", "x":2.5, "y":6, "w":1.5},
233 {"label":"Space", "x":4, "y":6, "w":7},
234 {"label":"Alt", "x":11, "y":6, "w":1.5},
235 {"label":"Ctrl", "x":13.5, "y":6, "w":1.5},
236 {"label":"Left", "x":15.25, "y":6},
237 {"label":"Down", "x":16.25, "y":6},
238 {"label":"Right", "x":17.25, "y":6},
239 {"label":"0", "x":18.5, "y":6, "w":2},
240 {"label":".", "x":20.5, "y":6},
241 {"label":"Enter", "x":21.5, "y":5, "h":2}
242 ]
243 }
244 }
245}
diff --git a/keyboards/converter/ibm_terminal/keymaps/default/config.h b/keyboards/converter/ibm_terminal/keymaps/default/config.h
index 7fa3bf328..271f48d00 100644
--- a/keyboards/converter/ibm_terminal/keymaps/default/config.h
+++ b/keyboards/converter/ibm_terminal/keymaps/default/config.h
@@ -1,6 +1,3 @@
1#ifndef CONFIG_USER_H 1#pragma once
2#define CONFIG_USER_H
3 2
4#include "../../config.h" 3// place overrides here
5
6#endif
diff --git a/keyboards/converter/ibm_terminal/keymaps/default/keymap.c b/keyboards/converter/ibm_terminal/keymaps/default/keymap.c
index 2beb51106..59187ef33 100644
--- a/keyboards/converter/ibm_terminal/keymaps/default/keymap.c
+++ b/keyboards/converter/ibm_terminal/keymaps/default/keymap.c
@@ -15,18 +15,12 @@ You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#include <stdint.h> 18#include QMK_KEYBOARD_H
19#include <stdbool.h>
20#include "keycode.h"
21#include "print.h"
22#include "debug.h"
23#include "util.h"
24#include "ibm_terminal.h"
25 19
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 // Layer 0 21 // Layer 0
28 22
29 KEYMAP( 23 LAYOUT(
30 KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, 24 KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
31 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 25 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
32 26
@@ -56,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
56 * `----' `---------------------------------------' `----' `-----------' `---------------' 50 * `----' `---------------------------------------' `----' `-----------' `---------------'
57 */ 51 */
58/* 52/*
59 KEYMAP_101( 53 LAYOUT_101(
60 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK, KC_BRK, 54 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK, KC_BRK,
61 55
62 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, 56 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS,
diff --git a/keyboards/converter/ibm_terminal/keymaps/priyadi/config.h b/keyboards/converter/ibm_terminal/keymaps/priyadi/config.h
index 7fa3bf328..271f48d00 100644
--- a/keyboards/converter/ibm_terminal/keymaps/priyadi/config.h
+++ b/keyboards/converter/ibm_terminal/keymaps/priyadi/config.h
@@ -1,6 +1,3 @@
1#ifndef CONFIG_USER_H 1#pragma once
2#define CONFIG_USER_H
3 2
4#include "../../config.h" 3// place overrides here
5
6#endif
diff --git a/keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c b/keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c
index 47a5181dd..3d6da6eab 100644
--- a/keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c
+++ b/keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c
@@ -15,17 +15,7 @@ You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#include "keycode.h" 18#include QMK_KEYBOARD_H
19#include "print.h"
20#include "debug.h"
21#include "util.h"
22#include "ibm_terminal.h"
23#include "action_layer.h"
24
25// Fillers to make layering clearer
26
27#define _______ KC_TRNS
28#define XXXXXXX KC_NO
29 19
30enum layers { 20enum layers {
31 QWE, // qwerty 21 QWE, // qwerty
@@ -159,7 +149,7 @@ const uint32_t PROGMEM unicode_map[] = {
159 149
160const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 150const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
161 /* qwerty */ 151 /* qwerty */
162 [QWE] = KEYMAP( 152 [QWE] = LAYOUT(
163 KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_PSCR, KC_SLCK, KC_PAUS, 153 KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_PSCR, KC_SLCK, KC_PAUS,
164 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 154 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
165 155
@@ -171,7 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
171 ), 161 ),
172 162
173 /* colemak */ 163 /* colemak */
174 [COL] = KEYMAP( 164 [COL] = LAYOUT(
175 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 165 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
176 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 166 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
177 167
@@ -183,7 +173,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
183 ), 173 ),
184 174
185 /* workman */ 175 /* workman */
186 [WOR] = KEYMAP( 176 [WOR] = LAYOUT(
187 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 177 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
188 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 178 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
189 179
@@ -195,7 +185,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
195 ), 185 ),
196 186
197 /* dvorak */ 187 /* dvorak */
198 [DVO] = KEYMAP( 188 [DVO] = LAYOUT(
199 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 189 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
200 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 190 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
201 191
@@ -207,7 +197,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
207 ), 197 ),
208 198
209 /* system */ 199 /* system */
210 [SYS] = KEYMAP( 200 [SYS] = LAYOUT(
211 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 201 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
212 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 202 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
213 203
@@ -219,7 +209,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
219 ), 209 ),
220 210
221 /* mouse keys */ 211 /* mouse keys */
222 [MOU] = KEYMAP( 212 [MOU] = LAYOUT(
223 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 213 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
224 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 214 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
225 215
@@ -231,7 +221,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
231 ), 221 ),
232 222
233 /* emoji */ 223 /* emoji */
234 [EMO] = KEYMAP( 224 [EMO] = LAYOUT(
235 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 225 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
236 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 226 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
237 227
@@ -243,7 +233,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
243 ), 233 ),
244 234
245 /* 235 /*
246 [XXX] = KEYMAP( 236 [XXX] = LAYOUT(
247 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 237 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
248 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 238 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
249 239
diff --git a/keyboards/converter/ibm_terminal/readme.md b/keyboards/converter/ibm_terminal/readme.md
new file mode 100644
index 000000000..b781b0468
--- /dev/null
+++ b/keyboards/converter/ibm_terminal/readme.md
@@ -0,0 +1,39 @@
1# Keyboard converter for IBM terminal keyboard
2
3This is a port of TMK's converter/terminal_usb to QMK.
4
5It supports PS/2 Scan Code Set 3 and runs on USB AVR chips such like PJRC Teensy.
6I tested the converter on ATMega32U4 with 1392595(102keys) and 6110345(122keys).
7
8Source code: https://github.com/qmk/qmk_firmware.git
9Article: http://geekhack.org/index.php?topic=27272.0
10
11
12## Connection
13
14Keyboard | ATMega32U4
15:------- | :---------
16Data | PD2
17Clock | PD5
18
19And VCC and GND, of course. See Resource section for keyboard connector pin assign.
20
21
22## Build
23
24```
25git clone https://github.com/qmk/qmk_firmware.git
26cd qmk_firmware
27make converter/ibm_terminal:default
28```
29
30## Resource
31
32- Soarer's Converter: http://geekhack.org/index.php?topic=17458.0
33- 102keys(1392595): http://geekhack.org/index.php?topic=10737.0
34- 122keys(1390876): http://www.seasip.info/VintagePC/ibm_1390876.html
35- KbdBabel: http://www.kbdbabel.org/
36- RJ45 Connector: http://www.kbdbabel.org/conn/kbd_connector_ibmterm.png
37- DIN Connector: http://www.kbdbabel.org/conn/kbd_connector_ibm3179_318x_319x.png
38- WinAVR: http://winavr.sourceforge.net/
39