Unicomp PC 122 keymatrix simulator
This interactive tool simulates the keyboard matrix (keymatrix) of a Unicomp PC 122 so that you can test if possible key combinations work without needing to test on a physical keyboard. Model Ms are all fundamentally two-key rollover (2KRO) keyboards 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 keymatrix 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 keymatrix 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.
Only US English functional layout is available for the 5250 simulator at this time
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 keymatrix 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_rbrc | 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_lbrc | 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 |
- Many thanks to Purdea Andrei (/u/_pandrew, purdeaandrei) for providing the IBM Enhanced Keyboard, Unicomp PC 122, Unicomp EnduraPro/Ultra Classic and Unicomp Mini Model M matrices and providing technical assistance.
- Many thanks to whiskerbiskit for helping to crack the Unicomp Mini Model M keymatrix.
- phosphorglow's IBM Converged Keyboard (122-key Model M) keymatrix was used for the IBM Converged Keyboard (122-key Model M) keymatrix simulator.
- phosphorglow's IBM Space Saving Keyboard keymatrix was used for the IBM Space Saving keymatrix simulator.