IBM Enhanced Keyboard (101/102-key) matrix simulator (WIP)

This interactive tool simulates the key-matrix of a IBM Enhanced Keyboard (101/102-key) so that you can test if possible key combinations work without needing to test on a physical keyboard. Model M keyboards are all fundamentally two-key rollover (2KRO) due to the use of a membrane assembly, but this doesn't mean Model Ms cannot register more than 2 keys unlike popular belief. This tool demonstrates this and can allow you to see if a given Model M key-matrix would be suitable for your needs.

Disclaimer & notes

This tool is intended to be a guideline only. The results from any input are based on physical key-matrix data only and doesn't take into account firmware (ie, differing deghosting algorithm implementations or bugs/quirks). If you're using this tool as part of a purchasing decision, if possible, it would be prudent to try verifying results on a real keyboard someone you know has or ask on /r/modelm subreddit. The tool is also best viewed on desktop.

Keyboard simulator (ISO)

Esc
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
Print Screen
Scroll Lock
Pause
`
1
2
3
4
5
6
7
8
9
0
-
=
Backspace
Insert
Home
Page Up
Num Lock
Num /
Num *
Num -
Tab
Q
W
E
R
T
Y
U
I
O
P
[
]
Enter
Delete
End
Page Down
Num 7
Num 8
Num 9
Num +
Caps Lock
A
S
D
F
G
H
J
K
L
;
'
#
Num 4
Num 5
Num 6
LShift
ISO \
Z
X
C
V
B
N
M
,
.
/
RShift
Up
Num 1
Num 2
Num 3
Num Enter
LCtrl
LAlt
Space
RAlt
RCtrl
Left
Down
Right
Num 0
Num .
Switch to ANSI/US English

Only UK English functional layout is available for the ISO simulator at this time

Key

Firmware caution: A 3-key combination that may or may not be problematic depending on keyboard's firmware. A custom QMK-based controller would probably be fine with these, but IBM/Lexmark/Unicomp native firmware may not.
Hardware block: A N-key combination that will block in any circumstance due to the matrix's design. There is nothing you can do about these since they're a fundamental key-matrix limitation.

Matrix

This is a tabular representation of the data used by the simulator above. A keyboard matrix is constructed from a series of columns (X-axis) and rows (Y-axis) whose intersections are used for key assignment. Such matrices allows a large number of keys to be driven by relatively few traces, as opposed to each key requiring its own circuit.

0 1 2 3 4 5 6 7 8 9 A B C D E F
0 k_esc k_g k_h k_f6 KC_NO k_singlequote k_f5 KC_NO KC_NO kp_0 kp_dot k_up k_lalt KC_NO k_f4 k_nubs
1 k_tab k_t k_y k_squarebrcl k_f7 k_squarebrop k_backspace k_lshift kp_4 kp_5 kp_6 KC_NO KC_NO KC_NO k_f3 k_caps
2 k_tild k_5 k_6 k_equals k_f8 k_minus k_f9 KC_NO k_del k_ins k_pgup k_home KC_NO k_lctrl k_f2 k_f1
3 k_1 k_4 k_7 k_8 k_9 k_0 k_f10 KC_NO k_f11 k_f12 k_pgdn k_end k_prscr KC_NO k_3 k_2
4 k_q k_r k_u k_i k_o k_p KC_NO KC_NO kp_7 kp_8 kp_9 kp_plus k_scrl KC_NO k_e k_w
5 k_a k_f k_j k_k k_l k_semicolon k_backsl KC_NO kp_1 kp_2 kp_3 kp_enter KC_NO KC_NO k_d k_s
6 k_z k_v k_m k_cm k_period k_nuhs k_return k_rshift kp_nl kp_div kp_mult k_pause KC_NO k_rctrl k_c k_x
7 KC_NO k_b k_n KC_NO KC_NO k_fwslash k_space KC_NO k_down k_right kp_minus k_left k_ralt KC_NO KC_NO KC_NO

More info