converter/ibm_terminal Refactor and Configurator support (#4414)
* IBM Terminal converter: layout macro refactor - Renamed KEYMAP to LAYOUT - Renamed KEYMAP_101 to LAYOUT_101 - minor matrix array fixes * IBM Terminal converter: default keymap refactor - Updated layout macro names - Updated to #include QMK_KEYBOARD_H - config.h updated to use #pragma once * IBM Terminal converter: priyadi keymap refactor - Updated layout macro names - Updated to #include QMK_KEYBOARD_H - Removed redundant KC_TRNS and KC_NO defines - config.h updated to use #pragma once * IBM Terminal converter: Configurator support * IBM Terminal converter: readme cleanup Updated markdown formatting. * IBM Terminal converter: readme rename Renamed file to fully lowercase.
This commit is contained in:
parent
709bf386f4
commit
7e87532ec2
|
@ -1,40 +0,0 @@
|
||||||
Keyboard converter for IBM terminal keyboard
|
|
||||||
============================================
|
|
||||||
|
|
||||||
This is a port of TMK's converter/terminal_usb to QMK.
|
|
||||||
|
|
||||||
It supports PS/2 Scan Code Set 3 and runs on USB AVR chips such like PJRC Teensy.
|
|
||||||
I tested the converter on ATMega32U4 with 1392595(102keys) and 6110345(122keys).
|
|
||||||
|
|
||||||
Source code: https://github.com/qmk/qmk_firmware.git
|
|
||||||
Article: http://geekhack.org/index.php?topic=27272.0
|
|
||||||
|
|
||||||
|
|
||||||
CONNECTION
|
|
||||||
----------
|
|
||||||
Keyboard ATMega32U4
|
|
||||||
----------------------
|
|
||||||
Data: PD2
|
|
||||||
Clock: PD5
|
|
||||||
|
|
||||||
And VCC and GND, of course. See RESOURCE for keyboard connector pin assign.
|
|
||||||
|
|
||||||
|
|
||||||
BUILD
|
|
||||||
-----
|
|
||||||
$ git clone https://github.com/qmk/qmk_firmware.git
|
|
||||||
$ cd qmk_firmware
|
|
||||||
$ make converter/ibm_terminal:default
|
|
||||||
|
|
||||||
|
|
||||||
RESOURCE
|
|
||||||
--------
|
|
||||||
Soarer's Converter: http://geekhack.org/index.php?topic=17458.0
|
|
||||||
102keys(1392595): http://geekhack.org/index.php?topic=10737.0
|
|
||||||
122keys(1390876): http://www.seasip.info/VintagePC/ibm_1390876.html
|
|
||||||
KbdBabel: http://www.kbdbabel.org/
|
|
||||||
RJ45 Connector: http://www.kbdbabel.org/conn/kbd_connector_ibmterm.png
|
|
||||||
DIN Connector: http://www.kbdbabel.org/conn/kbd_connector_ibm3179_318x_319x.png
|
|
||||||
WinAVR: http://winavr.sourceforge.net/
|
|
||||||
|
|
||||||
EOF
|
|
|
@ -19,7 +19,7 @@ void matrix_init_user(void);
|
||||||
* 17| |
|
* 17| |
|
||||||
* +---------+
|
* +---------+
|
||||||
*/
|
*/
|
||||||
#define KEYMAP( \
|
#define LAYOUT( \
|
||||||
K08,K10,K18,K20,K28,K30,K38,K40,K48,K50,K57,K5F, \
|
K08,K10,K18,K20,K28,K30,K38,K40,K48,K50,K57,K5F, \
|
||||||
K07,K0F,K17,K1F,K27,K2F,K37,K3F,K47,K4F,K56,K5E, \
|
K07,K0F,K17,K1F,K27,K2F,K37,K3F,K47,K4F,K56,K5E, \
|
||||||
\
|
\
|
||||||
|
@ -45,13 +45,13 @@ void matrix_init_user(void);
|
||||||
{ K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \
|
{ K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \
|
||||||
{ K70, K71, K72, K73, K74, K75, K76, K77 }, \
|
{ K70, K71, K72, K73, K74, K75, K76, K77 }, \
|
||||||
{ K78, K79, K7A, K7B, K7C, K7D, K7E, KC_NO }, \
|
{ K78, K79, K7A, K7B, K7C, K7D, K7E, KC_NO }, \
|
||||||
{ KC_NO, KC_NO, KC_NO, K83, K84, KC_NO, KC_NO, KC_NO,}, \
|
{ KC_NO, KC_NO, KC_NO, K83, K84, KC_NO, KC_NO, KC_NO } \
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IBM Terminal keyboard 1399625, 101-key
|
* IBM Terminal keyboard 1399625, 101-key
|
||||||
*/
|
*/
|
||||||
#define KEYMAP_101( \
|
#define LAYOUT_101( \
|
||||||
K08, K07,K0F,K17,K1F,K27,K2F,K37,K3F,K47,K4F,K56,K5E, K57,K5F,K62, \
|
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, \
|
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);
|
||||||
{ KC_NO, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \
|
{ KC_NO, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \
|
||||||
{ K70, K71, K72, K73, K74, K75, K76, K77 }, \
|
{ K70, K71, K72, K73, K74, K75, K76, K77 }, \
|
||||||
{ KC_NO, K79, K7A, KC_NO, K7C, K7D, K7E, KC_NO }, \
|
{ KC_NO, K79, K7A, KC_NO, K7C, K7D, K7E, KC_NO }, \
|
||||||
{ KC_NO, KC_NO, KC_NO, KC_NO, K84, KC_NO, KC_NO, KC_NO,}, \
|
{ KC_NO, KC_NO, KC_NO, KC_NO, K84, KC_NO, KC_NO, KC_NO } \
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -0,0 +1,245 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "Keyboard converter for IBM terminal keyboard",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 24.75,
|
||||||
|
"height": 8,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"F13", "x":3.25, "y":0},
|
||||||
|
{"label":"F14", "x":4.25, "y":0},
|
||||||
|
{"label":"F15", "x":5.25, "y":0},
|
||||||
|
{"label":"F16", "x":6.25, "y":0},
|
||||||
|
{"label":"F17", "x":7.25, "y":0},
|
||||||
|
{"label":"F18", "x":8.25, "y":0},
|
||||||
|
{"label":"F19", "x":9.25, "y":0},
|
||||||
|
{"label":"F20", "x":10.25, "y":0},
|
||||||
|
{"label":"F21", "x":11.25, "y":0},
|
||||||
|
{"label":"F22", "x":12.25, "y":0},
|
||||||
|
{"label":"F23", "x":13.25, "y":0},
|
||||||
|
{"label":"F24", "x":14.25, "y":0},
|
||||||
|
{"label":"F1", "x":3.25, "y":1},
|
||||||
|
{"label":"F2", "x":4.25, "y":1},
|
||||||
|
{"label":"F3", "x":5.25, "y":1},
|
||||||
|
{"label":"F4", "x":6.25, "y":1},
|
||||||
|
{"label":"F5", "x":7.25, "y":1},
|
||||||
|
{"label":"F6", "x":8.25, "y":1},
|
||||||
|
{"label":"F7", "x":9.25, "y":1},
|
||||||
|
{"label":"F8", "x":10.25, "y":1},
|
||||||
|
{"label":"F9", "x":11.25, "y":1},
|
||||||
|
{"label":"F10", "x":12.25, "y":1},
|
||||||
|
{"label":"F11", "x":13.25, "y":1},
|
||||||
|
{"label":"F12", "x":14.25, "y":1},
|
||||||
|
{"label":"Print Screen", "x":0, "y":3},
|
||||||
|
{"label":"Esc", "x":1, "y":3},
|
||||||
|
{"label":"Esc", "x":2.25, "y":3},
|
||||||
|
{"label":"1", "x":3.25, "y":3},
|
||||||
|
{"label":"2", "x":4.25, "y":3},
|
||||||
|
{"label":"3", "x":5.25, "y":3},
|
||||||
|
{"label":"4", "x":6.25, "y":3},
|
||||||
|
{"label":"5", "x":7.25, "y":3},
|
||||||
|
{"label":"6", "x":8.25, "y":3},
|
||||||
|
{"label":"7", "x":9.25, "y":3},
|
||||||
|
{"label":"8", "x":10.25, "y":3},
|
||||||
|
{"label":"9", "x":11.25, "y":3},
|
||||||
|
{"label":"0", "x":12.25, "y":3},
|
||||||
|
{"label":"-", "x":13.25, "y":3},
|
||||||
|
{"label":"=", "x":14.25, "y":3},
|
||||||
|
{"label":"No", "x":15.25, "y":3},
|
||||||
|
{"label":"Back Space", "x":16.25, "y":3},
|
||||||
|
{"label":"Insert", "x":17.5, "y":3},
|
||||||
|
{"label":"Home", "x":18.5, "y":3},
|
||||||
|
{"label":"Page Up", "x":19.5, "y":3},
|
||||||
|
{"label":"Num Lock", "x":20.75, "y":3},
|
||||||
|
{"label":"/", "x":21.75, "y":3},
|
||||||
|
{"label":"*", "x":22.75, "y":3},
|
||||||
|
{"label":"-", "x":23.75, "y":3},
|
||||||
|
{"label":"Scroll Lock", "x":0, "y":4},
|
||||||
|
{"label":"Int4", "x":1, "y":4},
|
||||||
|
{"label":"Tab", "x":2.25, "y":4, "w":1.5},
|
||||||
|
{"label":"Q", "x":3.75, "y":4},
|
||||||
|
{"label":"W", "x":4.75, "y":4},
|
||||||
|
{"label":"E", "x":5.75, "y":4},
|
||||||
|
{"label":"R", "x":6.75, "y":4},
|
||||||
|
{"label":"T", "x":7.75, "y":4},
|
||||||
|
{"label":"Y", "x":8.75, "y":4},
|
||||||
|
{"label":"U", "x":9.75, "y":4},
|
||||||
|
{"label":"I", "x":10.75, "y":4},
|
||||||
|
{"label":"O", "x":11.75, "y":4},
|
||||||
|
{"label":"P", "x":12.75, "y":4},
|
||||||
|
{"label":"[", "x":13.75, "y":4},
|
||||||
|
{"label":"]", "x":14.75, "y":4},
|
||||||
|
{"label":"No", "x":15.75, "y":4, "w":1.5},
|
||||||
|
{"label":"Delete", "x":17.5, "y":4},
|
||||||
|
{"label":"End", "x":18.5, "y":4},
|
||||||
|
{"label":"Page Down", "x":19.5, "y":4},
|
||||||
|
{"label":"7", "x":20.75, "y":4},
|
||||||
|
{"label":"8", "x":21.75, "y":4},
|
||||||
|
{"label":"9", "x":22.75, "y":4},
|
||||||
|
{"label":"+", "x":23.75, "y":4},
|
||||||
|
{"label":"Pause", "x":0, "y":5},
|
||||||
|
{"label":"Int5", "x":1, "y":5},
|
||||||
|
{"label":"Caps Lock", "x":2.25, "y":5, "w":1.75},
|
||||||
|
{"label":"A", "x":4, "y":5},
|
||||||
|
{"label":"S", "x":5, "y":5},
|
||||||
|
{"label":"D", "x":6, "y":5},
|
||||||
|
{"label":"F", "x":7, "y":5},
|
||||||
|
{"label":"G", "x":8, "y":5},
|
||||||
|
{"label":"H", "x":9, "y":5},
|
||||||
|
{"label":"J", "x":10, "y":5},
|
||||||
|
{"label":"K", "x":11, "y":5},
|
||||||
|
{"label":"L", "x":12, "y":5},
|
||||||
|
{"label":";", "x":13, "y":5},
|
||||||
|
{"label":"'", "x":14, "y":5},
|
||||||
|
{"label":"\\", "x":15, "y":5},
|
||||||
|
{"label":"Enter", "x":16, "y":5, "w":1.25},
|
||||||
|
{"label":"Up", "x":18.5, "y":5},
|
||||||
|
{"label":"4", "x":20.75, "y":5},
|
||||||
|
{"label":"5", "x":21.75, "y":5},
|
||||||
|
{"label":"6", "x":22.75, "y":5},
|
||||||
|
{"label":",", "x":23.75, "y":5},
|
||||||
|
{"label":"App", "x":0, "y":6},
|
||||||
|
{"label":"Int6", "x":1, "y":6},
|
||||||
|
{"label":"Shift", "x":2.25, "y":6, "w":1.25},
|
||||||
|
{"label":"ISO \\", "x":3.5, "y":6},
|
||||||
|
{"label":"Z", "x":4.5, "y":6},
|
||||||
|
{"label":"X", "x":5.5, "y":6},
|
||||||
|
{"label":"C", "x":6.5, "y":6},
|
||||||
|
{"label":"V", "x":7.5, "y":6},
|
||||||
|
{"label":"B", "x":8.5, "y":6},
|
||||||
|
{"label":"N", "x":9.5, "y":6},
|
||||||
|
{"label":"M", "x":10.5, "y":6},
|
||||||
|
{"label":",", "x":11.5, "y":6},
|
||||||
|
{"label":".", "x":12.5, "y":6},
|
||||||
|
{"label":"/", "x":13.5, "y":6},
|
||||||
|
{"label":"No", "x":14.5, "y":6},
|
||||||
|
{"label":"Shift", "x":15.5, "y":6, "w":1.75},
|
||||||
|
{"label":"Left", "x":17.5, "y":6},
|
||||||
|
{"label":"Int2", "x":18.5, "y":6},
|
||||||
|
{"label":"Right", "x":19.5, "y":6},
|
||||||
|
{"label":"1", "x":20.75, "y":6},
|
||||||
|
{"label":"2", "x":21.75, "y":6},
|
||||||
|
{"label":"3", "x":22.75, "y":6},
|
||||||
|
{"label":"Enter", "x":23.75, "y":6},
|
||||||
|
{"label":"RGUI", "x":0, "y":7},
|
||||||
|
{"label":"lgui", "x":1, "y":7},
|
||||||
|
{"label":"Ctrl", "x":2.25, "y":7, "w":1.5},
|
||||||
|
{"label":"Alt", "x":4.75, "y":7, "w":1.5},
|
||||||
|
{"label":"Space", "x":6.25, "y":7, "w":7},
|
||||||
|
{"label":"Alt", "x":13.25, "y":7, "w":1.5},
|
||||||
|
{"label":"Ctrl", "x":15.75, "y":7, "w":1.5},
|
||||||
|
{"label":"Down", "x":18.5, "y":7},
|
||||||
|
{"label":"No", "x":20.75, "y":7},
|
||||||
|
{"label":"0", "x":21.75, "y":7},
|
||||||
|
{"label":".", "x":22.75, "y":7},
|
||||||
|
{"label":"No", "x":23.75, "y":7}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_101": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"Esc", "x":0, "y":0},
|
||||||
|
{"label":"F1", "x":2, "y":0},
|
||||||
|
{"label":"F2", "x":3, "y":0},
|
||||||
|
{"label":"F3", "x":4, "y":0},
|
||||||
|
{"label":"F4", "x":5, "y":0},
|
||||||
|
{"label":"F5", "x":6.5, "y":0},
|
||||||
|
{"label":"F6", "x":7.5, "y":0},
|
||||||
|
{"label":"F7", "x":8.5, "y":0},
|
||||||
|
{"label":"F8", "x":9.5, "y":0},
|
||||||
|
{"label":"F9", "x":11, "y":0},
|
||||||
|
{"label":"F10", "x":12, "y":0},
|
||||||
|
{"label":"F11", "x":13, "y":0},
|
||||||
|
{"label":"F12", "x":14, "y":0},
|
||||||
|
{"label":"Print Screen", "x":15.25, "y":0},
|
||||||
|
{"label":"Scroll Lock", "x":16.25, "y":0},
|
||||||
|
{"label":"Pause", "x":17.25, "y":0},
|
||||||
|
{"label":"`", "x":0, "y":2},
|
||||||
|
{"label":"1", "x":1, "y":2},
|
||||||
|
{"label":"2", "x":2, "y":2},
|
||||||
|
{"label":"3", "x":3, "y":2},
|
||||||
|
{"label":"4", "x":4, "y":2},
|
||||||
|
{"label":"5", "x":5, "y":2},
|
||||||
|
{"label":"6", "x":6, "y":2},
|
||||||
|
{"label":"7", "x":7, "y":2},
|
||||||
|
{"label":"8", "x":8, "y":2},
|
||||||
|
{"label":"9", "x":9, "y":2},
|
||||||
|
{"label":"0", "x":10, "y":2},
|
||||||
|
{"label":"-", "x":11, "y":2},
|
||||||
|
{"label":"=", "x":12, "y":2},
|
||||||
|
{"label":"Back Space", "x":13, "y":2, "w":2},
|
||||||
|
{"label":"Insert", "x":15.25, "y":2},
|
||||||
|
{"label":"Home", "x":16.25, "y":2},
|
||||||
|
{"label":"Page Up", "x":17.25, "y":2},
|
||||||
|
{"label":"Num Lock", "x":18.5, "y":2},
|
||||||
|
{"label":"/", "x":19.5, "y":2},
|
||||||
|
{"label":"*", "x":20.5, "y":2},
|
||||||
|
{"label":"-", "x":21.5, "y":2},
|
||||||
|
{"label":"Tab", "x":0, "y":3, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":3},
|
||||||
|
{"label":"W", "x":2.5, "y":3},
|
||||||
|
{"label":"E", "x":3.5, "y":3},
|
||||||
|
{"label":"R", "x":4.5, "y":3},
|
||||||
|
{"label":"T", "x":5.5, "y":3},
|
||||||
|
{"label":"Y", "x":6.5, "y":3},
|
||||||
|
{"label":"U", "x":7.5, "y":3},
|
||||||
|
{"label":"I", "x":8.5, "y":3},
|
||||||
|
{"label":"O", "x":9.5, "y":3},
|
||||||
|
{"label":"P", "x":10.5, "y":3},
|
||||||
|
{"label":"[", "x":11.5, "y":3},
|
||||||
|
{"label":"]", "x":12.5, "y":3},
|
||||||
|
{"label":"\\", "x":13.5, "y":3, "w":1.5},
|
||||||
|
{"label":"Delete", "x":15.25, "y":3},
|
||||||
|
{"label":"End", "x":16.25, "y":3},
|
||||||
|
{"label":"Page Down", "x":17.25, "y":3},
|
||||||
|
{"label":"7", "x":18.5, "y":3},
|
||||||
|
{"label":"8", "x":19.5, "y":3},
|
||||||
|
{"label":"9", "x":20.5, "y":3},
|
||||||
|
{"label":"Caps Lock", "x":0, "y":4, "w":1.75},
|
||||||
|
{"label":"A", "x":1.75, "y":4},
|
||||||
|
{"label":"S", "x":2.75, "y":4},
|
||||||
|
{"label":"D", "x":3.75, "y":4},
|
||||||
|
{"label":"F", "x":4.75, "y":4},
|
||||||
|
{"label":"G", "x":5.75, "y":4},
|
||||||
|
{"label":"H", "x":6.75, "y":4},
|
||||||
|
{"label":"J", "x":7.75, "y":4},
|
||||||
|
{"label":"K", "x":8.75, "y":4},
|
||||||
|
{"label":"L", "x":9.75, "y":4},
|
||||||
|
{"label":";", "x":10.75, "y":4},
|
||||||
|
{"label":"'", "x":11.75, "y":4},
|
||||||
|
{"label":"Enter", "x":12.75, "y":4, "w":2.25},
|
||||||
|
{"label":"4", "x":18.5, "y":4},
|
||||||
|
{"label":"5", "x":19.5, "y":4},
|
||||||
|
{"label":"6", "x":20.5, "y":4},
|
||||||
|
{"label":"+", "x":21.5, "y":3, "h":2},
|
||||||
|
{"label":"Shift", "x":0, "y":5, "w":2.25},
|
||||||
|
{"label":"Z", "x":2.25, "y":5},
|
||||||
|
{"label":"X", "x":3.25, "y":5},
|
||||||
|
{"label":"C", "x":4.25, "y":5},
|
||||||
|
{"label":"V", "x":5.25, "y":5},
|
||||||
|
{"label":"B", "x":6.25, "y":5},
|
||||||
|
{"label":"N", "x":7.25, "y":5},
|
||||||
|
{"label":"M", "x":8.25, "y":5},
|
||||||
|
{"label":",", "x":9.25, "y":5},
|
||||||
|
{"label":".", "x":10.25, "y":5},
|
||||||
|
{"label":"/", "x":11.25, "y":5},
|
||||||
|
{"label":"Shift", "x":12.25, "y":5, "w":2.75},
|
||||||
|
{"label":"Up", "x":16.25, "y":5},
|
||||||
|
{"label":"1", "x":18.5, "y":5},
|
||||||
|
{"label":"2", "x":19.5, "y":5},
|
||||||
|
{"label":"3", "x":20.5, "y":5},
|
||||||
|
{"label":"Ctrl", "x":0, "y":6, "w":1.5},
|
||||||
|
{"label":"Alt", "x":2.5, "y":6, "w":1.5},
|
||||||
|
{"label":"Space", "x":4, "y":6, "w":7},
|
||||||
|
{"label":"Alt", "x":11, "y":6, "w":1.5},
|
||||||
|
{"label":"Ctrl", "x":13.5, "y":6, "w":1.5},
|
||||||
|
{"label":"Left", "x":15.25, "y":6},
|
||||||
|
{"label":"Down", "x":16.25, "y":6},
|
||||||
|
{"label":"Right", "x":17.25, "y":6},
|
||||||
|
{"label":"0", "x":18.5, "y":6, "w":2},
|
||||||
|
{"label":".", "x":20.5, "y":6},
|
||||||
|
{"label":"Enter", "x":21.5, "y":5, "h":2}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,3 @@
|
||||||
#ifndef CONFIG_USER_H
|
#pragma once
|
||||||
#define CONFIG_USER_H
|
|
||||||
|
|
||||||
#include "../../config.h"
|
// place overrides here
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -15,18 +15,12 @@ You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdint.h>
|
#include QMK_KEYBOARD_H
|
||||||
#include <stdbool.h>
|
|
||||||
#include "keycode.h"
|
|
||||||
#include "print.h"
|
|
||||||
#include "debug.h"
|
|
||||||
#include "util.h"
|
|
||||||
#include "ibm_terminal.h"
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
// Layer 0
|
// Layer 0
|
||||||
|
|
||||||
KEYMAP(
|
LAYOUT(
|
||||||
KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
|
KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
|
||||||
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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||||
|
|
||||||
|
@ -56,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
* `----' `---------------------------------------' `----' `-----------' `---------------'
|
* `----' `---------------------------------------' `----' `-----------' `---------------'
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
KEYMAP_101(
|
LAYOUT_101(
|
||||||
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,
|
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,
|
||||||
|
|
||||||
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,
|
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,
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
#ifndef CONFIG_USER_H
|
#pragma once
|
||||||
#define CONFIG_USER_H
|
|
||||||
|
|
||||||
#include "../../config.h"
|
// place overrides here
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -15,17 +15,7 @@ You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "keycode.h"
|
#include QMK_KEYBOARD_H
|
||||||
#include "print.h"
|
|
||||||
#include "debug.h"
|
|
||||||
#include "util.h"
|
|
||||||
#include "ibm_terminal.h"
|
|
||||||
#include "action_layer.h"
|
|
||||||
|
|
||||||
// Fillers to make layering clearer
|
|
||||||
|
|
||||||
#define _______ KC_TRNS
|
|
||||||
#define XXXXXXX KC_NO
|
|
||||||
|
|
||||||
enum layers {
|
enum layers {
|
||||||
QWE, // qwerty
|
QWE, // qwerty
|
||||||
|
@ -159,7 +149,7 @@ const uint32_t PROGMEM unicode_map[] = {
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/* qwerty */
|
/* qwerty */
|
||||||
[QWE] = KEYMAP(
|
[QWE] = LAYOUT(
|
||||||
KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_PSCR, KC_SLCK, KC_PAUS,
|
KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||||
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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||||
|
|
||||||
|
@ -171,7 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
),
|
),
|
||||||
|
|
||||||
/* colemak */
|
/* colemak */
|
||||||
[COL] = KEYMAP(
|
[COL] = LAYOUT(
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
|
||||||
|
@ -183,7 +173,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
),
|
),
|
||||||
|
|
||||||
/* workman */
|
/* workman */
|
||||||
[WOR] = KEYMAP(
|
[WOR] = LAYOUT(
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
|
||||||
|
@ -195,7 +185,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
),
|
),
|
||||||
|
|
||||||
/* dvorak */
|
/* dvorak */
|
||||||
[DVO] = KEYMAP(
|
[DVO] = LAYOUT(
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
|
||||||
|
@ -207,7 +197,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
),
|
),
|
||||||
|
|
||||||
/* system */
|
/* system */
|
||||||
[SYS] = KEYMAP(
|
[SYS] = LAYOUT(
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
|
||||||
|
@ -219,7 +209,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
),
|
),
|
||||||
|
|
||||||
/* mouse keys */
|
/* mouse keys */
|
||||||
[MOU] = KEYMAP(
|
[MOU] = LAYOUT(
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
|
||||||
|
@ -231,7 +221,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
),
|
),
|
||||||
|
|
||||||
/* emoji */
|
/* emoji */
|
||||||
[EMO] = KEYMAP(
|
[EMO] = LAYOUT(
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
|
||||||
|
@ -243,7 +233,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
),
|
),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
[XXX] = KEYMAP(
|
[XXX] = LAYOUT(
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
# Keyboard converter for IBM terminal keyboard
|
||||||
|
|
||||||
|
This is a port of TMK's converter/terminal_usb to QMK.
|
||||||
|
|
||||||
|
It supports PS/2 Scan Code Set 3 and runs on USB AVR chips such like PJRC Teensy.
|
||||||
|
I tested the converter on ATMega32U4 with 1392595(102keys) and 6110345(122keys).
|
||||||
|
|
||||||
|
Source code: https://github.com/qmk/qmk_firmware.git
|
||||||
|
Article: http://geekhack.org/index.php?topic=27272.0
|
||||||
|
|
||||||
|
|
||||||
|
## Connection
|
||||||
|
|
||||||
|
Keyboard | ATMega32U4
|
||||||
|
:------- | :---------
|
||||||
|
Data | PD2
|
||||||
|
Clock | PD5
|
||||||
|
|
||||||
|
And VCC and GND, of course. See Resource section for keyboard connector pin assign.
|
||||||
|
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/qmk/qmk_firmware.git
|
||||||
|
cd qmk_firmware
|
||||||
|
make converter/ibm_terminal:default
|
||||||
|
```
|
||||||
|
|
||||||
|
## Resource
|
||||||
|
|
||||||
|
- Soarer's Converter: http://geekhack.org/index.php?topic=17458.0
|
||||||
|
- 102keys(1392595): http://geekhack.org/index.php?topic=10737.0
|
||||||
|
- 122keys(1390876): http://www.seasip.info/VintagePC/ibm_1390876.html
|
||||||
|
- KbdBabel: http://www.kbdbabel.org/
|
||||||
|
- RJ45 Connector: http://www.kbdbabel.org/conn/kbd_connector_ibmterm.png
|
||||||
|
- DIN Connector: http://www.kbdbabel.org/conn/kbd_connector_ibm3179_318x_319x.png
|
||||||
|
- WinAVR: http://winavr.sourceforge.net/
|
||||||
|
|
Loading…
Reference in New Issue