Unicomp PC 122 matrix simulator (WIP)

This interactive tool simulates the key-matrix of a Unicomp PC 122 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 (3270)

F13
F14
F15
F16
F17
F18
F19
F20
F21
F22
F23
F24
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
Attn
Clear
`
1
2
3
4
5
6
7
8
9
0
-
=
Backspace
Dup PA1
FldMk PA2
Jump
Esc
NumLk ScrLk
Num ,
Num Space
CrSel
Pause
Forward Tab
Q
W
E
R
T
Y
U
I
O
P
[
]
Return
Back Tab
Insert
Delete
Num 7
Num 8
Num 9
Num +
ExSel
ErEOF
Lock
A
S
D
F
G
H
J
K
L
;
'
{
Up
Num 4
Num 5
Num 6
Num -
Print
Copy Play
LShift
<
Z
X
C
V
B
N
M
,
.
/
RShift
Left
Rule
Right
Num 1
Num 2
Num 3
Num Enter
GUI
Menu
Reset
LAlt
Space
RAlt
Enter
Down
Num 0
Num .
Switch to 5250

Only US English functional layout is available for the 3270 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_lb1 k_lb4 k_f3 k_f1 k_ins k_3 k_4 k_6 k_f5 k_f7 k_f9 k_f11 k_lb3 k_right k_lb2 k_lb6
1 k_tab k_f21 k_del k_pgdn k_f22 k_e k_t k_u k_backspace k_minus k_down k_end k_home k_f23 k_f14 k_caps
2 k_1 k_f19 kp_nl k_pgup k_f17 k_i k_r k_y k_equals k_9 k_0 kp_mult kp_div k_up k_lb9 k_f16
3 k_q k_rshift kp_9 k_2 KC_NO k_k k_f k_h k_squarebrcl k_o k_semicolon kp_8 kp_7 k_f24 k_f13 k_lctrl
4 k_a KC_NO kp_6 k_w k_lalt k_d k_g k_j k_backsl k_squarebrop k_singlequote kp_5 kp_4 k_f20 k_f15 k_lb10
5 k_z k_lshift kp_dot k_x KC_NO k_cm k_b k_m k_return k_period k_p kp_0 kp_1 k_navmid kp_plus_hidden k_rctrl
6 k_nubs KC_NO kp_3 k_s k_ralt k_c k_v k_n k_left k_l k_fwslash kp_2 kp_plus k_nuhs k_lb7 KC_NO
7 k_tild k_f18 kp_minus k_f2 k_f4 k_8 k_5 k_7 k_f6 k_f8 k_f10 k_f12 k_lb8 k_space kp_enter k_lb5

More info