Files
USB4VC/resources/IBM PC AT Keyboard Protocol · tmk_tmk_keyboard Wiki.htm
2022-05-18 23:34:29 +01:00

9822 lines
601 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html data-color-mode="light" data-light-theme="light" data-dark-theme="dark" lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<link rel="dns-prefetch" href="https://github.githubassets.com/">
<link rel="dns-prefetch" href="https://avatars.githubusercontent.com/">
<link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com/">
<link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
<link rel="preconnect" href="https://github.githubassets.com/" crossorigin="">
<link rel="preconnect" href="https://avatars.githubusercontent.com/">
<link crossorigin="anonymous" media="all" integrity="sha512-IVVa++hW3DBYJnNsmMMiUwt96BJ1mjUpGNDRWeui5BY1iA04E58M5NujgomnZU9R9DB+H99IlE7a+9b5XlO25g==" rel="stylesheet" href="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/light-21555afbe856.css"><link data-color-theme="dark" crossorigin="anonymous" media="all" integrity="sha512-1KkMNn8M/al/dtzBLupRwkIOgnA9MWkm8oxS+solP87jByEvY/g4BmoxLihRogKcX1obPnf4Yp7dI0ZTWO+ljg==" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-d4a90c367f0c.css"><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" integrity="sha512-cZa7DZqvMBwD236uzEunO/G1dvw8/QftyT2UtLWKQFEy0z0eq0R5WPwqVME+3NSZG1YaLJAaIqtU+m0zWf/6SQ==" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-7196bb0d9aaf.css"><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" integrity="sha512-WVoKqJ4y1nLsdNH4RkRT5qrM9+n9RFe1RHSiTnQkBf5TSZkJEc9GpLpTIS7T15EQaUQBJ8BwmKvwFPVqfpTEIQ==" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-595a0aa89e32.css"><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" integrity="sha512-XpAMBMSRZ6RTXgepS8LjKiOeNK3BilRbv8qEiA/M3m+Q4GoqxtHedOI5BAZRikCzfBL4KWYvVzYZSZ8Gp/UnUg==" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-5e900c04c491.css"><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" integrity="sha512-3HF2HZ4LgEIQm77yOzoeR20CX1n2cUQlcywscqF4s+5iplolajiHV7E5ranBwkX65jN9TNciHEVSYebQ+8xxEw==" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-dc71761d9e0b.css"><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" integrity="sha512-+J8j3T0kbK9/sL3zbkCfPtgYcRD4qQfRbT6xnfOrOTjvz4zhr0M7AXPuE642PpaxGhHs1t77cTtieW9hI2K6Gw==" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-f89f23dd3d24.css"><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" integrity="sha512-AQeAx5wHQAXNf0DmkvVlHYwA3f6BkxunWTI0GGaRN57GqD+H9tW8RKIKlopLS0qGaC54seFsPc601GDlqIuuHg==" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-010780c79c07.css"><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" integrity="sha512-+u5pmgAE0T03d/yI6Ha0NWwz6Pk0W6S6WEfIt8veDVdK8NTjcMbZmQB9XUCkDlrBoAKkABva8HuGJ+SzEpV1Uw==" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-faee699a0004.css">
<link crossorigin="anonymous" media="all" integrity="sha512-UaC13TxG23hAbfH8gKhoyj9nsc+0Fhd0RkAi3o7p/WBYXY2FTFBNQDSP3fDUTnL8e2u3oXdh70fE6C9KBS9Xgw==" rel="stylesheet" href="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/frameworks-51a0b5dd3c46.css">
<link crossorigin="anonymous" media="all" integrity="sha512-U8avrwJeWHSCoiCCmvMejRkkFKjvCM/eoP4/EtFdfXV/iY4jkipLqZM/osH4+xybxkTPfkAFoaHtxw9ihxbfwA==" rel="stylesheet" href="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/behaviors-53c6afaf025e.css">
<link crossorigin="anonymous" media="all" integrity="sha512-tytt4iUhosNvB/h0dpKyAiJgbmbwabQ1UeHGFw9NONEOpSAOkfLdjFRP2h5FwQNTnq6OrNo5mPNRxPlfzYXosw==" rel="stylesheet" href="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/wiki-b72b6de22521.css">
<link crossorigin="anonymous" media="all" integrity="sha512-eriWa7QVWNpSYqoUHE/W6cu5u5iJRaqzJKFYAwFsboBhMmXQ8LVTaYUDIDNSW2QGX8R98f24dLHQPHk076rKAw==" rel="stylesheet" href="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/github-7ab8966bb415.css">
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-qiEdu/9cIyMYGdvcT+aIzwoPYWGew4Rk1PjZuCtYYRLRC6jvHCGHVMlMsepRZZ4CNOEhcQq8RCVxYsj4RQgF5A==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/runtime-aa211dbbff5c.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-SpZgKJyhHfrmO9ZLmJztuQzJ+J7tYz7l2uK0FahNXJpiNvVqiy1b2P1HammIlT0b/yoq6M9ZC88oDEuIBe8X+g==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/environment-4a9660289ca1.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-ZAKZQWCEc6bs9LSQOCPRWq3wqRDkQxG2bPL/pW9Lj/Seap0PV0kF/yKCHske8mW3Zytde9n1Im83jxrCmpaMrA==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/5724-640299416084.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-yIsmzjyBs6Mu12a5shTZVT0Jr80it7wV2yjZs77L3GmHoFP5SPNsWY9P+Swu7lPaWMXMtyaxceBQGP/7/Kyl8w==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/93-c88b26ce3c81.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-WtABWNDgj+0Z+nTC8dZsMxFYSujm/s9SJTsHmFnzg73joAek4tmQ1zXCSLBvgAsgdPE8EQuOuOOW0NNP97Y7UA==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/8630-5ad00158d0e0.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-7ocxdRbeEIuk5x86ryHnbc5GBupcna8GP7PEtAqWS0+sMjp4CX10GV5P0XsN7Grx1XTum3BG1FFOwwpccenxkw==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/5157-ee87317516de.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-7t/qm9rsK1ausz4+qmdD1DVavNT0Ask2sQNGggVw9n82rwMdTe/+k4rO67V4XP0aErLpodj1No8clP63c0AZkw==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/9244-eedfea9bdaec.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-W+9GbCgd9tSXyjPKjIaJwHD2hoMWnttGaw6SD/PdwGYTvaFJZl18dNJ11PYmqGvtRrWvuFPvZuiDj1Jl9DiKPg==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/github-elements-5bef466c281d.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-vcIy1bJtpc48T4s2I1rtq7MfWVntsJUaaDdHBrbs9PfatPHMFi/78djyiEE1gVJx6Fg+++z9r2HyF8u6joqJGw==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/element-registry-bdc232d5b26d.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-Hb8d69V10VxkC90NX3zvjNovHq5vrRv0XCde5qNf5WiQAB6BziCN+gEbKG+fDj8i05B2pBdyGIh+3pmaRvzLJA==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/5388-1dbf1debd575.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-JPHg6lXC/kVMbA05VoaD5W739fMUF/ObaJ4NrZWLi91OWI9xEhJ9NtwbGROmxjCm5FGwNOVohY+DXILkO19dtA==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/8932-24f1e0ea55c2.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-EIceiRH5/XsS9RPMOGlnx37yFBM2TbSNcVWgTjKPmRwjdl/lfKNdColL/PLunshA/attRqdYJVnNNGXNyhx6Zw==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/7077-10871e8911f9.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-9mbH9ANKp+mACS9WB6Dwf0B0JST0GGfdf1Cal3BazOkVjhvgxnw3FPD6oNcq/mrsBR8Eowgelgcwvu1KhyUUhQ==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/6262-f666c7f4034a.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-K5XqHZlKou8Ex97bfu02vnw9p1q3z7EXg/hNqwyzevXKd7VQhkOwCH5y4Kx7AQ+wxdF7w2O30sb03ukDwHGVJQ==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/3682-2b95ea1d994a.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-JLnnTPhYd6z7k1g7CjOIUK4YQRvqCzvSNqRq6GH8tenPhyDVVXDp//clwLGS9xZc07/khbn/oI6NNUUUU5viPQ==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/3932-24b9e74cf858.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-tx/4SiGFY79vP4U+QYRsmc1MW9NqI1usvAK4AVuZ6/v5KBpphlz12hxaVqmfaF0QT3GYWQZMjb/ikfN2vFl3BA==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/6153-b71ff84a2185.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-a4WgZYeVc2aKrHPyOfYm6uY7Vcw96gOwHqRhs6hkNqnhHJuZC4f94uvcomE6JS3HhgCVZTQpvU8PgucLwSkteg==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/5222-6b85a0658795.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-XrU5iELtQSSz5e+xv08TibnOi4mPUjcpZ+15cFMR3IghxHuI0P7H0pZm+mHCrj4C1PkpM3G7SdSV+0ST9mCNQA==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/716-5eb5398842ed.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-w7JZiAWkqSa0CWSJ/E+jLuewrjkSYBkJAtCrZCT0i/fxRAP7yp+wo1ITrYP/zR3gydHD3AuA/jlCZlFKJxaGyA==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/behaviors-c3b2598805a4.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-nZpgXrBvHm7YePk3m1UhdxY43Ra8lTPxsGk7ocBtGBimPanKdybEgnPXXulh7k7tNLnPzPXFEJ5wY7QGowGOdw==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/7749-9d9a605eb06f.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-KKLG+hE5uCMJHxwocsH3WQNYzT3qftRjkNe7L0b5aOMgoS5iT5oWDIwhiy38adTWwg6xdomYeWvi2+wQBjOBAg==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/notifications-global-28a2c6fa1139.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-xyGHYwjeMuGHmOdgy9Kb/p7zpSxjrw197tH6c+PzJj3L9zUCmjXBRbPky6B3Dqc/dN0x6OPF7n2Uh5u5MdbVUw==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/90-c721876308de.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-ZSFwlLEfCHi+qMlyabT/x1hgegM31ywDLEVDPSNpNv5/bxbnTVHBhPvLTkSf+Yie8nohu1/RkuXr8PMIkVhO9w==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/2734-65217094b11f.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-AX8yHsBvOrK05g8WTf93Zbc1BLgNv8lm5zW4GHMBmhH0rqS/foQCeEwS0gHO4vjHHYa9pVnGNexyFUEpLRIfhA==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/6791-017f321ec06f.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-Xzsl6sj4njPOWWNcuXImpAUsw8FGZPzToaMzwtiMMg4CEn2WgXIy04K88bkulCkkxDe60EUPxbjIcrgTrtBRGw==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/diffs-5f3b25eac8f8.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-czwRwkgjdONwjHRTnJO6lri5AuLrjb+E4ElkiNkt3C1Y46REKDSc1uPU/nB0QvWoqElGqRSlw5eGwKnudO98rw==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/wiki-733c11c24823.js"></script>
<meta name="viewport" content="width=device-width">
<title>IBM PC AT Keyboard Protocol · tmk/tmk_keyboard Wiki</title>
<meta name="description" content="Keyboard firmwares for Atmel AVR and Cortex-M. Contribute to tmk/tmk_keyboard development by creating an account on GitHub.">
<link rel="search" type="application/opensearchdescription+xml" href="https://github.com/opensearch.xml" title="GitHub">
<link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
<meta property="fb:app_id" content="1401488693436528">
<meta name="apple-itunes-app" content="app-id=1477376905">
<meta name="twitter:image:src" content="https://opengraph.githubassets.com/25694c24d69ba4872c66941e75cc5aea9ce24fea31c64c310f92cb60d5cb482a/tmk/tmk_keyboard"><meta name="twitter:site" content="@github"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="IBM PC AT Keyboard Protocol · tmk/tmk_keyboard Wiki"><meta name="twitter:description" content="Keyboard firmwares for Atmel AVR and Cortex-M. Contribute to tmk/tmk_keyboard development by creating an account on GitHub.">
<meta property="og:image" content="https://opengraph.githubassets.com/25694c24d69ba4872c66941e75cc5aea9ce24fea31c64c310f92cb60d5cb482a/tmk/tmk_keyboard"><meta property="og:image:alt" content="Keyboard firmwares for Atmel AVR and Cortex-M. Contribute to tmk/tmk_keyboard development by creating an account on GitHub."><meta property="og:image:width" content="1200"><meta property="og:image:height" content="600"><meta property="og:site_name" content="GitHub"><meta property="og:type" content="object"><meta property="og:title" content="IBM PC AT Keyboard Protocol · tmk/tmk_keyboard Wiki"><meta property="og:url" content="https://github.com/tmk/tmk_keyboard"><meta property="og:description" content="Keyboard firmwares for Atmel AVR and Cortex-M. Contribute to tmk/tmk_keyboard development by creating an account on GitHub.">
<link rel="assets" href="https://github.githubassets.com/">
<link rel="shared-web-socket" href="wss://alive.github.com/_sockets/u/7376778/ws?session=eyJ2IjoiVjMiLCJ1Ijo3Mzc2Nzc4LCJzIjo4MDc1MDEwNjQsImMiOjE4ODIzODkwOTUsInQiOjE2NTE2OTU2Mjh9--44f5654ae21ff6f35f22528a315364e2ff750ea2d2c8ead42b7919f65341d9cf" data-refresh-url="/_alive" data-session-id="0d8ba962d1249470fe77660b8341a407ea32cc44a3cefe25f2242be56288587f">
<link rel="shared-web-socket-src" href="https://github.com/assets-cdn/worker/socket-worker-b98ccfd9236e.js">
<link rel="sudo-modal" href="https://github.com/sessions/sudo_modal">
<meta name="request-id" content="F04C:683A:55CF96:911E19:6272E003" data-pjax-transient="true"><meta name="html-safe-nonce" content="98c08e408f6f4ede783970ed1f982509b85485a5dc016643773e0559e3c8bee9" data-pjax-transient="true"><meta name="visitor-payload" content="eyJyZWZlcnJlciI6bnVsbCwicmVxdWVzdF9pZCI6IkYwNEM6NjgzQTo1NUNGOTY6OTExRTE5OjYyNzJFMDAzIiwidmlzaXRvcl9pZCI6IjY2MDQzODYxOTM1NDQzOTE3NjUiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==" data-pjax-transient="true"><meta name="visitor-hmac" content="bb086237a468b5473f8357f1bccd52449fa490280c28e7cd5519cd561c65ed5e" data-pjax-transient="true">
<meta name="hovercard-subject-tag" content="repository:1030602" data-pjax-transient="">
<meta name="github-keyboard-shortcuts" content="repository" data-pjax-transient="true">
<meta name="selected-link" value="repo_wiki" data-pjax-transient="">
<meta name="google-site-verification" content="c1kuD-K2HIVF635lypcsWPoD4kilo5-jA_wBFyT4uMY">
<meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
<meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
<meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">
<meta name="octolytics-url" content="https://collector.github.com/github/collect"><meta name="octolytics-actor-id" content="7376778"><meta name="octolytics-actor-login" content="dekuNukem"><meta name="octolytics-actor-hash" content="81e74ca618cbc3bee52708d70309c1a6bfa2b4b54146ab00e1bfe09c1a25eb21">
<meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;/wiki/show" data-pjax-transient="true">
<meta name="hostname" content="github.com">
<meta name="user-login" content="dekuNukem">
<meta name="keyboard-shortcuts-preference" content="all">
<script type="application/json" id="memex_keyboard_shortcuts_preference">"all"</script>
<meta name="expected-hostname" content="github.com">
<meta name="js-proxy-site-detection-payload" content="ZjYwNzM2YTMwZjY2YzllNDgzMWZiNzZmZGZiY2JmMjk4NGYzZDIyNTI5ZjM2NTMyZDkzZDllNjRkM2VhOWFmNnx7InJlbW90ZV9hZGRyZXNzIjoiOTIuMzAuMjM4LjU3IiwicmVxdWVzdF9pZCI6IkYwNEM6NjgzQTo1NUNGOTY6OTExRTE5OjYyNzJFMDAzIiwidGltZXN0YW1wIjoxNjUxNjk1NjI4LCJob3N0IjoiZ2l0aHViLmNvbSJ9">
<meta name="enabled-features" content="ACTIONS_CALLABLE_WORKFLOWS,COMMAND_PALETTE_MULTI_PAGE_COMMANDS,MARKETPLACE_PENDING_INSTALLATIONS,PRESENCE_IDLE">
<meta http-equiv="x-pjax-version" content="dda232f907d8ff17678a0a6145e5169c755a17ea30b9e728320cc1c45ee85120" data-turbo-track="reload">
<meta http-equiv="x-pjax-csp-version" content="ca8f28be2f02ebc697029bdc0646515d9017cf770c4c1ff8414eccd96f6b5a2a" data-turbo-track="reload">
<meta http-equiv="x-pjax-css-version" content="1af72c6472ee205fd9d7a8be757ca6262742bf0ce508b9a8daa8d5065a94c6f6" data-turbo-track="reload">
<meta http-equiv="x-pjax-js-version" content="74be297045cb98c4b1aea72bc3582ca9982fb20587fa1644af609acbd920f716" data-turbo-track="reload">
<meta name="turbo-cache-control" content="no-preview">
<meta name="go-import" content="github.com/tmk/tmk_keyboard git https://github.com/tmk/tmk_keyboard.git">
<meta name="octolytics-dimension-user_id" content="424590"><meta name="octolytics-dimension-user_login" content="tmk"><meta name="octolytics-dimension-repository_id" content="1030602"><meta name="octolytics-dimension-repository_nwo" content="tmk/tmk_keyboard"><meta name="octolytics-dimension-repository_public" content="true"><meta name="octolytics-dimension-repository_is_fork" content="false"><meta name="octolytics-dimension-repository_network_root_id" content="1030602"><meta name="octolytics-dimension-repository_network_root_nwo" content="tmk/tmk_keyboard">
<meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
<meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
<meta name="browser-optimizely-client-errors-url" content="https://api.github.com/_private/browser/optimizely_client/errors">
<link rel="mask-icon" href="https://github.githubassets.com/pinned-octocat.svg" color="#000000">
<link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png">
<link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg">
<meta name="theme-color" content="#1e2327">
<meta name="color-scheme" content="light dark">
<link rel="manifest" href="https://github.com/manifest.json" crossorigin="use-credentials">
</head>
<body class="logged-in env-production page-responsive" style="word-wrap: break-word;">
<div class="position-relative js-header-wrapper ">
<a href="#start-of-content" class="p-3 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a>
<span data-view-component="true" class="progress-pjax-loader js-pjax-loader-bar Progress position-fixed width-full">
<span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span>
</span>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-jM3L1fEUZTGVLuv7zeThB48PVXexqt5vwSA2cWay9ac2FYr3++NfnWQg3VnD1rldn8NZpo4lb105yJw4HqLxGg==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/6319-8ccdcbd5f114.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-UeJFBk/yVEsBudrmkrWA+zrFftTFOeT/F9gqCSw4P4Orz2f8SXDvtTyIxUU7XyrsCTR2sVH4aCzJ+4GrKEBjEg==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/5426-51e245064ff2.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-pwYLtVM6QnHRbEqRFqqoDeCCK9n5BeOqWk6uknLjW3JCLilxLm/MRmFTDr+5ad5xwekremMmS7+uIqMBmenD3g==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/6399-a7060bb5533a.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" integrity="sha512-UH7Xfz2PK/eccVk4CH4gf56TkVUnIyFo0SyIoGBshfFAySe0v9mv0J5H0hcrIwTHiuHvYs7yxtM8E4hg43YJ/g==" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/command-palette-507ed77f3d8f.js"></script>
<header class="Header js-details-container Details px-3 px-md-4 px-lg-5 flex-wrap flex-md-nowrap" role="banner">
<div class="Header-item mt-n1 mb-n1 d-none d-md-flex">
<a class="Header-link " href="https://github.com/" data-hotkey="g d" aria-label="Homepage " data-turbo="false" data-analytics-event="{&quot;category&quot;:&quot;Header&quot;,&quot;action&quot;:&quot;go to dashboard&quot;,&quot;label&quot;:&quot;icon:logo&quot;}">
<svg height="32" aria-hidden="true" viewBox="0 0 16 16" version="1.1" width="32" data-view-component="true" class="octicon octicon-mark-github v-align-middle">
<path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path>
</svg>
</a>
</div>
<div class="Header-item d-md-none">
<button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="Header-link js-details-target btn-link"> <svg aria-hidden="true" height="24" viewBox="0 0 16 16" version="1.1" width="24" data-view-component="true" class="octicon octicon-three-bars">
<path fill-rule="evenodd" d="M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z"></path>
</svg>
</button> </div>
<div class="Header-item Header-item--full flex-column flex-md-row width-full flex-order-2 flex-md-order-none mr-0 mr-md-3 mt-3 mt-md-0 Details-content--hidden-not-important d-md-flex">
<div class="header-search flex-auto js-site-search position-relative flex-self-stretch flex-md-self-auto mb-3 mb-md-0 mr-0 mr-md-3 scoped-search site-scoped-search js-jump-to">
<div class="position-relative">
<!-- '"` --><!-- </textarea></xmp> --><form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="Repository" data-scope-id="1030602" data-scoped-search-url="/tmk/tmk_keyboard/search" data-owner-scoped-search-url="/users/tmk/search" data-unscoped-search-url="/search" data-turbo="false" action="/tmk/tmk_keyboard/search" accept-charset="UTF-8" method="get">
<label class="form-control input-sm header-search-wrapper p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center">
<input type="text" class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable" data-hotkey="s,/" name="q" data-test-selector="nav-search-input" placeholder="Search or jump to…" data-unscoped-placeholder="Search or jump to…" data-scoped-placeholder="Search or jump to…" autocapitalize="none" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-autocomplete="list" aria-controls="jump-to-results" aria-label="Search or jump to…" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" spellcheck="false" autocomplete="off">
<input type="hidden" value="lfxgtY4HtZg8L7RH4xLFq9s3hD8NneY4Xu8HrOIiYdHn1qRpViGpItepPnVryyivvu5jVqZNZkUWuzUYUslM6Q" data-csrf="true" class="js-data-jump-to-suggestions-path-csrf">
<input type="hidden" class="js-site-search-type-field" name="type">
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" aria-hidden="true" class="mr-1 header-search-key-slash"><path fill="none" stroke="#979A9C" opacity=".4" d="M3.5.5h12c1.7 0 3 1.3 3 3v13c0 1.7-1.3 3-3 3h-12c-1.7 0-3-1.3-3-3v-13c0-1.7 1.3-3 3-3z"></path><path fill="#979A9C" d="M11.8 6L8 15.1h-.9L10.8 6h1z"></path></svg>
<div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">
<ul class="d-none js-jump-to-suggestions-template-container">
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="suggestion">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
<path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg>
<svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
<path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg>
<svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
<path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
In this repository
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle"></span>
</div>
<div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle"></span>
</div>
</a>
</li>
</ul>
<ul class="d-none js-jump-to-no-results-template-container">
<li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2">
<span class="color-fg-muted">No suggested jump to results</span>
</li>
</ul>
<ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container">
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="scoped_search">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
<path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg>
<svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
<path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg>
<svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
<path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
In this repository
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle"></span>
</div>
<div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle"></span>
</div>
</a>
</li>
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-owner-scoped-search d-none" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="owner_scoped_search">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
<path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg>
<svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
<path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg>
<svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
<path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this user">
In this user
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle"></span>
</div>
<div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle"></span>
</div>
</a>
</li>
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="global_search">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg title="Repository" aria-label="Repository" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
<path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg>
<svg title="Project" aria-label="Project" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
<path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg>
<svg title="Search" aria-label="Search" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
<path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
In this repository
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle"></span>
</div>
<div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle"></span>
</div>
</a>
</li>
<li class="d-flex flex-justify-center flex-items-center p-0 f5 js-jump-to-suggestion">
<svg style="box-sizing: content-box; color: var(--color-icon-primary);" width="32" height="32" viewBox="0 0 16 16" fill="none" data-view-component="true" class="m-3 anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
</li>
</ul>
</div>
</label>
</form> </div>
</div>
<nav id="global-nav" class="d-flex flex-column flex-md-row flex-self-stretch flex-md-self-auto" aria-label="Global">
<a class="Header-link py-md-3 d-block d-md-none py-2 border-top border-md-top-0 border-white-fade" data-ga-click="Header, click, Nav menu - item:dashboard:user" aria-label="Dashboard" data-turbo="false" href="https://github.com/dashboard">Dashboard</a>
<a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade" data-hotkey="g p" data-ga-click="Header, click, Nav menu - item:pulls context:user" aria-label="Pull requests you created" data-turbo="false" data-selected-links="/pulls /pulls/assigned /pulls/mentioned /pulls" href="https://github.com/pulls">
Pull<span class="d-inline d-md-none d-lg-inline"> request</span>s
</a>
<a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade" data-hotkey="g i" data-ga-click="Header, click, Nav menu - item:issues context:user" aria-label="Issues you created" data-turbo="false" data-selected-links="/issues /issues/assigned /issues/mentioned /issues" href="https://github.com/issues">Issues</a>
<div class="d-flex position-relative">
<a class="js-selected-navigation-item Header-link flex-auto mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade" data-ga-click="Header, click, Nav menu - item:marketplace context:user" data-octo-click="marketplace_click" data-octo-dimensions="location:nav_bar" data-turbo="false" data-selected-links=" /marketplace" href="https://github.com/marketplace">Marketplace</a>
</div>
<a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade" data-ga-click="Header, click, Nav menu - item:explore" data-turbo="false" data-selected-links="/explore /trending /trending/developers /integrations /integrations/feature/code /integrations/feature/collaborate /integrations/feature/ship showcases showcases_search showcases_landing /explore" href="https://github.com/explore">Explore</a>
<a class="js-selected-navigation-item Header-link d-block d-md-none py-2 py-md-3 border-top border-md-top-0 border-white-fade" data-ga-click="Header, click, Nav menu - item:workspaces context:user" data-turbo="false" data-selected-links="/codespaces /codespaces" href="https://github.com/codespaces">Codespaces</a>
<a class="js-selected-navigation-item Header-link d-block d-md-none py-2 py-md-3 border-top border-md-top-0 border-white-fade" data-ga-click="Header, click, Nav menu - item:Sponsors" data-hydro-click="{&quot;event_type&quot;:&quot;sponsors.button_click&quot;,&quot;payload&quot;:{&quot;button&quot;:&quot;HEADER_SPONSORS_DASHBOARD&quot;,&quot;sponsorable_login&quot;:&quot;dekuNukem&quot;,&quot;originating_url&quot;:&quot;https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol&quot;,&quot;user_id&quot;:7376778}}" data-hydro-click-hmac="242c2e8ee2834bd988ad63f85ce4e55c27125e0549132d6975d80ded171a2738" data-turbo="false" data-selected-links=" /sponsors/accounts" href="https://github.com/sponsors/accounts">Sponsors</a>
<a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-3 border-top border-md-top-0 border-white-fade" data-turbo="false" href="https://github.com/settings/profile">Settings</a>
<a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-3 border-top border-md-top-0 border-white-fade" data-turbo="false" href="https://github.com/dekuNukem">
<img class="avatar avatar-user" loading="lazy" decoding="async" src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/7376778.png" alt="@dekuNukem" width="20" height="20">
dekuNukem
</a>
<!-- '"` --><!-- </textarea></xmp> --><form data-turbo="false" action="/logout" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="2nuuEGTdjRvPqPUAG2pJCYxRCMreWcfdNhJVVfGrZhyjhTHwZH70_czX1VpFIgith3ibSJLRAp3uHW0U6CPawQ">
<button type="submit" class="Header-link mr-0 mr-md-3 py-2 py-md-3 border-top border-md-top-0 border-white-fade d-md-none btn-link d-block width-full text-left" style="padding-left: 2px;" data-analytics-event="{&quot;category&quot;:&quot;Header&quot;,&quot;action&quot;:&quot;sign out&quot;,&quot;label&quot;:&quot;icon:logout&quot;}">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sign-out v-align-middle">
<path fill-rule="evenodd" d="M2 2.75C2 1.784 2.784 1 3.75 1h2.5a.75.75 0 010 1.5h-2.5a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h2.5a.75.75 0 010 1.5h-2.5A1.75 1.75 0 012 13.25V2.75zm10.44 4.5H6.75a.75.75 0 000 1.5h5.69l-1.97 1.97a.75.75 0 101.06 1.06l3.25-3.25a.75.75 0 000-1.06l-3.25-3.25a.75.75 0 10-1.06 1.06l1.97 1.97z"></path>
</svg>
Sign out
</button>
</form></nav>
</div>
<div class="Header-item Header-item--full flex-justify-center d-md-none position-relative">
<a class="Header-link " href="https://github.com/" data-hotkey="g d" aria-label="Homepage " data-turbo="false" data-analytics-event="{&quot;category&quot;:&quot;Header&quot;,&quot;action&quot;:&quot;go to dashboard&quot;,&quot;label&quot;:&quot;icon:logo&quot;}">
<svg height="32" aria-hidden="true" viewBox="0 0 16 16" version="1.1" width="32" data-view-component="true" class="octicon octicon-mark-github v-align-middle">
<path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path>
</svg>
</a>
</div>
<div class="Header-item mr-0 mr-md-3 flex-order-1 flex-md-order-none">
<notification-indicator class="js-socket-channel" data-test-selector="notifications-indicator" data-channel="eyJjIjoibm90aWZpY2F0aW9uLWNoYW5nZWQ6NzM3Njc3OCIsInQiOjE2NTE2OTU2Mjh9--69cd81a92b450de1cf935f063a2915a94032f62664cf96b20beb7af1bb3ac19a" data-catalyst="">
<a href="https://github.com/notifications" class="Header-link notification-indicator position-relative tooltipped tooltipped-sw" aria-label="You have unread notifications" data-hotkey="g n" data-ga-click="Header, go to notifications, icon:unread" data-target="notification-indicator.link">
<span class="mail-status unread " data-target="notification-indicator.modifier"></span>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bell">
<path d="M8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path><path fill-rule="evenodd" d="M8 1.5A3.5 3.5 0 004.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01l.001.006c0 .002.002.004.004.006a.017.017 0 00.006.004l.007.001h10.964l.007-.001a.016.016 0 00.006-.004.016.016 0 00.004-.006l.001-.007a.017.017 0 00-.003-.01l-1.703-2.554a1.75 1.75 0 01-.294-.97V5A3.5 3.5 0 008 1.5zM3 5a5 5 0 0110 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.518 1.518 0 0113.482 13H2.518a1.518 1.518 0 01-1.263-2.36l1.703-2.554A.25.25 0 003 7.947V5z"></path>
</svg>
</a>
</notification-indicator>
</div>
<div class="Header-item position-relative d-none d-md-flex">
<details class="details-overlay details-reset">
<summary class="Header-link" aria-label="Create new…" data-analytics-event="{&quot;category&quot;:&quot;Header&quot;,&quot;action&quot;:&quot;create new&quot;,&quot;label&quot;:&quot;icon:add&quot;}" aria-haspopup="menu" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-plus">
<path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path>
</svg> <span class="dropdown-caret"></span>
</summary>
<details-menu class="dropdown-menu dropdown-menu-sw" role="menu">
<a role="menuitem" class="dropdown-item" href="https://github.com/new" data-ga-click="Header, create new repository">
New repository
</a>
<a role="menuitem" class="dropdown-item" href="https://github.com/new/import" data-ga-click="Header, import a repository">
Import repository
</a>
<a role="menuitem" class="dropdown-item" href="https://gist.github.com/" data-ga-click="Header, create new gist">
New gist
</a>
<a role="menuitem" class="dropdown-item" href="https://github.com/organizations/new" data-ga-click="Header, create new organization">
New organization
</a>
</details-menu>
</details>
</div>
<div class="Header-item position-relative mr-0 d-none d-md-flex">
<details class="details-overlay details-reset js-feature-preview-indicator-container" data-feature-preview-indicator-src="/users/dekuNukem/feature_preview/indicator_check">
<summary class="Header-link" aria-label="View profile and more" data-analytics-event="{&quot;category&quot;:&quot;Header&quot;,&quot;action&quot;:&quot;show menu&quot;,&quot;label&quot;:&quot;icon:avatar&quot;}" aria-haspopup="menu" role="button">
<img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/7376778.png" alt="@dekuNukem" size="20" data-view-component="true" class="avatar avatar-small circle" width="20" height="20">
<span class="feature-preview-indicator js-feature-preview-indicator" style="top: 1px;"></span>
<span class="dropdown-caret"></span>
</summary>
<details-menu class="dropdown-menu dropdown-menu-sw" style="width: 180px" preload="" role="menu">
<include-fragment src="/users/7376778/menu" loading="lazy">
<p class="text-center mt-3" data-hide-on-error="">
<svg style="box-sizing: content-box; color: var(--color-icon-primary);" width="32" height="32" viewBox="0 0 16 16" fill="none" data-view-component="true" class="anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
</p>
<p class="ml-1 mb-2 mt-2 color-fg-default" data-show-on-error="">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
<path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path>
</svg>
Sorry, something went wrong.
</p>
</include-fragment>
</details-menu>
</details>
</div>
</header>
</div>
<div id="start-of-content" class="show-on-focus"></div>
<div data-pjax-replace="" id="js-flash-container">
<template class="js-flash-template">
<div class="flash flash-full {{ className }}">
<div class="px-2">
<button class="flash-close js-flash-close" type="button" aria-label="Dismiss this message">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path>
</svg>
</button>
<div>{{ message }}</div>
</div>
</div>
</template>
</div>
<include-fragment class="js-notification-shelf-include-fragment" data-base-src="https://github.com/notifications/beta/shelf"></include-fragment>
<details class="details-reset details-overlay details-overlay-dark js-command-palette-dialog" data-pjax-replace="" id="command-palette-pjax-container">
<summary aria-label="command palette trigger" role="button">
</summary>
<details-dialog class="command-palette-details-dialog d-flex flex-column flex-justify-center height-fit" aria-label="command palette" role="dialog" aria-modal="true">
<command-palette class="command-palette color-bg-default rounded-3 border color-shadow-small" data-return-to="/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol" data-user-id="7376778" data-activation-hotkey="Mod+k,Mod+Alt+k" data-command-mode-hotkey="Mod+Shift+k" data-action="
command-palette-page-stack-updated:command-palette#updateInputScope
itemsUpdated:command-palette#itemsUpdated
keydown:command-palette#onKeydown
loadingStateChanged:command-palette#loadingStateChanged
selectedItemChanged:command-palette#selectedItemChanged
pageFetchError:command-palette#pageFetchError
" data-catalyst="" data-memex-activation-hotkey="Mod+p">
<input type="hidden" name="color-mode-path" id="color-mode-path" value="/settings/appearance/color_mode" class="js-color-mode-path" autocomplete="off">
<input type="hidden" value="48D8YT3YFmHJuxuxGjB5qnKesYvDIat_lrIJzeWa56R2c49oyYdEbXrEiaY3QO-_SGtMt1D-RZzg13GQwdX_XA" data-csrf="true" class="js-color-mode-csrf">
<input type="hidden" name="tab-size-path" id="tab-size-path" value="/settings/appearance/tab_size" class="js-tab-size-path" autocomplete="off">
<input type="hidden" value="wHRoLppZg27CR8bNnlqIkZ18XFHaKQ2MQl9YQqTfuGC2xh5ldBmGt7nuaVtUi41fHA2Rkw9FVxIzbds58p8mjA" data-csrf="true" class="js-tab-size-csrf">
<command-palette-mode data-char="#" data-scope-types="[&quot;&quot;]" data-placeholder="Search issues and pull requests" data-catalyst=""></command-palette-mode>
<command-palette-mode data-char="#" data-scope-types="[&quot;owner&quot;,&quot;repository&quot;]" data-placeholder="Search issues, pull requests, discussions, and projects" data-catalyst=""></command-palette-mode>
<command-palette-mode data-char="!" data-scope-types="[&quot;owner&quot;,&quot;repository&quot;]" data-placeholder="Search projects" data-catalyst=""></command-palette-mode>
<command-palette-mode data-char="@" data-scope-types="[&quot;&quot;]" data-placeholder="Search or jump to a user, organization, or repository" data-catalyst=""></command-palette-mode>
<command-palette-mode data-char="@" data-scope-types="[&quot;owner&quot;]" data-placeholder="Search or jump to a repository" data-catalyst=""></command-palette-mode>
<command-palette-mode data-char="/" data-scope-types="[&quot;repository&quot;]" data-placeholder="Search files" data-catalyst=""></command-palette-mode>
<command-palette-mode data-char="?" data-catalyst="" data-placeholder="" data-scope-types=""></command-palette-mode>
<command-palette-mode data-char="&gt;" data-placeholder="Run a command" data-catalyst="" data-scope-types=""></command-palette-mode>
<command-palette-mode data-char="" data-scope-types="[&quot;&quot;]" data-placeholder="Search or jump to..." data-catalyst=""></command-palette-mode>
<command-palette-mode data-char="" data-scope-types="[&quot;owner&quot;]" data-placeholder="Search or jump to..." data-catalyst=""></command-palette-mode>
<command-palette-mode class="js-command-palette-default-mode" data-char="" data-placeholder="Search or jump to..." data-catalyst="" data-scope-types=""></command-palette-mode>
<command-palette-input placeholder="Search or jump to..." data-action="
command-palette-input:command-palette#onInput
command-palette-select:command-palette#onSelect
command-palette-descope:command-palette#onDescope
command-palette-cleared:command-palette#onInputClear
" data-catalyst="" class="d-flex flex-items-center flex-nowrap py-1 pl-3 pr-2 border-bottom">
<div class="js-search-icon d-flex flex-items-center mr-2" style="height: 26px">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search color-fg-muted">
<path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg>
</div>
<div class="js-spinner d-flex flex-items-center mr-2 color-fg-muted" hidden="">
<svg aria-label="Loading" class="anim-rotate" viewBox="0 0 16 16" fill="none" width="16" height="16">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
</div>
<command-palette-scope data-catalyst="" class="d-inline-flex">
<div data-target="command-palette-scope.placeholder" class="color-fg-subtle" hidden="">/&nbsp;&nbsp;<span class="text-semibold color-fg-default">...</span>&nbsp;&nbsp;/&nbsp;&nbsp;</div>
<command-palette-token data-text="tmk" data-id="MDQ6VXNlcjQyNDU5MA==" data-type="owner" data-value="tmk" data-targets="command-palette-scope.tokens" class="color-fg-default text-semibold" style="white-space:nowrap;line-height:20px;" id="" data-catalyst="">tmk<span class="color-fg-subtle text-normal">&nbsp;&nbsp;/&nbsp;&nbsp;</span></command-palette-token>
<command-palette-token data-text="tmk_keyboard" data-id="MDEwOlJlcG9zaXRvcnkxMDMwNjAy" data-type="repository" data-value="tmk_keyboard" data-targets="command-palette-scope.tokens" class="color-fg-default text-semibold" style="white-space:nowrap;line-height:20px;" id="" data-catalyst="">tmk_keyboard<span class="color-fg-subtle text-normal">&nbsp;&nbsp;/&nbsp;&nbsp;</span></command-palette-token>
</command-palette-scope>
<div class="command-palette-input-group flex-1 form-control border-0 box-shadow-none" style="z-index: 0">
<div class="command-palette-typeahead position-absolute d-flex flex-items-center Truncate">
<span class="typeahead-segment input-mirror" data-target="command-palette-input.mirror"></span>
<span class="Truncate-text" data-target="command-palette-input.typeaheadText"></span>
<span class="typeahead-segment" data-target="command-palette-input.typeaheadPlaceholder"></span>
</div>
<input class="js-overlay-input typeahead-input d-none" disabled="disabled" tabindex="-1" aria-label="Hidden input for typeahead">
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" class="js-input typeahead-input form-control border-0 box-shadow-none input-block width-full" aria-label="Command palette input" aria-haspopup="listbox" aria-expanded="false" aria-autocomplete="list" aria-controls="command-palette-page-stack" role="combobox" data-action="
input:command-palette-input#onInput
keydown:command-palette-input#onKeydown
" placeholder="Search or jump to...">
</div>
<button aria-label="clear command palette" aria-keyshortcuts="Control+Backspace" data-action="click:command-palette-input#onClear keydown:command-palette-input#onClear" id="command-palette-clear-button" type="button" data-view-component="true" class="btn-octicon js-clear command-palette-input-clear-button" aria-describedby="tooltip-1651695628788-3285"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x-circle-fill">
<path fill-rule="evenodd" d="M2.343 13.657A8 8 0 1113.657 2.343 8 8 0 012.343 13.657zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z"></path>
</svg></button>
<tool-tip for="command-palette-clear-button" data-direction="w" data-type="description" data-view-component="true" id="tooltip-1651695628788-3285" role="tooltip" hidden="">Clear</tool-tip>
</command-palette-input>
<command-palette-page-stack data-action="command-palette-page-octicons-cached:command-palette-page-stack#cacheOcticons" data-catalyst="" data-current-mode="" data-current-query-text="" data-target="command-palette.pageStack">
<command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="[&quot;&quot;,&quot;owner&quot;,&quot;repository&quot;]" data-mode="" data-value="" data-catalyst="" data-match-mode="" hidden="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type <kbd class="hx_kbd">#</kbd> to search pull requests
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="[&quot;&quot;,&quot;owner&quot;,&quot;repository&quot;]" data-mode="" data-value="" data-catalyst="" data-match-mode="" hidden="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type <kbd class="hx_kbd">#</kbd> to search issues
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="[&quot;owner&quot;,&quot;repository&quot;]" data-mode="" data-value="" data-catalyst="" data-match-mode="" hidden="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type <kbd class="hx_kbd">#</kbd> to search discussions
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="[&quot;owner&quot;,&quot;repository&quot;]" data-mode="" data-value="" data-catalyst="" data-match-mode="" hidden="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type <kbd class="hx_kbd">!</kbd> to search projects
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="[&quot;owner&quot;]" data-mode="" data-value="" data-catalyst="" data-match-mode="" hidden="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type <kbd class="hx_kbd">@</kbd> to search teams
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="[&quot;&quot;]" data-mode="" data-value="" data-catalyst="" data-match-mode="" hidden="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type <kbd class="hx_kbd">@</kbd> to search people and organizations
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="[&quot;&quot;,&quot;owner&quot;,&quot;repository&quot;]" data-mode="" data-value="" data-catalyst="" data-match-mode="" hidden="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type <kbd class="hx_kbd">&gt;</kbd> to activate command mode
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="[&quot;&quot;,&quot;owner&quot;,&quot;repository&quot;]" data-mode="" data-value="" data-catalyst="" data-match-mode="" hidden="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Go to your accessibility settings to change your keyboard shortcuts
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="[&quot;&quot;,&quot;owner&quot;,&quot;repository&quot;]" data-mode="#" data-value="" data-catalyst="" data-match-mode="" hidden="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type author:@me to search your content
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="[&quot;&quot;,&quot;owner&quot;,&quot;repository&quot;]" data-mode="#" data-value="" data-catalyst="" data-match-mode="" hidden="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type is:pr to filter to pull requests
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="[&quot;&quot;,&quot;owner&quot;,&quot;repository&quot;]" data-mode="#" data-value="" data-catalyst="" data-match-mode="" hidden="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type is:issue to filter to issues
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="[&quot;owner&quot;,&quot;repository&quot;]" data-mode="#" data-value="" data-catalyst="" data-match-mode="" hidden="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type is:project to filter to projects
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip class="color-fg-muted f6 px-3 py-1 my-2" data-scope-types="[&quot;&quot;,&quot;owner&quot;,&quot;repository&quot;]" data-mode="#" data-value="" data-catalyst="" data-match-mode="" hidden="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type is:open to filter to open content
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip class="mx-3 my-2 flash flash-error d-flex flex-items-center" data-scope-types="*" data-on-error="" data-catalyst="" data-mode="*" data-match-mode="" data-value="*" hidden="">
<div>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
<path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path>
</svg>
</div>
<div class="px-2">
Weve encountered an error and some results aren't available at this time. Type a new search or try again later.
</div>
</command-palette-tip>
<command-palette-tip class="h4 color-fg-default pl-3 pb-2 pt-3" data-on-empty="" data-scope-types="*" data-match-mode="[^?]|^$" data-catalyst="" data-mode="*" data-value="*" hidden="">
No results matched your search
</command-palette-tip>
<div hidden="">
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="arrow-right-color-fg-muted">
<svg height="16" class="octicon octicon-arrow-right color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="arrow-right-color-fg-default">
<svg height="16" class="octicon octicon-arrow-right color-fg-default" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="codespaces-color-fg-muted">
<svg height="16" class="octicon octicon-codespaces color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 1.75C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 01-1.75 1.75h-8.5A1.75 1.75 0 012 6.75v-5zm1.75-.25a.25.25 0 00-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25v-5a.25.25 0 00-.25-.25h-8.5zM0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0114.25 16H1.75A1.75 1.75 0 010 14.25v-3zM1.75 11a.25.25 0 00-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-3a.25.25 0 00-.25-.25H1.75z"></path><path fill-rule="evenodd" d="M3 12.75a.75.75 0 01.75-.75h.5a.75.75 0 010 1.5h-.5a.75.75 0 01-.75-.75zm4 0a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5h-4.5a.75.75 0 01-.75-.75z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="copy-color-fg-muted">
<svg height="16" class="octicon octicon-copy color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="dash-color-fg-muted">
<svg height="16" class="octicon octicon-dash color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 7.75A.75.75 0 012.75 7h10a.75.75 0 010 1.5h-10A.75.75 0 012 7.75z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="file-color-fg-muted">
<svg height="16" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="gear-color-fg-muted">
<svg height="16" class="octicon octicon-gear color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="lock-color-fg-muted">
<svg height="16" class="octicon octicon-lock color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 4v2h-.25A1.75 1.75 0 002 7.75v5.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-5.5A1.75 1.75 0 0012.25 6H12V4a4 4 0 10-8 0zm6.5 2V4a2.5 2.5 0 00-5 0v2h5zM12 7.5h.25a.25.25 0 01.25.25v5.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-5.5a.25.25 0 01.25-.25H12z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="moon-color-fg-muted">
<svg height="16" class="octicon octicon-moon color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="person-color-fg-muted">
<svg height="16" class="octicon octicon-person color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.5 5a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm.061 3.073a4 4 0 10-5.123 0 6.004 6.004 0 00-3.431 5.142.75.75 0 001.498.07 4.5 4.5 0 018.99 0 .75.75 0 101.498-.07 6.005 6.005 0 00-3.432-5.142z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="pencil-color-fg-muted">
<svg height="16" class="octicon octicon-pencil color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.013 1.427a1.75 1.75 0 012.474 0l1.086 1.086a1.75 1.75 0 010 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 01-.927-.928l.929-3.25a1.75 1.75 0 01.445-.758l8.61-8.61zm1.414 1.06a.25.25 0 00-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 000-.354l-1.086-1.086zM11.189 6.25L9.75 4.81l-6.286 6.287a.25.25 0 00-.064.108l-.558 1.953 1.953-.558a.249.249 0 00.108-.064l6.286-6.286z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="issue-opened-open">
<svg height="16" class="octicon octicon-issue-opened open" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path d="M8 9.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path><path fill-rule="evenodd" d="M8 0a8 8 0 100 16A8 8 0 008 0zM1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="git-pull-request-draft-color-fg-muted">
<svg height="16" class="octicon octicon-git-pull-request-draft color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.5 3.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.25 1a2.25 2.25 0 00-.75 4.372v5.256a2.251 2.251 0 101.5 0V5.372A2.25 2.25 0 003.25 1zm0 11a.75.75 0 100 1.5.75.75 0 000-1.5zm9.5 3a2.25 2.25 0 100-4.5 2.25 2.25 0 000 4.5zm0-3a.75.75 0 100 1.5.75.75 0 000-1.5z"></path><path d="M14 7.5a1.25 1.25 0 11-2.5 0 1.25 1.25 0 012.5 0zm0-4.25a1.25 1.25 0 11-2.5 0 1.25 1.25 0 012.5 0z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="search-color-fg-muted">
<svg height="16" class="octicon octicon-search color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="sun-color-fg-muted">
<svg height="16" class="octicon octicon-sun color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="sync-color-fg-muted">
<svg height="16" class="octicon octicon-sync color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="trash-color-fg-muted">
<svg height="16" class="octicon octicon-trash color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="key-color-fg-muted">
<svg height="16" class="octicon octicon-key color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.5 5.5a4 4 0 112.731 3.795.75.75 0 00-.768.18L7.44 10.5H6.25a.75.75 0 00-.75.75v1.19l-.06.06H4.25a.75.75 0 00-.75.75v1.19l-.06.06H1.75a.25.25 0 01-.25-.25v-1.69l5.024-5.023a.75.75 0 00.181-.768A3.995 3.995 0 016.5 5.5zm4-5.5a5.5 5.5 0 00-5.348 6.788L.22 11.72a.75.75 0 00-.22.53v2C0 15.216.784 16 1.75 16h2a.75.75 0 00.53-.22l.5-.5a.75.75 0 00.22-.53V14h.75a.75.75 0 00.53-.22l.5-.5a.75.75 0 00.22-.53V12h.75a.75.75 0 00.53-.22l.932-.932A5.5 5.5 0 1010.5 0zm.5 6a1 1 0 100-2 1 1 0 000 2z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="comment-discussion-color-fg-muted">
<svg height="16" class="octicon octicon-comment-discussion color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 2.75a.25.25 0 01.25-.25h8.5a.25.25 0 01.25.25v5.5a.25.25 0 01-.25.25h-3.5a.75.75 0 00-.53.22L3.5 11.44V9.25a.75.75 0 00-.75-.75h-1a.25.25 0 01-.25-.25v-5.5zM1.75 1A1.75 1.75 0 000 2.75v5.5C0 9.216.784 10 1.75 10H2v1.543a1.457 1.457 0 002.487 1.03L7.061 10h3.189A1.75 1.75 0 0012 8.25v-5.5A1.75 1.75 0 0010.25 1h-8.5zM14.5 4.75a.25.25 0 00-.25-.25h-.5a.75.75 0 110-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0114.25 12H14v1.543a1.457 1.457 0 01-2.487 1.03L9.22 12.28a.75.75 0 111.06-1.06l2.22 2.22v-2.19a.75.75 0 01.75-.75h1a.25.25 0 00.25-.25v-5.5z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="bell-color-fg-muted">
<svg height="16" class="octicon octicon-bell color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path d="M8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path><path fill-rule="evenodd" d="M8 1.5A3.5 3.5 0 004.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01l.001.006c0 .002.002.004.004.006a.017.017 0 00.006.004l.007.001h10.964l.007-.001a.016.016 0 00.006-.004.016.016 0 00.004-.006l.001-.007a.017.017 0 00-.003-.01l-1.703-2.554a1.75 1.75 0 01-.294-.97V5A3.5 3.5 0 008 1.5zM3 5a5 5 0 0110 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.518 1.518 0 0113.482 13H2.518a1.518 1.518 0 01-1.263-2.36l1.703-2.554A.25.25 0 003 7.947V5z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="bell-slash-color-fg-muted">
<svg height="16" class="octicon octicon-bell-slash color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1.5c-.997 0-1.895.416-2.534 1.086A.75.75 0 014.38 1.55 5 5 0 0113 5v2.373a.75.75 0 01-1.5 0V5A3.5 3.5 0 008 1.5zM4.182 4.31L1.19 2.143a.75.75 0 10-.88 1.214L3 5.305v2.642a.25.25 0 01-.042.139L1.255 10.64A1.518 1.518 0 002.518 13h11.108l1.184.857a.75.75 0 10.88-1.214l-1.375-.996a1.196 1.196 0 00-.013-.01L4.198 4.321a.733.733 0 00-.016-.011zm7.373 7.19L4.5 6.391v1.556c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01.015.015 0 00.005.012.017.017 0 00.006.004l.007.001h9.037zM8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="paintbrush-color-fg-muted">
<svg height="16" class="octicon octicon-paintbrush color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.134 1.535C9.722 2.562 8.16 4.057 6.889 5.312 5.8 6.387 5.041 7.401 4.575 8.294a3.745 3.745 0 00-3.227 1.054c-.43.431-.69 1.066-.86 1.657a11.982 11.982 0 00-.358 1.914A21.263 21.263 0 000 15.203v.054l.75-.007-.007.75h.054a14.404 14.404 0 00.654-.012 21.243 21.243 0 001.63-.118c.62-.07 1.3-.18 1.914-.357.592-.17 1.226-.43 1.657-.861a3.745 3.745 0 001.055-3.217c.908-.461 1.942-1.216 3.04-2.3 1.279-1.262 2.764-2.825 3.775-4.249.501-.706.923-1.428 1.125-2.096.2-.659.235-1.469-.368-2.07-.606-.607-1.42-.55-2.069-.34-.66.213-1.376.646-2.076 1.155zm-3.95 8.48a3.76 3.76 0 00-1.19-1.192 9.758 9.758 0 011.161-1.607l1.658 1.658a9.853 9.853 0 01-1.63 1.142zM.742 16l.007-.75-.75.008A.75.75 0 00.743 16zM12.016 2.749c-1.224.89-2.605 2.189-3.822 3.384l1.718 1.718c1.21-1.205 2.51-2.597 3.387-3.833.47-.662.78-1.227.912-1.662.134-.444.032-.551.009-.575h-.001V1.78c-.014-.014-.112-.113-.548.027-.432.14-.995.462-1.655.942zM1.62 13.089a19.56 19.56 0 00-.104 1.395 19.55 19.55 0 001.396-.104 10.528 10.528 0 001.668-.309c.526-.151.856-.325 1.011-.48a2.25 2.25 0 00-3.182-3.182c-.155.155-.329.485-.48 1.01a10.515 10.515 0 00-.309 1.67z"></path></svg>
</div>
<command-palette-item-group data-group-id="top" data-group-title="Top result" data-group-hint="" data-group-limits="{}" data-default-priority="0" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
Top result
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Top result results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="commands" data-group-title="Commands" data-group-hint="Type &gt; to filter" data-group-limits="{&quot;static_items_page&quot;:50}" data-default-priority="1" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
Commands
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
Type &gt; to filter
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Commands results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="global_commands" data-group-title="Global Commands" data-group-hint="Type &gt; to filter" data-group-limits="{}" data-default-priority="2" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
Global Commands
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
Type &gt; to filter
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Global Commands results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="this_page" data-group-title="This Page" data-group-hint="" data-group-limits="{}" data-default-priority="3" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
This Page
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="This Page results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="files" data-group-title="Files" data-group-hint="" data-group-limits="{}" data-default-priority="4" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
Files
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Files results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="default" data-group-title="Default" data-group-hint="" data-group-limits="{&quot;static_items_page&quot;:50}" data-default-priority="5" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Default results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="pages" data-group-title="Pages" data-group-hint="" data-group-limits="{&quot;repository&quot;:10}" data-default-priority="6" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
Pages
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Pages results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="access_policies" data-group-title="Access Policies" data-group-hint="" data-group-limits="{}" data-default-priority="7" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
Access Policies
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Access Policies results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="organizations" data-group-title="Organizations" data-group-hint="" data-group-limits="{}" data-default-priority="8" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
Organizations
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Organizations results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="repositories" data-group-title="Repositories" data-group-hint="" data-group-limits="{}" data-default-priority="9" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
Repositories
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Repositories results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="references" data-group-title="Issues, pull requests, and discussions" data-group-hint="Type # to filter" data-group-limits="{}" data-default-priority="10" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
Issues, pull requests, and discussions
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
Type # to filter
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Issues, pull requests, and discussions results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="teams" data-group-title="Teams" data-group-hint="" data-group-limits="{}" data-default-priority="11" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
Teams
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Teams results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="users" data-group-title="Users" data-group-hint="" data-group-limits="{}" data-default-priority="12" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
Users
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Users results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="projects" data-group-title="Projects" data-group-hint="" data-group-limits="{}" data-default-priority="13" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
Projects
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Projects results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="footer" data-group-title="Footer" data-group-hint="" data-group-limits="{}" data-default-priority="14" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Footer results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="modes_help" data-group-title="Modes" data-group-hint="" data-group-limits="{}" data-default-priority="15" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
Modes
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Modes results"></div>
</command-palette-item-group>
<command-palette-item-group data-group-id="filters_help" data-group-title="Use filters in issues, pull requests, discussions, and projects" data-group-hint="" data-group-limits="{}" data-default-priority="16" data-catalyst="" class="py-2 border-top" data-skip-template="" hidden="true">
<div class="d-flex flex-justify-between my-2 px-3">
<span data-target="command-palette-item-group.header" class="color-fg-muted text-bold f6 text-normal">
Use filters in issues, pull requests, discussions, and projects
</span>
<span data-target="command-palette-item-group.header" class="color-fg-muted f6 text-normal">
</span>
</div>
<div role="listbox" class="list-style-none" data-target="command-palette-item-group.list" aria-label="Use filters in issues, pull requests, discussions, and projects results"></div>
</command-palette-item-group>
</div>
<command-palette-page data-is-root="" data-catalyst="" data-page-title="" data-scope-id="" data-scope-type="" class="rounded-bottom-2 page-stack-transition-height" data-targets="command-palette-page-stack.pages" style="max-height:400px;" hidden="">
</command-palette-page>
<command-palette-page data-page-title="tmk" data-scope-id="MDQ6VXNlcjQyNDU5MA==" data-scope-type="owner" data-catalyst="" class="rounded-bottom-2 page-stack-transition-height" data-targets="command-palette-page-stack.pages" style="max-height:400px;" hidden="">
</command-palette-page>
<command-palette-page data-page-title="tmk_keyboard" data-scope-id="MDEwOlJlcG9zaXRvcnkxMDMwNjAy" data-scope-type="repository" data-catalyst="" class="rounded-bottom-2 page-stack-transition-height" data-targets="command-palette-page-stack.pages" style="max-height:400px;" hidden="">
</command-palette-page>
</command-palette-page-stack>
<server-defined-provider data-type="search-links" data-targets="command-palette.serverDefinedProviderElements" data-catalyst="" data-supported-modes="" data-fetch-debounce="" data-supported-scope-types="" data-src="" data-supports-commands=""></server-defined-provider>
<server-defined-provider data-type="help" data-targets="command-palette.serverDefinedProviderElements" data-catalyst="" data-supported-modes="" data-fetch-debounce="" data-supported-scope-types="" data-src="" data-supports-commands="">
<command-palette-help data-group="modes_help" data-prefix="#" data-scope-types="[&quot;&quot;]" data-catalyst="" hidden="">
<span data-target="command-palette-help.titleElement">Search for <strong>issues</strong> and <strong>pull requests</strong></span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd">#</kbd>
</span>
</command-palette-help>
<command-palette-help data-group="modes_help" data-prefix="#" data-scope-types="[&quot;owner&quot;,&quot;repository&quot;]" data-catalyst="" hidden="">
<span data-target="command-palette-help.titleElement">Search for <strong>issues, pull requests, discussions,</strong> and <strong>projects</strong></span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd">#</kbd>
</span>
</command-palette-help>
<command-palette-help data-group="modes_help" data-prefix="@" data-scope-types="[&quot;&quot;]" data-catalyst="" hidden="">
<span data-target="command-palette-help.titleElement">Search for <strong>organizations, repositories,</strong> and <strong>users</strong></span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd">@</kbd>
</span>
</command-palette-help>
<command-palette-help data-group="modes_help" data-prefix="!" data-scope-types="[&quot;owner&quot;,&quot;repository&quot;]" data-catalyst="" hidden="">
<span data-target="command-palette-help.titleElement">Search for <strong>projects</strong></span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd">!</kbd>
</span>
</command-palette-help>
<command-palette-help data-group="modes_help" data-prefix="/" data-scope-types="[&quot;repository&quot;]" data-catalyst="" hidden="">
<span data-target="command-palette-help.titleElement">Search for <strong>files</strong></span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd">/</kbd>
</span>
</command-palette-help>
<command-palette-help data-group="modes_help" data-prefix="&gt;" data-catalyst="" data-scope-types="" hidden="">
<span data-target="command-palette-help.titleElement">Activate <strong>command mode</strong></span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd">&gt;</kbd>
</span>
</command-palette-help>
<command-palette-help data-group="filters_help" data-prefix="# author:@me" data-catalyst="" data-scope-types="" hidden="">
<span data-target="command-palette-help.titleElement">Search your issues, pull requests, and discussions</span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd"># author:@me</kbd>
</span>
</command-palette-help>
<command-palette-help data-group="filters_help" data-prefix="# author:@me" data-catalyst="" data-scope-types="" hidden="">
<span data-target="command-palette-help.titleElement">Search your issues, pull requests, and discussions</span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd"># author:@me</kbd>
</span>
</command-palette-help>
<command-palette-help data-group="filters_help" data-prefix="# is:pr" data-catalyst="" data-scope-types="" hidden="">
<span data-target="command-palette-help.titleElement">Filter to pull requests</span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd"># is:pr</kbd>
</span>
</command-palette-help>
<command-palette-help data-group="filters_help" data-prefix="# is:issue" data-catalyst="" data-scope-types="" hidden="">
<span data-target="command-palette-help.titleElement">Filter to issues</span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd"># is:issue</kbd>
</span>
</command-palette-help>
<command-palette-help data-group="filters_help" data-prefix="# is:discussion" data-scope-types="[&quot;owner&quot;,&quot;repository&quot;]" data-catalyst="" hidden="">
<span data-target="command-palette-help.titleElement">Filter to discussions</span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd"># is:discussion</kbd>
</span>
</command-palette-help>
<command-palette-help data-group="filters_help" data-prefix="# is:project" data-scope-types="[&quot;owner&quot;,&quot;repository&quot;]" data-catalyst="" hidden="">
<span data-target="command-palette-help.titleElement">Filter to projects</span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd"># is:project</kbd>
</span>
</command-palette-help>
<command-palette-help data-group="filters_help" data-prefix="# is:open" data-catalyst="" data-scope-types="" hidden="">
<span data-target="command-palette-help.titleElement">Filter to open issues, pull requests, and discussions</span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd"># is:open</kbd>
</span>
</command-palette-help>
</server-defined-provider>
<server-defined-provider data-type="prefetched" data-fetch-debounce="0" data-src="/command_palette/commands" data-supported-modes="[&quot;&gt;&quot;]" data-supports-commands="" data-targets="command-palette.serverDefinedProviderElements" data-catalyst="" data-supported-scope-types=""></server-defined-provider>
<server-defined-provider data-type="prefetched" data-fetch-debounce="0" data-src="/command_palette/jump_to_page_navigation" data-supported-modes="[&quot;&quot;]" data-targets="command-palette.serverDefinedProviderElements" data-catalyst="" data-supported-scope-types="" data-supports-commands=""></server-defined-provider>
<server-defined-provider data-type="remote" data-fetch-debounce="200" data-src="/command_palette/issues" data-supported-modes="[&quot;#&quot;,&quot;#&quot;]" data-supported-scope-types="[&quot;owner&quot;,&quot;repository&quot;,&quot;&quot;]" data-targets="command-palette.serverDefinedProviderElements" data-catalyst="" data-supports-commands=""></server-defined-provider>
<server-defined-provider data-type="remote" data-fetch-debounce="200" data-src="/command_palette/jump_to" data-supported-modes="[&quot;@&quot;,&quot;@&quot;]" data-supported-scope-types="[&quot;&quot;,&quot;owner&quot;]" data-targets="command-palette.serverDefinedProviderElements" data-catalyst="" data-supports-commands=""></server-defined-provider>
<server-defined-provider data-type="remote" data-fetch-debounce="200" data-src="/command_palette/jump_to_members_only" data-supported-modes="[&quot;@&quot;,&quot;@&quot;,&quot;&quot;,&quot;&quot;]" data-supported-scope-types="[&quot;&quot;,&quot;owner&quot;]" data-targets="command-palette.serverDefinedProviderElements" data-catalyst="" data-supports-commands=""></server-defined-provider>
<server-defined-provider data-type="prefetched" data-fetch-debounce="0" data-src="/command_palette/jump_to_members_only_prefetched" data-supported-modes="[&quot;@&quot;,&quot;@&quot;,&quot;&quot;,&quot;&quot;]" data-supported-scope-types="[&quot;&quot;,&quot;owner&quot;]" data-targets="command-palette.serverDefinedProviderElements" data-catalyst="" data-supports-commands=""></server-defined-provider>
<server-defined-provider data-type="files" data-fetch-debounce="0" data-src="/command_palette/files" data-supported-modes="[&quot;/&quot;]" data-supported-scope-types="[&quot;repository&quot;]" data-targets="command-palette.serverDefinedProviderElements" data-catalyst="" data-supports-commands=""></server-defined-provider>
<server-defined-provider data-type="remote" data-fetch-debounce="200" data-src="/command_palette/discussions" data-supported-modes="[&quot;#&quot;]" data-supported-scope-types="[&quot;owner&quot;,&quot;repository&quot;]" data-targets="command-palette.serverDefinedProviderElements" data-catalyst="" data-supports-commands=""></server-defined-provider>
<server-defined-provider data-type="remote" data-fetch-debounce="200" data-src="/command_palette/projects" data-supported-modes="[&quot;#&quot;,&quot;!&quot;]" data-supported-scope-types="[&quot;owner&quot;,&quot;repository&quot;]" data-targets="command-palette.serverDefinedProviderElements" data-catalyst="" data-supports-commands=""></server-defined-provider>
<server-defined-provider data-type="prefetched" data-fetch-debounce="0" data-src="/command_palette/recent_issues" data-supported-modes="[&quot;#&quot;,&quot;#&quot;]" data-supported-scope-types="[&quot;owner&quot;,&quot;repository&quot;,&quot;&quot;]" data-targets="command-palette.serverDefinedProviderElements" data-catalyst="" data-supports-commands=""></server-defined-provider>
<server-defined-provider data-type="remote" data-fetch-debounce="200" data-src="/command_palette/teams" data-supported-modes="[&quot;@&quot;,&quot;&quot;]" data-supported-scope-types="[&quot;owner&quot;]" data-targets="command-palette.serverDefinedProviderElements" data-catalyst="" data-supports-commands=""></server-defined-provider>
<server-defined-provider data-type="remote" data-fetch-debounce="200" data-src="/command_palette/name_with_owner_repository" data-supported-modes="[&quot;@&quot;,&quot;@&quot;,&quot;&quot;,&quot;&quot;]" data-supported-scope-types="[&quot;&quot;,&quot;owner&quot;]" data-targets="command-palette.serverDefinedProviderElements" data-catalyst="" data-supports-commands=""></server-defined-provider>
<client-defined-provider data-catalyst="" data-provider-id="main-window-commands-provider" data-targets="command-palette.clientDefinedProviderElements"></client-defined-provider></command-palette>
</details-dialog>
</details>
<div class="position-fixed bottom-0 left-0 ml-5 mb-5 js-command-palette-toasts" style="z-index: 1000">
<div class="Toast Toast--loading" hidden="">
<span class="Toast-icon">
<svg class="Toast--spinner" viewBox="0 0 32 32" width="18" height="18" aria-hidden="true">
<path fill="#959da5" d="M16 0 A16 16 0 0 0 16 32 A16 16 0 0 0 16 0 M16 4 A12 12 0 0 1 16 28 A12 12 0 0 1 16 4"></path>
<path fill="#ffffff" d="M16 0 A16 16 0 0 1 32 16 L28 16 A12 12 0 0 0 16 4z"></path>
</svg>
</span>
<span class="Toast-content"></span>
</div>
<div class="anim-fade-in fast Toast Toast--error" hidden="">
<span class="Toast-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-stop">
<path fill-rule="evenodd" d="M4.47.22A.75.75 0 015 0h6a.75.75 0 01.53.22l4.25 4.25c.141.14.22.331.22.53v6a.75.75 0 01-.22.53l-4.25 4.25A.75.75 0 0111 16H5a.75.75 0 01-.53-.22L.22 11.53A.75.75 0 010 11V5a.75.75 0 01.22-.53L4.47.22zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5H5.31zM8 4a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 018 4zm0 8a1 1 0 100-2 1 1 0 000 2z"></path>
</svg>
</span>
<span class="Toast-content"></span>
</div>
<div class="anim-fade-in fast Toast Toast--warning" hidden="">
<span class="Toast-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
<path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path>
</svg>
</span>
<span class="Toast-content"></span>
</div>
<div class="anim-fade-in fast Toast Toast--success" hidden="">
<span class="Toast-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</span>
<span class="Toast-content"></span>
</div>
<div class="anim-fade-in fast Toast" hidden="">
<span class="Toast-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-info">
<path fill-rule="evenodd" d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z"></path>
</svg>
</span>
<span class="Toast-content"></span>
</div>
</div>
<command-palette-pjax-metadata class="js-command-palette-pjax-metadata" data-pjax-replace="" id="command-palette-pjax-metadata" data-default-scope-id="MDEwOlJlcG9zaXRvcnkxMDMwNjAy" data-default-scope-type="Repository" data-catalyst="" hidden="">
<command-palette-page data-page-title="tmk" data-scope-id="MDQ6VXNlcjQyNDU5MA==" data-scope-type="owner" data-targets="command-palette-pjax-metadata.defaultPages" data-catalyst="" class="rounded-bottom-2 page-stack-transition-height" style="max-height:400px;" hidden="">
</command-palette-page>
<command-palette-page data-page-title="tmk_keyboard" data-scope-id="MDEwOlJlcG9zaXRvcnkxMDMwNjAy" data-scope-type="repository" data-targets="command-palette-pjax-metadata.defaultPages" data-catalyst="" class="rounded-bottom-2 page-stack-transition-height" style="max-height:400px;" hidden="">
</command-palette-page>
</command-palette-pjax-metadata>
<div class="application-main " data-commit-hovercards-enabled="" data-discussion-hovercards-enabled="" data-issue-and-pr-hovercards-enabled="">
<div itemscope="" itemtype="http://schema.org/SoftwareSourceCode" class="">
<main id="js-repo-pjax-container" data-pjax-container="">
<div id="repository-container-header" class="pt-3 hide-full-screen" style="background-color: var(--color-page-header-bg);" data-pjax-replace="">
<div class="d-flex mb-3 px-3 px-md-4 px-lg-5">
<div class="flex-auto min-width-0 width-fit mr-3">
<h2 class=" d-flex flex-wrap flex-items-center wb-break-word f3 text-normal">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2">
<path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg>
<span class="author flex-self-stretch" itemprop="author">
<a class="url fn" rel="author" data-hovercard-type="user" data-hovercard-url="/users/tmk/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tmk">tmk</a>
</span>
<span class="mx-1 flex-self-stretch color-fg-muted">/</span>
<strong itemprop="name" class="mr-2 flex-self-stretch">
<a data-pjax="#repo-content-pjax-container" href="https://github.com/tmk/tmk_keyboard">tmk_keyboard</a>
</strong>
<span></span><span class="Label Label--secondary v-align-middle mr-1">Public</span>
</h2>
</div>
<ul class="pagehead-actions flex-shrink-0 d-none d-md-inline" style="padding: 2px 0;">
<li>
<notifications-list-subscription-form data-action="notifications-dialog-label-toggled:notifications-list-subscription-form#handleDialogLabelToggle" class="f5 position-relative" data-catalyst="">
<details class="details-reset details-overlay f5 position-relative" data-target="notifications-list-subscription-form.details" data-action="toggle:notifications-list-subscription-form#detailsToggled">
<summary data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;WATCH_BUTTON&quot;,&quot;repository_id&quot;:1030602,&quot;originating_url&quot;:&quot;https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol&quot;,&quot;user_id&quot;:7376778}}" data-hydro-click-hmac="62b0d4f2883dd6813c84b6c47c4aa1d543e36dcc54fcef508e27434b2aa4e54a" data-ga-click="Repository, click Watch settings, action:wiki#show" aria-label="Notification settings" data-view-component="true" class="btn-sm btn" aria-haspopup="menu" role="button"> <span data-menu-button="">
<span data-target="notifications-list-subscription-form.unwatchButtonCopy" hidden="">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-eye">
<path fill-rule="evenodd" d="M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z"></path>
</svg>
Unwatch
</span>
<span data-target="notifications-list-subscription-form.stopIgnoringButtonCopy" hidden="">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bell-slash">
<path fill-rule="evenodd" d="M8 1.5c-.997 0-1.895.416-2.534 1.086A.75.75 0 014.38 1.55 5 5 0 0113 5v2.373a.75.75 0 01-1.5 0V5A3.5 3.5 0 008 1.5zM4.182 4.31L1.19 2.143a.75.75 0 10-.88 1.214L3 5.305v2.642a.25.25 0 01-.042.139L1.255 10.64A1.518 1.518 0 002.518 13h11.108l1.184.857a.75.75 0 10.88-1.214l-1.375-.996a1.196 1.196 0 00-.013-.01L4.198 4.321a.733.733 0 00-.016-.011zm7.373 7.19L4.5 6.391v1.556c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01.015.015 0 00.005.012.017.017 0 00.006.004l.007.001h9.037zM8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path>
</svg>
Stop ignoring
</span>
<span data-target="notifications-list-subscription-form.watchButtonCopy">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-eye">
<path fill-rule="evenodd" d="M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z"></path>
</svg>
Watch
</span>
</span>
<span id="repo-notifications-counter" data-target="notifications-list-subscription-form.socialCount" data-pjax-replace="true" title="210" data-view-component="true" class="Counter">210</span>
<span class="dropdown-caret"></span>
</summary>
<details-menu class="SelectMenu " role="menu" data-target="notifications-list-subscription-form.menu">
<div class="SelectMenu-modal notifications-component-menu-modal">
<header class="SelectMenu-header">
<h3 class="SelectMenu-title">Notifications</h3>
<button class="SelectMenu-closeButton" type="button" aria-label="Close menu" data-action="click:notifications-list-subscription-form#closeMenu">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path>
</svg>
</button>
</header>
<div class="SelectMenu-list">
<form data-target="notifications-list-subscription-form.form" data-action="submit:notifications-list-subscription-form#submitForm" data-turbo="false" action="/notifications/subscribe" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="9NS8bXWUOF6BYiSaK6LNVL3YnnLe3oTDTWFHZTupJh3eoFjLEYcCbRD-59p-_OzkOrrnh8EUm5-UrbLkJXzDng" autocomplete="off">
<input type="hidden" name="repository_id" value="1030602">
<button type="submit" name="do" value="included" class="SelectMenu-item flex-items-start" role="menuitemradio" aria-checked="true" data-targets="notifications-list-subscription-form.subscriptionButtons">
<span class="f5">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</span>
<div>
<div class="f5 text-bold">
Participating and @mentions
</div>
<div class="text-small color-fg-muted text-normal pb-1">
Only receive notifications from this repository when participating or @mentioned.
</div>
</div>
</button>
<button type="submit" name="do" value="subscribed" class="SelectMenu-item flex-items-start" role="menuitemradio" aria-checked="false" data-targets="notifications-list-subscription-form.subscriptionButtons">
<span class="f5">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</span>
<div>
<div class="f5 text-bold">
All Activity
</div>
<div class="text-small color-fg-muted text-normal pb-1">
Notified of all notifications on this repository.
</div>
</div>
</button>
<button type="submit" name="do" value="ignore" class="SelectMenu-item flex-items-start" role="menuitemradio" aria-checked="false" data-targets="notifications-list-subscription-form.subscriptionButtons">
<span class="f5">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</span>
<div>
<div class="f5 text-bold">
Ignore
</div>
<div class="text-small color-fg-muted text-normal pb-1">
Never be notified.
</div>
</div>
</button>
</form>
<button class="SelectMenu-item flex-items-start pr-3" type="button" role="menuitemradio" data-target="notifications-list-subscription-form.customButton" data-action="click:notifications-list-subscription-form#openCustomDialog" aria-haspopup="true" aria-checked="false">
<span class="f5">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</span>
<div>
<div class="d-flex flex-items-start flex-justify-between">
<div class="f5 text-bold">Custom</div>
<div class="f5 pr-1">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-arrow-right">
<path fill-rule="evenodd" d="M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"></path>
</svg>
</div>
</div>
<div class="text-small color-fg-muted text-normal pb-1">
Select events you want to be notified of in addition to participating and @mentions.
</div>
</div>
</button>
<div class="px-3 py-2 d-flex color-bg-subtle flex-items-center">
<span class="f5">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-device-mobile SelectMenu-icon SelectMenu-icon--device-mobile">
<path fill-rule="evenodd" d="M3.75 0A1.75 1.75 0 002 1.75v12.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 14.25V1.75A1.75 1.75 0 0012.25 0h-8.5zM3.5 1.75a.25.25 0 01.25-.25h8.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25V1.75zM8 13a1 1 0 100-2 1 1 0 000 2z"></path>
</svg>
</span>
<span classname="text-small color-fg-muted text-normal pb-1">
Get push notifications on <a target="_blank" rel="noopener noreferrer" href="https://apps.apple.com/app/apple-store/id1477376905?ct=watch-dropdown&amp;mt=8&amp;pt=524675">iOS</a> or <a target="_blank" rel="noopener noreferrer" href="https://play.google.com/store/apps/details?id=com.github.android&amp;referrer=utm_campaign%3Dwatch-dropdown%26utm_medium%3Dweb%26utm_source%3Dgithub">Android</a>.
</span>
</div>
</div>
</div>
</details-menu>
<details-dialog class="notifications-component-dialog " data-target="notifications-list-subscription-form.customDialog" aria-label="Custom dialog" role="dialog" aria-modal="true" hidden="">
<div class="SelectMenu-modal notifications-component-dialog-modal overflow-visible">
<form data-target="notifications-list-subscription-form.customform" data-action="submit:notifications-list-subscription-form#submitCustomForm" data-turbo="false" action="/notifications/subscribe" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="Ox5N7XkWlyTaQQ2VXNyvawhHv1iMqUCGv2tKE1njtmkRaqlLHQWtF0vdztUJgo7bjyXGrZNjX9pmp7-SRzZT6g" autocomplete="off">
<input type="hidden" name="repository_id" value="1030602">
<header class="d-sm-none SelectMenu-header pb-0 border-bottom-0 px-2 px-sm-3">
<h1 class="f3 SelectMenu-title d-inline-flex">
<button class="color-bg-default border-0 px-2 py-0 m-0 Link--secondary f5" aria-label="Return to menu" type="button" data-action="click:notifications-list-subscription-form#closeCustomDialog">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-arrow-left">
<path fill-rule="evenodd" d="M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z"></path>
</svg>
</button>
Custom
</h1>
</header>
<header class="d-none d-sm-flex flex-items-start pt-1">
<button class="border-0 px-2 pt-1 m-0 Link--secondary f5" style="background-color: transparent;" aria-label="Return to menu" type="button" data-action="click:notifications-list-subscription-form#closeCustomDialog">
<svg style="position: relative; left: 2px; top: 1px" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-arrow-left">
<path fill-rule="evenodd" d="M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z"></path>
</svg>
</button>
<h1 class="pt-1 pr-4 pb-0 pl-0 f5 text-bold">
Custom
</h1>
</header>
<fieldset>
<legend>
<div class="text-small color-fg-muted pt-0 pr-3 pb-3 pl-6 pl-sm-5 border-bottom mb-3">
Select events you want to be notified of in addition to participating and @mentions.
</div>
</legend>
<div data-target="notifications-list-subscription-form.labelInputs">
</div>
<div class="form-checkbox mr-3 ml-6 ml-sm-5 mb-2 mt-0">
<label class="f5 text-normal">
<input type="checkbox" name="thread_types[]" value="Issue" data-targets="notifications-list-subscription-form.threadTypeCheckboxes" data-action="change:notifications-list-subscription-form#threadTypeCheckboxesUpdated">
Issues
</label>
</div>
<div class="form-checkbox mr-3 ml-6 ml-sm-5 mb-2 mt-0">
<label class="f5 text-normal">
<input type="checkbox" name="thread_types[]" value="PullRequest" data-targets="notifications-list-subscription-form.threadTypeCheckboxes" data-action="change:notifications-list-subscription-form#threadTypeCheckboxesUpdated">
Pull requests
</label>
</div>
<div class="form-checkbox mr-3 ml-6 ml-sm-5 mb-2 mt-0">
<label class="f5 text-normal">
<input type="checkbox" name="thread_types[]" value="Release" data-targets="notifications-list-subscription-form.threadTypeCheckboxes" data-action="change:notifications-list-subscription-form#threadTypeCheckboxesUpdated">
Releases
</label>
</div>
<div class="form-checkbox mr-3 ml-6 ml-sm-5 mb-2 mt-0">
<label class="f5 text-normal">
<input type="checkbox" name="thread_types[]" value="Discussion" data-targets="notifications-list-subscription-form.threadTypeCheckboxes" data-action="change:notifications-list-subscription-form#threadTypeCheckboxesUpdated">
Discussions
</label>
</div>
<div class="form-checkbox mr-3 ml-6 ml-sm-5 mb-2 mt-0">
<label class="f5 text-normal">
<input type="checkbox" name="thread_types[]" value="SecurityAlert" data-targets="notifications-list-subscription-form.threadTypeCheckboxes" data-action="change:notifications-list-subscription-form#threadTypeCheckboxesUpdated">
Security alerts
</label>
</div>
</fieldset>
<div class="pt-2 pb-3 px-3 d-flex flex-justify-start flex-row-reverse">
<button name="do" value="custom" data-target="notifications-list-subscription-form.customSubmit" disabled="disabled" type="submit" data-view-component="true" class="btn-primary btn-sm btn ml-2"> Apply
</button>
<button data-action="click:notifications-list-subscription-form#resetForm" data-close-dialog="" type="button" data-view-component="true" class="btn-sm btn"> Cancel
</button>
</div>
</form> </div>
</details-dialog>
<div class="notifications-component-dialog-overlay"></div>
</details>
</notifications-list-subscription-form>
</li>
<li>
<a href="https://github.com/tmk/tmk_keyboard/fork" data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;FORK_BUTTON&quot;,&quot;repository_id&quot;:1030602,&quot;originating_url&quot;:&quot;https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol&quot;,&quot;user_id&quot;:7376778}}" data-hydro-click-hmac="af8c852b108c5e263360639c76c88acb036255b7d54cb41c51ca70d7641d8eb0" data-ga-click="Repository, show fork modal, action:wiki#show; text:Fork" aria-label="Fork your own copy of tmk/tmk_keyboard" data-view-component="true" class="btn-sm btn float-left"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked mr-2">
<path fill-rule="evenodd" d="M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a.75.75 0 01-.75.75h-4.5A.75.75 0 015 6.25v-.878zm3.75 7.378a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm3-8.75a.75.75 0 100-1.5.75.75 0 000 1.5z"></path>
</svg>Fork
<span id="repo-network-counter" data-pjax-replace="true" title="1,664" data-view-component="true" class="Counter">1.7k</span>
</a>
</li>
<li>
<template class="js-unstar-confirmation-dialog-template">
<div class="Box-header">
<h2 class="Box-title">Unstar this repository?</h2>
</div>
<div class="Box-body">
<p class="mb-3">
This will remove {{ repoNameWithOwner }} from the {{ listsWithCount }} that it's been added to.
</p>
<div class="form-actions">
<form class="js-social-confirmation-form" data-turbo="false" action="{{ confirmUrl }}" accept-charset="UTF-8" method="post">
<input type="hidden" name="authenticity_token" value="{{ confirmCsrfToken }}">
<input type="hidden" name="confirm" value="true">
<button data-close-dialog="true" type="submit" data-view-component="true" class="btn-danger btn width-full"> Unstar
</button>
</form> </div>
</div>
</template>
<div data-view-component="true" class="js-toggler-container js-social-container starring-container BtnGroup d-flex">
<form class="starred js-social-form BtnGroup-parent flex-auto js-deferred-toggler-target" data-turbo="false" action="/tmk/tmk_keyboard/unstar" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="mMX7Ga21mTuYGd08-96lWMiSPu44iy_9hgQfVi12EB6FfZwUSv5B4HQiDtUzmPA_oAaCfcp-GJPkouoibeVkeA" autocomplete="off">
<input type="hidden" value="AXQNd4fb3ASpSOSg5AH2YvPKbaLSZmNdWNQWTTcY1VoczGp6YJAE30VzN0ksR6MFm17RMSCTVDM6cuM5d4uhPA" data-csrf="true" class="js-confirm-csrf-token">
<input type="hidden" name="context" value="repository">
<button data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;UNSTAR_BUTTON&quot;,&quot;repository_id&quot;:1030602,&quot;originating_url&quot;:&quot;https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol&quot;,&quot;user_id&quot;:7376778}}" data-hydro-click-hmac="a309d0344ec78d92c1551acf856bbba495622fa18b509d87ae7eaed3526aca4f" data-ga-click="Repository, click unstar button, action:wiki#show; text:Unstar" aria-label="Unstar this repository" type="submit" data-view-component="true" class="rounded-left-2 border-right-0 btn-sm btn BtnGroup-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star-fill starred-button-icon d-inline-block mr-2">
<path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25z"></path>
</svg><span data-view-component="true" class="d-inline">
Starred
</span> <span id="repo-stars-counter-unstar" aria-label="3605 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-pjax-replace="true" title="3,605" data-view-component="true" class="Counter js-social-count">3.6k</span>
</button></form>
<form class="unstarred js-social-form BtnGroup-parent flex-auto" data-turbo="false" action="/tmk/tmk_keyboard/star" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="Hc-P2OSlBa8XDPRoMuTae60u8ShrsmrO4k5YCHfrQD3zj_WNyTziYcKipk9OQT0tMvMddiir9SGJuAXD9lYPiw" autocomplete="off">
<input type="hidden" name="context" value="repository">
<button data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;STAR_BUTTON&quot;,&quot;repository_id&quot;:1030602,&quot;originating_url&quot;:&quot;https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol&quot;,&quot;user_id&quot;:7376778}}" data-hydro-click-hmac="828ae1109e070b92db5f2a6b8c796e91f7f7ef3ad9b9b85c1bcddc42e39eae8d" data-ga-click="Repository, click star button, action:wiki#show; text:Star" aria-label="Star this repository" type="submit" data-view-component="true" class="js-toggler-target rounded-left-2 btn-sm btn BtnGroup-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star d-inline-block mr-2">
<path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path>
</svg><span data-view-component="true" class="d-inline">
Star
</span> <span id="repo-stars-counter-star" aria-label="3605 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-pjax-replace="true" title="3,605" data-view-component="true" class="Counter js-social-count">3.6k</span>
</button></form>
<details id="details-user-list-1030602" data-view-component="true" class="details-reset details-overlay BtnGroup-parent js-user-list-menu d-inline-block position-relative">
<summary aria-label="Add this repository to a list" data-view-component="true" class="btn-sm btn BtnGroup-item px-2 float-none" aria-haspopup="menu" role="button"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</summary>
<details-menu class="SelectMenu right-0" src="/tmk/tmk_keyboard/lists" role="menu">
<div class="SelectMenu-modal">
<button class="SelectMenu-closeButton position-absolute right-0 m-2" type="button" aria-label="Close menu" data-toggle-for="details-5b0591">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path>
</svg>
</button>
<div id="filter-menu-5b0591" class="d-flex flex-column flex-1 overflow-hidden">
<div class="SelectMenu-list">
<include-fragment class="SelectMenu-loading" aria-label="Loading">
<svg style="box-sizing: content-box; color: var(--color-icon-primary);" width="32" height="32" viewBox="0 0 16 16" fill="none" data-view-component="true" class="anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
</include-fragment>
</div>
</div>
</div>
</details-menu>
</details>
</div>
</li>
</ul>
</div>
<div id="responsive-meta-container" data-pjax-replace="">
</div>
<nav data-pjax="#js-repo-pjax-container" aria-label="Repository" data-view-component="true" class="js-repo-nav js-sidenav-container-pjax js-responsive-underlinenav overflow-hidden UnderlineNav px-3 px-md-4 px-lg-5">
<ul data-view-component="true" class="UnderlineNav-body list-style-none">
<li data-view-component="true" class="d-inline-flex">
<a id="code-tab" href="https://github.com/tmk/tmk_keyboard" data-tab-item="i0code-tab" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages repo_deployments /tmk/tmk_keyboard" data-pjax="#repo-content-pjax-container" data-hotkey="g c" data-ga-click="Repository, Navigation click, Code tab" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code UnderlineNav-octicon d-none d-sm-inline">
<path fill-rule="evenodd" d="M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z"></path>
</svg>
<span data-content="Code">Code</span>
<span id="code-repo-tab-count" data-pjax-replace="" title="Not available" data-view-component="true" class="Counter"></span>
</a></li>
<li data-view-component="true" class="d-inline-flex">
<a id="issues-tab" href="https://github.com/tmk/tmk_keyboard/issues" data-tab-item="i1issues-tab" data-selected-links="repo_issues repo_labels repo_milestones /tmk/tmk_keyboard/issues" data-pjax="#repo-content-pjax-container" data-hotkey="g i" data-ga-click="Repository, Navigation click, Issues tab" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened UnderlineNav-octicon d-none d-sm-inline">
<path d="M8 9.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path><path fill-rule="evenodd" d="M8 0a8 8 0 100 16A8 8 0 008 0zM1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0z"></path>
</svg>
<span data-content="Issues">Issues</span>
<span id="issues-repo-tab-count" data-pjax-replace="" title="128" data-view-component="true" class="Counter">128</span>
</a></li>
<li data-view-component="true" class="d-inline-flex">
<a id="pull-requests-tab" href="https://github.com/tmk/tmk_keyboard/pulls" data-tab-item="i2pull-requests-tab" data-selected-links="repo_pulls checks /tmk/tmk_keyboard/pulls" data-pjax="#repo-content-pjax-container" data-hotkey="g p" data-ga-click="Repository, Navigation click, Pull requests tab" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request UnderlineNav-octicon d-none d-sm-inline">
<path fill-rule="evenodd" d="M7.177 3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 3.427a.25.25 0 010-.354zM3.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 2.5 0 0011 2.5zm1 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 100 1.5.75.75 0 000-1.5z"></path>
</svg>
<span data-content="Pull requests">Pull requests</span>
<span id="pull-requests-repo-tab-count" data-pjax-replace="" title="40" data-view-component="true" class="Counter">40</span>
</a></li>
<li data-view-component="true" class="d-inline-flex">
<a id="discussions-tab" href="https://github.com/tmk/tmk_keyboard/discussions" data-tab-item="i3discussions-tab" data-selected-links="repo_discussions /tmk/tmk_keyboard/discussions" data-pjax="#repo-content-pjax-container" data-hotkey="g g" data-ga-click="Repository, Navigation click, Discussions tab" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion UnderlineNav-octicon d-none d-sm-inline">
<path fill-rule="evenodd" d="M1.5 2.75a.25.25 0 01.25-.25h8.5a.25.25 0 01.25.25v5.5a.25.25 0 01-.25.25h-3.5a.75.75 0 00-.53.22L3.5 11.44V9.25a.75.75 0 00-.75-.75h-1a.25.25 0 01-.25-.25v-5.5zM1.75 1A1.75 1.75 0 000 2.75v5.5C0 9.216.784 10 1.75 10H2v1.543a1.457 1.457 0 002.487 1.03L7.061 10h3.189A1.75 1.75 0 0012 8.25v-5.5A1.75 1.75 0 0010.25 1h-8.5zM14.5 4.75a.25.25 0 00-.25-.25h-.5a.75.75 0 110-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0114.25 12H14v1.543a1.457 1.457 0 01-2.487 1.03L9.22 12.28a.75.75 0 111.06-1.06l2.22 2.22v-2.19a.75.75 0 01.75-.75h1a.25.25 0 00.25-.25v-5.5z"></path>
</svg>
<span data-content="Discussions">Discussions</span>
<span id="discussions-repo-tab-count" data-pjax-replace="" title="Not available" data-view-component="true" class="Counter"></span>
</a></li>
<li data-view-component="true" class="d-inline-flex">
<a id="actions-tab" href="https://github.com/tmk/tmk_keyboard/actions" data-tab-item="i4actions-tab" data-selected-links="repo_actions /tmk/tmk_keyboard/actions" data-pjax="#repo-content-pjax-container" data-hotkey="g a" data-analytics-event="{&quot;category&quot;:&quot;Actions&quot;,&quot;action&quot;:&quot;clicked&quot;,&quot;label&quot;:&quot;ref_cta:Actions;ref_loc:navigation_helper&quot;}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline">
<path fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z"></path>
</svg>
<span data-content="Actions">Actions</span>
<span id="actions-repo-tab-count" data-pjax-replace="" title="Not available" data-view-component="true" class="Counter"></span>
</a></li>
<li data-view-component="true" class="d-inline-flex">
<a id="projects-tab" href="https://github.com/tmk/tmk_keyboard/projects?type=beta" data-tab-item="i5projects-tab" data-selected-links="repo_projects new_repo_project repo_project /tmk/tmk_keyboard/projects?type=beta" data-pjax="#repo-content-pjax-container" data-hotkey="g b" data-ga-click="Repository, Navigation click, Projects tab" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table UnderlineNav-octicon d-none d-sm-inline">
<path fill-rule="evenodd" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v3.585a.746.746 0 010 .83v8.085A1.75 1.75 0 0114.25 16H6.309a.748.748 0 01-1.118 0H1.75A1.75 1.75 0 010 14.25V6.165a.746.746 0 010-.83V1.75zM1.5 6.5v7.75c0 .138.112.25.25.25H5v-8H1.5zM5 5H1.5V1.75a.25.25 0 01.25-.25H5V5zm1.5 1.5v8h7.75a.25.25 0 00.25-.25V6.5h-8zm8-1.5h-8V1.5h7.75a.25.25 0 01.25.25V5z"></path>
</svg>
<span data-content="Projects">Projects</span>
<span id="projects-repo-tab-count" data-pjax-replace="" title="0" data-view-component="true" class="Counter" hidden="hidden">0</span>
</a></li>
<li data-view-component="true" class="d-inline-flex">
<a id="wiki-tab" href="https://github.com/tmk/tmk_keyboard/wiki" data-tab-item="i6wiki-tab" data-selected-links="repo_wiki /tmk/tmk_keyboard/wiki" data-pjax="#repo-content-pjax-container" data-hotkey="g w" data-ga-click="Repository, Navigation click, Wikis tab" aria-current="page" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item selected" style="">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-book UnderlineNav-octicon d-none d-sm-inline">
<path fill-rule="evenodd" d="M0 1.75A.75.75 0 01.75 1h4.253c1.227 0 2.317.59 3 1.501A3.744 3.744 0 0111.006 1h4.245a.75.75 0 01.75.75v10.5a.75.75 0 01-.75.75h-4.507a2.25 2.25 0 00-1.591.659l-.622.621a.75.75 0 01-1.06 0l-.622-.621A2.25 2.25 0 005.258 13H.75a.75.75 0 01-.75-.75V1.75zm8.755 3a2.25 2.25 0 012.25-2.25H14.5v9h-3.757c-.71 0-1.4.201-1.992.572l.004-7.322zm-1.504 7.324l.004-5.073-.002-2.253A2.25 2.25 0 005.003 2.5H1.5v9h3.757a3.75 3.75 0 011.994.574z"></path>
</svg>
<span data-content="Wiki">Wiki</span>
<span id="wiki-repo-tab-count" data-pjax-replace="" title="Not available" data-view-component="true" class="Counter"></span>
</a></li>
<li data-view-component="true" class="d-inline-flex">
<a id="security-tab" href="https://github.com/tmk/tmk_keyboard/security" data-tab-item="i7security-tab" data-selected-links="security overview alerts policy token_scanning code_scanning /tmk/tmk_keyboard/security" data-pjax="#repo-content-pjax-container" data-hotkey="g s" data-ga-click="Repository, Navigation click, Security tab" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item" style="">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield UnderlineNav-octicon d-none d-sm-inline">
<path fill-rule="evenodd" d="M7.467.133a1.75 1.75 0 011.066 0l5.25 1.68A1.75 1.75 0 0115 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.7 1.7 0 01-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 011.217-1.667l5.25-1.68zm.61 1.429a.25.25 0 00-.153 0l-5.25 1.68a.25.25 0 00-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.2.2 0 00.154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.25.25 0 00-.174-.237l-5.25-1.68zM9 10.5a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.75a.75.75 0 10-1.5 0v3a.75.75 0 001.5 0v-3z"></path>
</svg>
<span data-content="Security">Security</span>
</a></li>
<li data-view-component="true" class="d-inline-flex">
<a id="insights-tab" href="https://github.com/tmk/tmk_keyboard/pulse" data-tab-item="i8insights-tab" data-selected-links="repo_graphs repo_contributors dependency_graph dependabot_updates pulse people community /tmk/tmk_keyboard/pulse" data-pjax="#repo-content-pjax-container" data-ga-click="Repository, Navigation click, Insights tab" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item" style="">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-graph UnderlineNav-octicon d-none d-sm-inline">
<path fill-rule="evenodd" d="M1.5 1.75a.75.75 0 00-1.5 0v12.5c0 .414.336.75.75.75h14.5a.75.75 0 000-1.5H1.5V1.75zm14.28 2.53a.75.75 0 00-1.06-1.06L10 7.94 7.53 5.47a.75.75 0 00-1.06 0L3.22 8.72a.75.75 0 001.06 1.06L7 7.06l2.47 2.47a.75.75 0 001.06 0l5.25-5.25z"></path>
</svg>
<span data-content="Insights">Insights</span>
<span id="insights-repo-tab-count" data-pjax-replace="" title="Not available" data-view-component="true" class="Counter"></span>
</a></li>
</ul>
<div style="visibility: hidden;" data-view-component="true" class="UnderlineNav-actions js-responsive-underlinenav-overflow position-absolute pr-3 pr-md-4 pr-lg-5 right-0"> <details data-view-component="true" class="details-overlay details-reset position-relative">
<summary role="button" data-view-component="true"> <div class="UnderlineNav-item mr-0 border-0">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-kebab-horizontal">
<path d="M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
<span class="sr-only">More</span>
</div>
</summary>
<div data-view-component="true"> <details-menu role="menu" data-view-component="true" class="dropdown-menu dropdown-menu-sw">
<ul>
<li data-menu-item="i0code-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages repo_deployments /tmk/tmk_keyboard" href="https://github.com/tmk/tmk_keyboard">
Code
</a> </li>
<li data-menu-item="i1issues-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links="repo_issues repo_labels repo_milestones /tmk/tmk_keyboard/issues" href="https://github.com/tmk/tmk_keyboard/issues">
Issues
</a> </li>
<li data-menu-item="i2pull-requests-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links="repo_pulls checks /tmk/tmk_keyboard/pulls" href="https://github.com/tmk/tmk_keyboard/pulls">
Pull requests
</a> </li>
<li data-menu-item="i3discussions-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links="repo_discussions /tmk/tmk_keyboard/discussions" href="https://github.com/tmk/tmk_keyboard/discussions">
Discussions
</a> </li>
<li data-menu-item="i4actions-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links="repo_actions /tmk/tmk_keyboard/actions" href="https://github.com/tmk/tmk_keyboard/actions">
Actions
</a> </li>
<li data-menu-item="i5projects-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links="repo_projects new_repo_project repo_project /tmk/tmk_keyboard/projects?type=beta" href="https://github.com/tmk/tmk_keyboard/projects?type=beta">
Projects
</a> </li>
<li data-menu-item="i6wiki-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item selected dropdown-item" aria-current="page" data-selected-links="repo_wiki /tmk/tmk_keyboard/wiki" href="https://github.com/tmk/tmk_keyboard/wiki">
Wiki
</a> </li>
<li data-menu-item="i7security-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links="security overview alerts policy token_scanning code_scanning /tmk/tmk_keyboard/security" href="https://github.com/tmk/tmk_keyboard/security">
Security
</a> </li>
<li data-menu-item="i8insights-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links="repo_graphs repo_contributors dependency_graph dependabot_updates pulse people community /tmk/tmk_keyboard/pulse" href="https://github.com/tmk/tmk_keyboard/pulse">
Insights
</a> </li>
</ul>
</details-menu></div>
</details></div>
</nav>
</div>
<div id="repo-content-pjax-container" class="repository-content ">
<div class="clearfix container-xl px-3 px-md-4 px-lg-5 mt-4 page" id="wiki-wrapper">
<div class="d-flex flex-column flex-md-row gh-header">
<h1 class="flex-auto min-width-0 mb-2 mb-md-0 mr-0 mr-md-2 gh-header-title">IBM PC AT Keyboard Protocol</h1>
<div class="mt-0 mt-lg-1 flex-shrink-0 gh-header-actions">
<a href="#wiki-pages-box" class="d-md-none ">Jump to bottom</a>
</div>
</div>
<div class="mt-2 mt-md-1 pb-3 gh-header-meta">
hasu@tmk edited this page <relative-time datetime="2022-03-27T02:47:37Z" class="no-wrap" title="Mar 27, 2022, 3:47 AM GMT+1">on Mar 27</relative-time>
·
<a href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol/_history" class="Link--muted">
253 revisions
</a>
</div>
<div id="wiki-content" class="mt-4">
<div data-view-component="true" class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end">
<div data-view-component="true" class="Layout-sidebar"> <div class="wiki-rightbar">
<div id="wiki-pages-box" class="mb-4 wiki-pages-box js-wiki-pages-box" role="navigation">
<div class="Box Box--condensed color-shadow-small">
<div class="Box-header js-wiki-toggle-collapse" style="cursor: pointer">
<h3 class="Box-title">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toggle-display">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-right js-wiki-sidebar-toggle-display d-none">
<path d="M6.427 4.427l3.396 3.396a.25.25 0 010 .354l-3.396 3.396A.25.25 0 016 11.396V4.604a.25.25 0 01.427-.177z"></path>
</svg>
Pages <span title="58" data-view-component="true" class="Counter Counter--primary">58</span>
</h3>
</div>
<div class=" js-wiki-sidebar-toggle-display">
<div class="filter-bar">
<input type="text" id="wiki-pages-filter" class="form-control input-sm input-block js-filterable-field" placeholder="Find a Page…" aria-label="Find a Page…" autocomplete="off">
</div>
<ul class="m-0 p-0 list-style-none" data-filterable-for="wiki-pages-filter" data-filterable-type="substring" data-pjax="">
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki">Home</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Home/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Apple-Desktop-Bus">Apple Desktop Bus</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Apple-Desktop-Bus/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Arduino">Arduino</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Arduino/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/AVR">AVR</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/AVR/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Build">Build</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Build/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Build-on-Ubuntu-On-Windows10">Build on Ubuntu On Windows10</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Build-on-Ubuntu-On-Windows10/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Build-on-VirtualBox">Build on VirtualBox</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Build-on-VirtualBox/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Capacitive-Sense">Capacitive Sense</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Capacitive-Sense/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Compatible-Microcontrollers">Compatible Microcontrollers</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Compatible-Microcontrollers/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Contribution">Contribution</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Contribution/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/dfu-programmer-for-Windows">dfu programmer for Windows</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/dfu-programmer-for-Windows/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Driver-install-on-Windows">Driver install on Windows</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Driver-install-on-Windows/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/FAQ">FAQ</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/FAQ/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/FAQ-Build">FAQ Build</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/FAQ-Build/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/FAQ-Keymap">FAQ Keymap</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/FAQ-Keymap/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/FAQ-Keymap-Editor">FAQ Keymap Editor</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/FAQ-Keymap-Editor/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/HHKB-Alt-controller">HHKB Alt controller</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/HHKB-Alt-controller/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/How-to-Start">How to Start</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/How-to-Start/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/HP-HIL">HP HIL</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/HP-HIL/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset" open="">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron js-wiki-sidebar-toc-toggle-chevron-open mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol">IBM PC AT Keyboard Protocol</a>
</div>
</summary>
<ul class="list-style-none mx-4 px-1">
<li class="my-2" style="padding-left: 0px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#technical-reference">Technical Reference</a>
</li>
<li class="my-2" style="padding-left: 0px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#protocol">Protocol</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#clock-and-data-signals">Clock and Data Signals</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#data-stream">Data Stream</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#keyboard-data-output">Keyboard Data Output</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#keyboard-data-input">Keyboard Data Input</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#i8042-keyboard-controller-on-host">i8042 Keyboard Controller on Host</a>
</li>
<li class="my-2" style="padding-left: 36px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#stop-bit-of-data-output">Stop bit of Data Output</a>
</li>
<li class="my-2" style="padding-left: 36px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ack-of-data-input">ACK of Data Input</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#waveform">Waveform</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-1394100-terminal">IBM 1394100 Terminal</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#kbdbabelorg">kbdbabel.org</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#techref">TechRef</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#zenith-z-150-beige">Zenith Z-150 beige</a>
</li>
<li class="my-2" style="padding-left: 0px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#commands-from-the-system">Commands from the System</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#setreset-status-indicatorsed">Set/Reset Status Indicators(ED)</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#select-alternate-scan-codesf0">Select Alternate Scan Codes(F0)</a>
</li>
<li class="my-2" style="padding-left: 0px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#commands-to-the-system">Commands to the System</a>
</li>
<li class="my-2" style="padding-left: 0px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#error-handling">Error handling</a>
</li>
<li class="my-2" style="padding-left: 0px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#keyboard-id">Keyboard ID</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-at-84-key">IBM AT 84-key</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#zenith-z-150-at">Zenith Z-150 AT</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ab83">AB83</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ab84">AB84</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ab85">AB85</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ncd-n-97">NCD N-97</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-122-key-model-m-1393656">IBM 122-key Model M 1393656</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ab86">AB86</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#cherry-g80-2551-126-key-terminal-keyboard">Cherry G80-2551 126-key terminal keyboard</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-1397000-keyboard">IBM 1397000 Keyboard</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#the-affirmative-1227t-keyboard">The Affirmative 1227T Keyboard</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#unicomp-ub40856">Unicomp UB40856</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#other-122-key-keyboards">Other 122-key keyboards</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ab90">AB90</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-5576-002-keyboard-2-part-number-94x1110">IBM 5576-002 KEYBOARD-2, part number 94X1110</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ab91">AB91</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-5576-003">IBM 5576-003</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#televideo-990995-dec-style">Televideo 990/995 DEC Style</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ab92">AB92</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-5576-001">IBM 5576-001</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#bfbf">BFBF</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-terminal-122-key">IBM Terminal 122-key</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#7f7f">7F7F</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-terminal-101-key">IBM Terminal 101-key</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#bfb0">BFB0</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-rt-keyboard">IBM RT Keyboard</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#bfb1">BFB1</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-rt-keyboardcode-set-3-iso-layout">IBM RT Keyboard(Code Set 3) ISO layout</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#00">00</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#keyboard-id-configuration">Keyboard ID configuration</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-1389160-122-key-terminal-keyboard">IBM 1389160 122 Key Terminal Keyboard</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-1389162">IBM 1389162</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-1390413">IBM 1390413</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-6110668---terminal-model-f">IBM 6110668 - Terminal Model F</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-1390876">IBM 1390876</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-6110344">IBM 6110344</a>
</li>
<li class="my-2" style="padding-left: 0px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#scan-codes">Scan Codes</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#scan-code-set-1">Scan Code Set 1</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-xt-83-key">IBM XT 83-key</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#scan-code-set-2">Scan Code Set 2</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#universal-128-key">Universal 128-key</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#exceptional-key-handling">Exceptional Key Handling</a>
</li>
<li class="my-2" style="padding-left: 36px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#system-request-and-print-screen">System Request and Print Screen</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-at-84-key-1">IBM AT 84-key</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-102-key">IBM 102-key</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#tandberg-tdv-5020">Tandberg TDV 5020</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#skidata2-dekcx50bk02-de-by-tipro">SKIDATA2-DE(KCX50BK02-DE) by TIPRO</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#cherry-g80-2551-in-code-set-2">Cherry G80-2551 in Code Set 2</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#siemens-s26381-k257-l120">Siemens S26381-K257-L120</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ax-keyboard">AX keyboard</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#scan-code-set-3">Scan Code Set 3</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-terminal-122-key-1">IBM Terminal 122-key</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-terminal-101-key102-key">IBM Terminal 101-key/102-key</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#g80-2551-in-code-set-3">G80-2551 in Code Set 3</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#televideo-990995-dec-style-in-code-set-3">Televideo 990/995 DEC Style in Code Set 3</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#g80-3600-and-skidata2-de-in-code-set-3">G80-3600 and SKIDATA2-DE in Code Set 3</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-5576-scan-codes-set">IBM 5576 Scan Codes Set</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-5576-keyboard-layout">IBM 5576 Keyboard Layout</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-5576-code-set-82h">IBM 5576 Code Set 82h</a>
</li>
<li class="my-2" style="padding-left: 36px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#5576-002003">5576-002/003</a>
</li>
<li class="my-2" style="padding-left: 36px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#5576-001">5576-001</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-5576-code-set-3">IBM 5576 Code Set 3</a>
</li>
<li class="my-2" style="padding-left: 36px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#5576-001-1">5576-001</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#translation-to-set-1-of-i8042">Translation to Set 1 of i8042</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#translation-to-hid-usages-of-microsoft">Translation to HID usages of Microsoft</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#special-key-combo">Special Key Combo</a>
</li>
<li class="my-2" style="padding-left: 0px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#interface">Interface</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#connector">Connector</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#at---din-5p-180-sdl">AT - DIN 5P 180°, SDL</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ps2---mini-din-6p">PS/2 - Mini-DIN 6P</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#terminal---din-5p-240-rj45-8p5c">Terminal - DIN 5P 240°, RJ45 8P5C</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#host-side-schematics">Host side schematics</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#i8042">i8042</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#keyboard-side-schematics">Keyboard side schematics</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#101-key">101-key</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#84-key">84-key</a>
</li>
<li class="my-2" style="padding-left: 0px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#atxt-auto-switch">AT/XT Auto-Switch</a>
</li>
<li class="my-2" style="padding-left: 0px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#weirdness">Weirdness</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#incompatibilities-of-zenith-z-150-at">Incompatibilities of Zenith Z-150 AT</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#tmk-ibmpc-converter">TMK IBMPC Converter</a>
</li>
<li class="my-2" style="padding-left: 36px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#send-command">Send command</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#lock-indicators">Lock Indicators</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#monoprice-ps2-converter">Monoprice PS/2 Converter</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#belkin-one">Belkin one</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#soarers-doesnt-work">Soarer's doesn't work</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#bluecube-doesnt-work">BlueCube doesn't work</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#tmk-ps2-int-doesnt-work">TMK PS/2 INT doesn't work</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#doesnt-work-even-with-ps2-port-on-pc">Doesn't work even with PS/2 port on PC</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#some-computers-work-but-others-not">Some computers work but others not</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#break-on-unicomp-ps2">Break on Unicomp PS/2</a>
</li>
<li class="my-2" style="padding-left: 0px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#resources">Resources</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#trackpoint-engineering-specifications-for-version-3e">TrackPoint Engineering Specifications for version 3E</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#mf2-keyboard">MF2 Keyboard</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#ibm-84-key-model-f-at-keyboard-rom">IBM 84-key Model F (AT) keyboard ROM</a>
</li>
<li class="my-2" style="padding-left: 12px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#linux-keyboard-input">Linux Keyboard Input</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#hid-keyboard-usage-to-linux-scan-code-mappinglinuxdrivershidhid-inputc">HID keyboard usage to Linux scan code mapping(linux/drivers/hid/hid-input.c)</a>
</li>
<li class="my-2" style="padding-left: 24px;">
<a class="Link--primary" data-analytics-event="{&quot;category&quot;:&quot;Wiki&quot;,&quot;action&quot;:&quot;toc_click&quot;,&quot;label&quot;:null}" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#scan-code-set-2-to-linux-scan-code-mappinglinuxdriversinputkeyboardatkbdc">Scan Code Set 2 to Linux scan code mapping(linux/drivers/input/keyboard/atkbd.c)</a>
</li>
</ul>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-Keyboard-Converter">IBM PC Keyboard Converter</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-Keyboard-Converter/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-Mouse">IBM PC Mouse</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-Mouse/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-XT-Keyboard-Protocol">IBM PC XT Keyboard Protocol</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-XT-Keyboard-Protocol/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/ISO-International-Keys">ISO International Keys</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/ISO-International-Keys/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Keyboard-Layout">Keyboard Layout</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Keyboard-Layout/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Keycode">Keycode</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Keycode/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Keymap">Keymap</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Keymap/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Keymap-Editor">Keymap Editor</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Keymap-Editor/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Keymap-examples">Keymap examples</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Keymap-examples/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Keymap:-Custom-Key-Action">Keymap: Custom Key Action</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Keymap:-Custom-Key-Action/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Logic-Analyzer">Logic Analyzer</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Logic-Analyzer/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/MEMO">MEMO</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/MEMO/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/NeXT">NeXT</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/NeXT/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/PC-9801-Keyboard">PC 9801 Keyboard</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/PC-9801-Keyboard/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/PJRC-Teensy-2.0">PJRC Teensy 2.0</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/PJRC-Teensy-2.0/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Pro-Micro">Pro Micro</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Pro-Micro/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Resource:-Other-Projects">Resource: Other Projects</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Resource:-Other-Projects/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Sharp-Keyboard">Sharp Keyboard</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Sharp-Keyboard/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Signal-Capture-for-debug">Signal Capture for debug</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Signal-Capture-for-debug/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Soarer's-Converter">Soarer's Converter</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Soarer's-Converter/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Sony-NEWS">Sony NEWS</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Sony-NEWS/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Sun-Keyboard-Protocol">Sun Keyboard Protocol</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Sun-Keyboard-Protocol/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Terminology">Terminology</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Terminology/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Test-for-ASCIIDOC">Test for ASCIIDOC</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Test-for-ASCIIDOC/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/TMK-Based-Projects">TMK Based Projects</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/TMK-Based-Projects/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/TMK-Core">TMK Core</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/TMK-Core/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/TMK-Magic-Command">TMK Magic Command</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/TMK-Magic-Command/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/TMK-Projects">TMK Projects</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/TMK-Projects/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Tools">Tools</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Tools/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/Troubleshooting">Troubleshooting</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/Troubleshooting/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/USB">USB</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/USB/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/USB:-CDC-ACM">USB: CDC ACM</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/USB:-CDC-ACM/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/USB:-Descriptor">USB: Descriptor</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/USB:-Descriptor/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/USB:-Enumeration">USB: Enumeration</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/USB:-Enumeration/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/USB:-HID-Report-Descriptor">USB: HID Report Descriptor</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/USB:-HID-Report-Descriptor/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/USB:-HID-Usage-Table">USB: HID Usage Table</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/USB:-HID-Usage-Table/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/USB:-NKRO">USB: NKRO</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/USB:-NKRO/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages px-2 py-2">
<details class="details-reset">
<summary>
<div class="d-flex flex-items-start">
<div class="p-2 mt-n1 mb-n1 ml-n1 btn btn-octicon js-wiki-sidebar-toc-toggle-chevron-button ">
<svg hidden="hidden" style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewBox="0 0 16 16" fill="none" data-view-component="true" class="js-wiki-sidebar-toc-spinner mr-0 v-align-text-bottom anim-rotate">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-triangle-down js-wiki-sidebar-toc-toggle-chevron mr-0">
<path d="M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z"></path>
</svg>
</div>
<a class="flex-1 py-1 text-bold" href="https://github.com/tmk/tmk_keyboard/wiki/USB:-USB_Host_Shield_2.0">USB: USB_Host_Shield_2.0</a>
</div>
</summary>
<include-fragment class="js-wiki-sidebar-toc-fragment" loading="lazy" src="https://github.com/tmk/tmk_keyboard/wiki/USB:-USB_Host_Shield_2.0/_toc">
</include-fragment>
</details>
</li>
<li class="Box-row wiki-more-pages-link">
<button type="button" data-view-component="true" class="f6 Link--muted js-wiki-more-pages-link btn-link mx-auto"> Show 43 more pages…
</button> </li>
</ul>
</div>
</div>
</div>
<h5 class="mt-0 mb-2">Clone this wiki locally</h5>
<div class="width-full input-group">
<input id="wiki-clone-url" type="text" data-autoselect="" class="form-control input-sm text-small color-fg-muted input-monospace" aria-label="Clone URL for this wiki" value="https://github.com/tmk/tmk_keyboard.wiki.git" readonly="readonly">
<span class="input-group-button">
<clipboard-copy for="wiki-clone-url" aria-label="Copy to clipboard" data-view-component="true" class="btn btn-sm zeroclipboard-button" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg style="display: none;" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check color-fg-success">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</span>
</div>
</div>
</div>
<div data-view-component="true" class="Layout-main"> <div id="wiki-body" class="gollum-markdown-content">
<div class="markdown-body">
<ul>
<li><a href="#technical-reference">Technical Reference</a></li>
<li>
<a href="#protocol">Protocol</a>
<ul>
<li><a href="#clock-and-data-signals">Clock and Data Signals</a></li>
<li>
<a href="#waveform">Waveform</a>
<ul>
<li><a href="#ibm-1394100-terminal">IBM 1394100 Terminal</a></li>
<li><a href="#kbdbabelorg">kbdbabel.org</a></li>
<li><a href="#techref">TechRef</a></li>
<li><a href="#zenith-z-150-beige">Zenith Z-150 beige</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#commands-from-the-system">Commands from the System</a></li>
<li><a href="#commands-to-the-system">Commands to the System</a></li>
<li><a href="#error-handling">Error handling</a></li>
<li><a href="#keyboard-id">Keyboard ID</a></li>
<li>
<a href="#scan-codes">Scan Codes</a>
<ul>
<li><a href="#scan-code-set-1">Scan Code Set 1</a></li>
<li><a href="#scan-code-set-2">Scan Code Set 2</a></li>
<li><a href="#scan-code-set-3">Scan Code Set 3</a></li>
<li><a href="#ibm-5576-scan-codes-set">IBM 5576 Scan Codes Set</a></li>
<li><a href="#translation-to-set-1-of-i8042">Translation to Set 1 of i8042</a></li>
<li><a href="#translation-to-hid-usages-of-microsoft">Translation to HID usages of Microsoft</a></li>
<li><a href="#special-key-combo">Special Key Combo</a></li>
</ul>
</li>
<li>
<a href="#interface">Interface</a>
<ul>
<li><a href="#connector">Connector</a></li>
<li><a href="#host-side-schematics">Host side schematics</a></li>
<li><a href="#keyboard-side-schematics">Keyboard side schematics</a></li>
</ul>
</li>
<li><a href="#atxt-auto-switch">AT/XT Auto-Switch</a></li>
<li><a href="#weirdness">Weirdness</a></li>
<li><a href="#resources">Resources</a></li>
</ul>
<h1>
<a id="user-content-technical-reference" class="anchor" href="#technical-reference" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Technical Reference</h1>
<ul>
<li><a href="http://bitsavers.org/pdf/ibm/pc/at/" rel="nofollow">http://bitsavers.org/pdf/ibm/pc/at/</a></li>
<li><a href="http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf" rel="nofollow">http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf</a></li>
</ul>
<h1>
<a id="user-content-protocol" class="anchor" href="#protocol" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Protocol</h1>
<p>Host reads/sends data on falling edges of clock.</p>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">Signaling:
____ ____
CLK H L___ H
____ ____
DAT H H L___
Idle inHibit Request-to-send
Keyboard to Host:
____ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ A _ B _____
CLK \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ________
DAT \___/___X___X___X___X___X___X___X___X___/
S 0 1 2 3 4 5 6 7 P s
____ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ A _ B
CLK \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_______ Inhibited by host
___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ________
DAT \___/___X___X___X___X___X___X___X___X___/
S 0 1 2 3 4 5 6 7 P s
Host to Keyboard:
__ _ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ A __ B ____
CLK \____/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
______ ___ ___ ___ ___ ___ ___ ___ ___ ______ ____
DAT \___/___X___X___X___X___X___X___X___X___/ \___/
H R 0 1 2 3 4 5 6 7 P s ACK
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value="Signaling:
____ ____
CLK H L___ H
____ ____
DAT H H L___
Idle inHibit Request-to-send
Keyboard to Host:
____ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ A _ B _____
CLK \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ________
DAT \___/___X___X___X___X___X___X___X___X___/
S 0 1 2 3 4 5 6 7 P s
____ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ A _ B
CLK \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_______ Inhibited by host
___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ________
DAT \___/___X___X___X___X___X___X___X___X___/
S 0 1 2 3 4 5 6 7 P s
Host to Keyboard:
__ _ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ A __ B ____
CLK \____/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
______ ___ ___ ___ ___ ___ ___ ___ ___ ______ ____
DAT \___/___X___X___X___X___X___X___X___X___/ \___/
H R 0 1 2 3 4 5 6 7 P s ACK" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
<h2>
<a id="user-content-clock-and-data-signals" class="anchor" href="#clock-and-data-signals" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Clock and Data Signals</h2>
<p>p.212 <a href="http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf" rel="nofollow">http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf</a></p>
<p>p.4-27 <a href="http://bitsavers.trailing-edge.com/pdf/ibm/pc/industrial_computer/6522361_IBM_7531_7532_Industrial_Computer_Technical_Reference_System_Unit_Jul85.pdf" rel="nofollow">http://bitsavers.trailing-edge.com/pdf/ibm/pc/industrial_computer/6522361_IBM_7531_7532_Industrial_Computer_Technical_Reference_System_Unit_Jul85.pdf</a></p>
<details><summary>Open</summary>
<p>The keyboard and system communicate over the 'clock' and
'data' lines. The source of each of these lines is an
open-collector device on the keyboard that allows either the
keyboard or the system to force a line to an inactive (low) level.
When no communication is occurring, the 'clock' line is at an
active (high) level. The state of the 'data' line is held
active(high) by the keyboard.
When the system sends data to the keyboard, it forces the 'data'
line to an inactive level and allows the 'clock' line to go to an
active level.
An inactive signal will have a value of at least 0, but not greater
than +0.7 volts. A signal at the inactive level is a logical O. An
active signal will have a value of at least +2.4, but not greater
than +5.5 volts. A signal at the active level is a logical 1.
Voltages are measured between a signal source and the dc
network ground.
The keyboard 'clock' line provides the clocking signals used to
clock serial data to and from the keyboard. <strong>If the host system
forces the 'clock' line to an inactive level, keyboard transmission
is inhibited.</strong>
When the keyboard sends data to, or receives data from the
system, it generates the 'clock' signal to time the data. The
system can prevent the keyboard from sending data by forcing the
'clock' line to an inactive level; the 'data' line may be active or
inactive during this time.
During the BAT, the keyboard allows the 'clock' and 'data' lines
to go to an active level.</p>
<h3>
<a id="user-content-data-stream" class="anchor" href="#data-stream" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Data Stream</h3>
<p>Data transmissions to and from the keyboard consist of an 11-bit
data stream (Mode 2) sent serially over the 'data' line. A logical
1 is sent at an active (high) level. The following table shows the
functions of the bits.</p>
<table role="table">
<thead>
<tr>
<th>Bit</th>
<th>Function</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Start bit (always 0)</td>
</tr>
<tr>
<td>2</td>
<td>Data bit 0 (least-significant)</td>
</tr>
<tr>
<td>3</td>
<td>Data bit 1</td>
</tr>
<tr>
<td>4</td>
<td>Data bit 2</td>
</tr>
<tr>
<td>5</td>
<td>Data bit 3</td>
</tr>
<tr>
<td>6</td>
<td>Data bit 4</td>
</tr>
<tr>
<td>7</td>
<td>Data bit 5</td>
</tr>
<tr>
<td>8</td>
<td>Data bit 6</td>
</tr>
<tr>
<td>9</td>
<td>Data bit 7 (most-significant)</td>
</tr>
<tr>
<td>10</td>
<td>Parity bit (odd parity)</td>
</tr>
<tr>
<td>11</td>
<td>Stop bit (always 1)</td>
</tr>
</tbody>
</table>
<p>The parity bit is either 1 or 0, and the 8 data bits, plus the parity
bit, always have an odd number of 1 's.</p>
<p>Note: Mode 1 is a 9-bit data stream that does not have a
parity bit or stop bit and the start bit is always 1.</p>
<h3>
<a id="user-content-keyboard-data-output" class="anchor" href="#keyboard-data-output" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Keyboard Data Output</h3>
<p>When the keyboard is ready to send data, it first checks for a
keyboard-inhibit or system request-to-send status on the 'clock'
and 'data' lines. If the 'clock' line is inactive (low), data is
stored in the keyboard buffer. If the 'clock' line is active (high)
and the 'data' line is inactive (request-to-send), data is stored in
the keyboard buffer, and the keyboard receives system data.
If the 'clock' and 'data' lines are both active, the keyboard sends
the 0 start bit, 8 data bits, the parity bit, and the stop bit. Data
will be valid before the trailing edge and beyond the leading edge
of the clock pulse. During transmission, the keyboard checks the
'clock' line for an active level at least every 60 milliseconds. If
the system lowers the 'clock' line from an active level after the
keyboard starts sending data, a condition known as line contention
occurs, and the keyboard stops sending data. If line contention
occurs before the leading edge of the 10th clock signal (parity
bit), the keyboard buffer returns the 'clock' and 'data' lines to
an active level. If contention does not occur by the 10th clock
signal, the keyboard completes the transmission. Following line
contention, the system mayor may not request the keyboard to
resend the data.
Following a transmission, the system can inhibit the keyboard
until the system processes the input, or until it requests that a
response be sent.</p>
<h3>
<a id="user-content-keyboard-data-input" class="anchor" href="#keyboard-data-input" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Keyboard Data Input</h3>
<p>When the system is ready to send data to the keyboard, it first
checks to see if the keyboard is sending data. If the keyboard is
sending, but has not reached the 10th 'clock' signal, the system
can override the keyboard output by forcing the keyboard 'clock'
line to an inactive (low) level. If the keyboard transmission is
beyond the 10th 'clock' signal, the system must receive the
transmission.
If the keyboard is not sending, or if the system elects to override
the keyboard's output, the system forces the keyboard 'clock'
line to an inactive level for more than 60 microseconds while
preparing to send data. When the system is ready to send the start
bit (the 'data' line will be inactive), it allows the 'clock' line to
go to an active (high) level.
The keyboard checks the state of the' clock' line at intervals of
no more than 10 milliseconds. If a system request-to-send (RTS)
is detected, the keyboard counts 11 bits. After the 10th bit, the
keyboard checks for an active level on the 'data' line, and if the
line is active, forces it inactive, and counts one more bit. This
action signals the system that the keyboard has received its data.
Upon receipt of this signal, the system returns to a ready state, in
which it can accept keyboard output, or goes to the inhibited state
until it is ready.</p>
<p>If the keyboard 'data' line is found at an inactive level following
the 10th bit, a framing error has occurred, and the keyboard
continues to count until the 'data' line becomes active. The
keyboard then makes the 'data' line inactive and sends a Resend.
Each system command or data transmission to the keyboard
requires a response from the keyboard before the system can send
its next output. The keyboard will respond within 20 milliseconds
unless the system prevents keyboard output. If the keyboard
response is invalid or has a parity error, the system sends the
command or data again. However, the two byte commands
require special handling. If hex F3 (Set Typematic Rate/Delay),
hex F0 (Select Alternate Scan Codes), or hex ED (Set/Reset
Mode Indicators) have been sent and acknowledged, and the
value byte has been sent but the response is invalid or has a parity
error, the system will resend both the command and the value
byte.</p>
<h3>
<a id="user-content-i8042-keyboard-controller-on-host" class="anchor" href="#i8042-keyboard-controller-on-host" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>i8042 Keyboard Controller on Host</h3>
<p>PC/AT:
<a href="http://halicery.com/8042/8042_1503033.TXT" rel="nofollow">http://halicery.com/8042/8042_1503033.TXT</a></p>
<p>PS/2:
<a href="http://www.halicery.com/Hardware/Intel%208042%20and%208048/8042_PS2_INTERN.TEXT" rel="nofollow">http://www.halicery.com/Hardware/Intel%208042%20and%208048/8042_PS2_INTERN.TEXT</a></p>
<h4>
<a id="user-content-stop-bit-of-data-output" class="anchor" href="#stop-bit-of-data-output" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Stop bit of Data Output</h4>
<p>IBM AT(and PS/2) keyboard controller checks data line only, not clock for Stop bit.(03C0:)</p>
<h4>
<a id="user-content-ack-of-data-input" class="anchor" href="#ack-of-data-input" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>ACK of Data Input</h4>
<p>IBM AT(and PS/2) keyboard controller checks data line only, not clock for ACK. (0274:) (026C:)</p>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">0268: F0 MOV A,@R0 ; send Stop bit..
0269: 62 MOV T,A
026A: 55 STRT T
026B: 26 6B JNT0 $026B ; wait for Clock Hi
026D: 44 6F JMP $026F
026F: 36 6F JT0 $026F ; wait for Clock Lo
0271: 8A 80 ORL P2,#$80 ; P27: Data Hi
0273: 65 STOP TCNT
0274: F0 MOV A,@R0 ; Wait for |_| on DATA (ACK)..
0275: 62 MOV T,A
0276: 55 STRT T
0277: 56 77 JT1 $0277 ; wait for Data Lo
0279: 44 7B JMP $027B
027B: 46 7B JNT1 $027B ; wiat for Data Hi
027D: 65 STOP TCNT
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value="0268: F0 MOV A,@R0 ; send Stop bit..
0269: 62 MOV T,A
026A: 55 STRT T
026B: 26 6B JNT0 $026B ; wait for Clock Hi
026D: 44 6F JMP $026F
026F: 36 6F JT0 $026F ; wait for Clock Lo
0271: 8A 80 ORL P2,#$80 ; P27: Data Hi
0273: 65 STOP TCNT
0274: F0 MOV A,@R0 ; Wait for |_| on DATA (ACK)..
0275: 62 MOV T,A
0276: 55 STRT T
0277: 56 77 JT1 $0277 ; wait for Data Lo
0279: 44 7B JMP $027B
027B: 46 7B JNT1 $027B ; wiat for Data Hi
027D: 65 STOP TCNT" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
</details>
<h2>
<a id="user-content-waveform" class="anchor" href="#waveform" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Waveform</h2>
<h3>
<a id="user-content-ibm-1394100-terminal" class="anchor" href="#ibm-1394100-terminal" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 1394100 Terminal</h3>
<p>0x15(Q make):</p>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f692e696d6775722e636f6d2f474976456d35372e706e.png" alt="" data-canonical-src="https://i.imgur.com/GIvEm57.png"></p>
<p>0xF0:</p>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f692e696d6775722e636f6d2f4549774d4455502e706e.png" alt="" data-canonical-src="https://i.imgur.com/EIwMDUP.png"></p>
<p><a href="https://geekhack.org/index.php?topic=62168.msg1469247#msg1469247" rel="nofollow">https://geekhack.org/index.php?topic=62168.msg1469247#msg1469247</a></p>
<h3>
<a id="user-content-kbdbabelorg" class="anchor" href="#kbdbabelorg" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>kbdbabel.org</h3>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/687474703a2f2f7777772e6b6264626162656c2e6f72672f7369676e616c.png" alt="" data-canonical-src="http://www.kbdbabel.org/signaling/kbd_signaling_ps2.png"></p>
<p><a href="http://www.kbdbabel.org/" rel="nofollow">http://www.kbdbabel.org/</a></p>
<h3>
<a id="user-content-techref" class="anchor" href="#techref" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>TechRef</h3>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f692e696d6775722e636f6d2f71584a544e6a482e706e.png" alt="" data-canonical-src="https://i.imgur.com/qXJTNjH.png">
<img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f692e696d6775722e636f6d2f456638457049792e706e.png" alt="" data-canonical-src="https://i.imgur.com/Ef8EpIy.png"></p>
<p><a href="http://www.mcamafia.de/pdf/ibm_hitrc07.pdf" rel="nofollow">http://www.mcamafia.de/pdf/ibm_hitrc07.pdf</a></p>
<h3>
<a id="user-content-zenith-z-150-beige" class="anchor" href="#zenith-z-150-beige" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Zenith Z-150 beige</h3>
<p>0xAA(BAT OK):</p>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f692e696d6775722e636f6d2f776a59564d30562e706e.png" alt="" data-canonical-src="https://i.imgur.com/wjYVM0V.png"></p>
<p>Note that <strong>stop bit is low and this is clearly violation of IBM AT protocol</strong>.</p>
<p><a href="https://geekhack.org/index.php?topic=103648.msg2895701#msg2895701" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg2895701#msg2895701</a></p>
<p>But keyboard controller 8042 of IBM 5170 doesn't check stop bit state
actually.(03C0 03C4) Its invalid stop bit won't be detected as an error
there.</p>
<p><a href="http://www.halicery.com/8042/8042_1503033.TXT" rel="nofollow">http://www.halicery.com/8042/8042_1503033.TXT</a></p>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">Receiving Data
IBM AT:
____ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ A _ B _____
CLK \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ________
DAT \___/___X___X___X___X___X___X___X___X___/
S 0 1 2 3 4 5 6 7 P s
Z-150 AT:
____ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ A _ B _____
CLK \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
DAT \___/___X___X___X___X___X___X___X___X___\___/
S 0 1 2 3 4 5 6 7 P s*
* Stop bit is Lo(0)
Sending Data
IBM AT:
__ _ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ A __ B ____
CLK \____/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
______ ___ ___ ___ ___ ___ ___ ___ ___ ______ ____
DAT \___/___X___X___X___X___X___X___X___X___/ \___/
H R 0 1 2 3 4 5 6 7 P s ACK
Z-150 AT:
__ _ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ A ________
CLK \____/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ XXXXX
______ ___ ___ ___ ___ ___ ___ ___ ___ ______ ____
DAT \___/___X___X___X___X___X___X___X___X___/ \___/
H R 0 1 2 3 4 5 6 7 P s ACK*
* No or slow clock pulse for ACK(Not confirmed).
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value="Receiving Data
IBM AT:
____ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ A _ B _____
CLK \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ________
DAT \___/___X___X___X___X___X___X___X___X___/
S 0 1 2 3 4 5 6 7 P s
Z-150 AT:
____ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ A _ B _____
CLK \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
DAT \___/___X___X___X___X___X___X___X___X___\___/
S 0 1 2 3 4 5 6 7 P s*
* Stop bit is Lo(0)
Sending Data
IBM AT:
__ _ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ A __ B ____
CLK \____/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
______ ___ ___ ___ ___ ___ ___ ___ ___ ______ ____
DAT \___/___X___X___X___X___X___X___X___X___/ \___/
H R 0 1 2 3 4 5 6 7 P s ACK
Z-150 AT:
__ _ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ A ________
CLK \____/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ XXXXX
______ ___ ___ ___ ___ ___ ___ ___ ___ ______ ____
DAT \___/___X___X___X___X___X___X___X___X___/ \___/
H R 0 1 2 3 4 5 6 7 P s ACK*
* No or slow clock pulse for ACK(Not confirmed)." tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
<p>See this for error when sending command.
<a href="https://github.com/tmk/tmk_keyboard/issues/661">https://github.com/tmk/tmk_keyboard/issues/661</a></p>
<h1>
<a id="user-content-commands-from-the-system" class="anchor" href="#commands-from-the-system" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Commands from the System</h1>
<p>The commands may be sent to the keyboard at any time. The keyboard
will respond within 20 milliseconds, except when performing the basic
assurance test (BAT), or executing a Reset
command.</p>
<p>p158(4-7), p.191(4-40) of <a href="http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf" rel="nofollow">http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf</a></p>
<table role="table">
<thead>
<tr>
<th>Command</th>
<th>Hex Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Set/Reset Status Indicators*</td>
<td>ED</td>
</tr>
<tr>
<td>Echo*</td>
<td>EE</td>
</tr>
<tr>
<td>Select Alternate Scan Codes</td>
<td>F0</td>
</tr>
<tr>
<td>Read ID</td>
<td>F2</td>
</tr>
<tr>
<td>Set Typematic Reate/Delay*</td>
<td>F3</td>
</tr>
<tr>
<td>Enable*</td>
<td>F4</td>
</tr>
<tr>
<td>Default Disable*</td>
<td>F5</td>
</tr>
<tr>
<td>Set Default*</td>
<td>F6</td>
</tr>
<tr>
<td>Set All Keys - Typematic</td>
<td>F7</td>
</tr>
<tr>
<td>Set All Keys - Make/Break</td>
<td>F8</td>
</tr>
<tr>
<td>Set All Keys - Make</td>
<td>F9</td>
</tr>
<tr>
<td>Set All Keys - Typematic/Make/Break</td>
<td>FA</td>
</tr>
<tr>
<td>Set Key Type - Typematic</td>
<td>FB</td>
</tr>
<tr>
<td>Set Key Type - Make/Break</td>
<td>FC</td>
</tr>
<tr>
<td>Set Key Type - Make</td>
<td>FD</td>
</tr>
<tr>
<td>Resend*</td>
<td>FE</td>
</tr>
<tr>
<td>Reset*</td>
<td>FF</td>
</tr>
</tbody>
</table>
<p>*: 84-key supports only these commands</p>
<h2>
<a id="user-content-setreset-status-indicatorsed" class="anchor" href="#setreset-status-indicatorsed" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Set/Reset Status Indicators(ED)</h2>
<table role="table">
<thead>
<tr>
<th>Bit</th>
<th>Indicator</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>Scroll Lock</td>
</tr>
<tr>
<td>1</td>
<td>Num Lock</td>
</tr>
<tr>
<td>2</td>
<td>Caps Lock</td>
</tr>
</tbody>
</table>
<h2>
<a id="user-content-select-alternate-scan-codesf0" class="anchor" href="#select-alternate-scan-codesf0" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Select Alternate Scan Codes(F0)</h2>
<p>Tested F0 command with some keyboards. IBM 122-key doesn't support F0 commad at all.
Cherry supports Set 2 and 3 while SKIDATA supports all 3 sets.</p>
<table role="table">
<thead>
<tr>
<th>keyboard</th>
<th>F0 00</th>
<th>F0 01</th>
<th>F0 02</th>
<th>F0 03</th>
</tr>
</thead>
<tbody>
<tr>
<td>IBM 122-key 6110345</td>
<td>FE FE</td>
<td>FE FE</td>
<td>FE FE</td>
<td>FE FE</td>
</tr>
<tr>
<td>Cherry G80-3600</td>
<td>FA FA 02</td>
<td>FA FE</td>
<td>FA FA</td>
<td>FA FA</td>
</tr>
<tr>
<td>SKIDATA2-DE</td>
<td>FA FA 02</td>
<td>FA FA</td>
<td>FA FA</td>
<td>FA FA</td>
</tr>
<tr>
<td>Cherry G80-2551</td>
<td>?</td>
<td>?</td>
<td>?</td>
<td>FA FA</td>
</tr>
</tbody>
</table>
<p>It seems SKIDATA stores 'Code Set' setting in nonvoliatile memory
beyond power cycles until 'FF' reset command is received. Reset command
restores to default Code Set 2.</p>
<p><a href="https://geekhack.org/index.php?topic=103648.msg2894921#msg2894921" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg2894921#msg2894921</a></p>
<h1>
<a id="user-content-commands-to-the-system" class="anchor" href="#commands-to-the-system" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Commands to the System</h1>
<p>p.163(4-12) of <a href="http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf" rel="nofollow">http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf</a></p>
<table role="table">
<thead>
<tr>
<th>Command</th>
<th>Hex Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>ACK</td>
<td>FA</td>
</tr>
<tr>
<td>BAT Completion</td>
<td>AA</td>
</tr>
<tr>
<td>Break Code Prefix</td>
<td>F0</td>
</tr>
<tr>
<td>BAT Failure</td>
<td>FC</td>
</tr>
<tr>
<td>Echo Response</td>
<td>EE</td>
</tr>
<tr>
<td>Resend</td>
<td>FE</td>
</tr>
<tr>
<td>Keyboard ID</td>
<td>83AB</td>
</tr>
<tr>
<td>Key Detection Error</td>
<td>00(scan code set 2 and 3) FF(sacn code set 1)</td>
</tr>
<tr>
<td>Overrun</td>
<td>00(scan code set 2 and 3) FF(scan code set 1)</td>
</tr>
</tbody>
</table>
<h1>
<a id="user-content-error-handling" class="anchor" href="#error-handling" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Error handling</h1>
<p>When keyboard response to command and data from host has parity or other error, Resend(FE) should net be sent.</p>
<blockquote>
<p>If the keyboard response is invalid or has a parity error, the system sends the command or data again.</p>
</blockquote>
<p>When host receives data with prirty error, host sends Resend(FE) command.</p>
<p><a href="http://halicery.com/8042/8042_1503033.TXT" rel="nofollow">http://halicery.com/8042/8042_1503033.TXT</a> 0160:</p>
<h1>
<a id="user-content-keyboard-id" class="anchor" href="#keyboard-id" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Keyboard ID</h1>
<p>AT keyboard can accept 'read keyboard ID' F2 command and replies with ACK FA and 2-byte ID then.
XT keyboard doesn't support the command at all.</p>
<p><a href="https://www.win.tue.nl/~aeb/linux/kbd/scancodes-10.html#keyboardid" rel="nofollow">https://www.win.tue.nl/~aeb/linux/kbd/scancodes-10.html#keyboardid</a></p>
<h2>
<a id="user-content-ibm-at-84-key" class="anchor" href="#ibm-at-84-key" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM AT 84-key</h2>
<blockquote>
<p>When sent an identify command (0xF2), the keyboard responds only with 0xFA (acknowledge).
<a href="https://www.seasip.info/VintagePC/ibm_6450225.html" rel="nofollow">https://www.seasip.info/VintagePC/ibm_6450225.html</a></p>
</blockquote>
<p>But it doesn't response with ID atfter receiving the command.</p>
<h2>
<a id="user-content-zenith-z-150-at" class="anchor" href="#zenith-z-150-at" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Zenith Z-150 AT</h2>
<p>It just ignore the command and reply nothing. The keyboard doesn't even reply with 0xFA.</p>
<p><a href="https://deskthority.net/viewtopic.php?p=495196#p495196" rel="nofollow">https://deskthority.net/viewtopic.php?p=495196#p495196</a></p>
<h2>
<a id="user-content-ab83" class="anchor" href="#ab83" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>AB83</h2>
<p>Most of PS/2 Keyboards has this ID.</p>
<ul>
<li>Cherry G80-3600</li>
<li>Cherry G84-4100</li>
<li>Topre Realforce 101 ML0100</li>
<li>IBM 101 US English</li>
<li>IBM 5576-A01</li>
<li>OADG 104/109</li>
<li>AX Keyboard</li>
<li>Siemens S26381-K257-L120</li>
<li>
<a href="#tandberg-tdv-5020">Tandberg TDV 5020</a> (with 0x80-prefix codes)</li>
</ul>
<h2>
<a id="user-content-ab84" class="anchor" href="#ab84" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>AB84</h2>
<p>Many short keyboards, like IBM ThinkPads, and Spacesaver keyboards(Tenkeyless)</p>
<p><a href="https://ia801604.us.archive.org/21/items/OADG1991/%EF%BC%AF%EF%BC%A1%EF%BC%A4%EF%BC%A7%E3%83%86%E3%82%AF%E3%83%8B%E3%82%AB%E3%83%AB%E3%83%BB%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%20%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E7%B7%A8%201991%E5%B9%B4.pdf" rel="nofollow">OADG 4-14</a></p>
<h2>
<a id="user-content-ab85" class="anchor" href="#ab85" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>AB85</h2>
<h3>
<a id="user-content-ncd-n-97" class="anchor" href="#ncd-n-97" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>NCD N-97</h3>
<p>It speaks in Code Set 3.
<a href="https://www.win.tue.nl/~aeb/linux/kbd/scancodes-7.html#NCD97" rel="nofollow">https://www.win.tue.nl/~aeb/linux/kbd/scancodes-7.html#NCD97</a></p>
<h3>
<a id="user-content-ibm-122-key-model-m-1393656" class="anchor" href="#ibm-122-key-model-m-1393656" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 122-key Model M 1393656</h3>
<p><a href="https://deskthority.net/viewtopic.php?p=308583#p308583" rel="nofollow">https://deskthority.net/viewtopic.php?p=308583#p308583</a></p>
<h2>
<a id="user-content-ab86" class="anchor" href="#ab86" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>AB86</h2>
<h3>
<a id="user-content-cherry-g80-2551-126-key-terminal-keyboard" class="anchor" href="#cherry-g80-2551-126-key-terminal-keyboard" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Cherry G80-2551 126-key terminal keyboard</h3>
<p>It sends scan codes in Set 2 by default and can be switched to Set 3.</p>
<p><a href="https://deskthority.net/wiki/Cherry_G80-2551" rel="nofollow">https://deskthority.net/wiki/Cherry_G80-2551</a></p>
<p><a href="https://geekhack.org/index.php?topic=103648.msg2893404#msg2893404" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg2893404#msg2893404</a></p>
<h3>
<a id="user-content-ibm-1397000-keyboard" class="anchor" href="#ibm-1397000-keyboard" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 1397000 Keyboard</h3>
<p><a href="http://www.seasip.info/VintagePC/ibm_1397000.html" rel="nofollow">http://www.seasip.info/VintagePC/ibm_1397000.html</a></p>
<h3>
<a id="user-content-the-affirmative-1227t-keyboard" class="anchor" href="#the-affirmative-1227t-keyboard" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>The Affirmative 1227T Keyboard</h3>
<p><a href="http://www.seasip.info/Misc/1227T.html" rel="nofollow">http://www.seasip.info/Misc/1227T.html</a></p>
<h3>
<a id="user-content-unicomp-ub40856" class="anchor" href="#unicomp-ub40856" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Unicomp UB40856</h3>
<p><a href="https://geekhack.org/index.php?topic=17458.msg648235#msg648235" rel="nofollow">https://geekhack.org/index.php?topic=17458.msg648235#msg648235</a></p>
<h3>
<a id="user-content-other-122-key-keyboards" class="anchor" href="#other-122-key-keyboards" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Other 122-key keyboards</h3>
<blockquote>
<p>Several 122-key keyboards are reported to send ab 86. Here translated
and untranslated values coincide. (Reports mention "122-Key Enhanced
Keyboard", "standard 122-key keyboard", "122 Key Mainframe Interactive
(MFI) Keyboard", "122-Key Host Connected Keyboard".)</p>
</blockquote>
<p><a href="https://www.win.tue.nl/~aeb/linux/kbd/scancodes-10.html#keyboardid" rel="nofollow">https://www.win.tue.nl/~aeb/linux/kbd/scancodes-10.html#keyboardid</a></p>
<h2>
<a id="user-content-ab90" class="anchor" href="#ab90" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>AB90</h2>
<h3>
<a id="user-content-ibm-5576-002-keyboard-2-part-number-94x1110" class="anchor" href="#ibm-5576-002-keyboard-2-part-number-94x1110" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 5576-002 KEYBOARD-2, part number 94X1110</h3>
<p>This Japanese keyboard can be switched to Code Set 3.
<a href="https://www.win.tue.nl/~aeb/linux/kbd/scancodes-8.html#bradford" rel="nofollow">https://www.win.tue.nl/~aeb/linux/kbd/scancodes-8.html#bradford</a></p>
<p><a href="http://radioc.web.fc2.com/column/ps55/ps55kbd_scancode.htm" rel="nofollow">http://radioc.web.fc2.com/column/ps55/ps55kbd_scancode.htm</a></p>
<h2>
<a id="user-content-ab91" class="anchor" href="#ab91" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>AB91</h2>
<h3>
<a id="user-content-ibm-5576-003" class="anchor" href="#ibm-5576-003" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 5576-003</h3>
<p><a href="http://radioc.web.fc2.com/column/ps55/ps55kbd_scancode.htm" rel="nofollow">http://radioc.web.fc2.com/column/ps55/ps55kbd_scancode.htm</a></p>
<h3>
<a id="user-content-televideo-990995-dec-style" class="anchor" href="#televideo-990995-dec-style" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Televideo 990/995 DEC Style</h3>
<p>The keyboard has PS/2 connector and it supports 1, 2 and 3 code set.
It starts up with Code Set 1, but some keys don't seem to be usable with Code Set 1 and 2.</p>
<ul>
<li><a href="https://github.com/tmk/tmk_keyboard/pull/711">https://github.com/tmk/tmk_keyboard/pull/711</a></li>
<li><a href="http://www.bitsavers.org/pdf/televideo/990/" rel="nofollow">http://www.bitsavers.org/pdf/televideo/990/</a></li>
<li>Pics: <a href="https://i.imgur.com/H0fMvRu.png" rel="nofollow">https://i.imgur.com/H0fMvRu.png</a> <a href="https://i.redd.it/7kba8rjnuoo21.jpg" rel="nofollow">https://i.redd.it/7kba8rjnuoo21.jpg</a> <a href="https://i.imgur.com/TFFTYHv.png" rel="nofollow">https://i.imgur.com/TFFTYHv.png</a>
</li>
</ul>
<p>Keyboard ID of other styles(AT and ASCII) is unknwon.
ASCII style seems to use AT signal with Code Set 1: <a href="https://deskthority.net/viewtopic.php?p=427957#p427957" rel="nofollow">https://deskthority.net/viewtopic.php?p=427957#p427957</a></p>
<h2>
<a id="user-content-ab92" class="anchor" href="#ab92" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>AB92</h2>
<h3>
<a id="user-content-ibm-5576-001" class="anchor" href="#ibm-5576-001" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 5576-001</h3>
<p><del>Code Set 2 is only supported.</del> Code Set 2 by default and Code Set 3 and 82h also are supported at least.</p>
<p><a href="https://github.com/tmk/tmk_keyboard/issues/685#issuecomment-850741943">https://github.com/tmk/tmk_keyboard/issues/685#issuecomment-850741943</a></p>
<p><a href="http://radioc.web.fc2.com/column/ps55/ps55kbd_scancode.htm" rel="nofollow">http://radioc.web.fc2.com/column/ps55/ps55kbd_scancode.htm</a></p>
<h2>
<a id="user-content-bfbf" class="anchor" href="#bfbf" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>BFBF</h2>
<h3>
<a id="user-content-ibm-terminal-122-key" class="anchor" href="#ibm-terminal-122-key" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM Terminal 122-key</h3>
<p>Code Set 3. ID can be configured with DIP swithes or pins.</p>
<p><a href="http://www.seasip.info/VintagePC/ibm_1390876.html" rel="nofollow">http://www.seasip.info/VintagePC/ibm_1390876.html</a></p>
<p><a href="http://www.seasip.info/VintagePC/ibm_6110344.html" rel="nofollow">http://www.seasip.info/VintagePC/ibm_6110344.html</a></p>
<h2>
<a id="user-content-7f7f" class="anchor" href="#7f7f" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>7F7F</h2>
<h3>
<a id="user-content-ibm-terminal-101-key" class="anchor" href="#ibm-terminal-101-key" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM Terminal 101-key</h3>
<p>Code Set 3: <a href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-Keyboard-Converter#ibm-terminal-101-key102-key-and-ibm-rt">https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-Keyboard-Converter#ibm-terminal-101-key102-key-and-ibm-rt</a></p>
<p>1394204: <a href="https://github.com/tmk/tmk_keyboard/issues/687">https://github.com/tmk/tmk_keyboard/issues/687</a></p>
<p>It doesn't seem to be configurable of keyboard ID.</p>
<p><a href="https://user-images.githubusercontent.com/7271421/120395902-0f766600-c336-11eb-9fc2-607a3a43a558.jpeg" rel="nofollow">https://user-images.githubusercontent.com/7271421/120395902-0f766600-c336-11eb-9fc2-607a3a43a558.jpeg</a></p>
<p>It doesn't support F0 command and always uses Code Set 3.</p>
<p><a href="https://github.com/tmk/tmk_keyboard/issues/687#issuecomment-852610160">https://github.com/tmk/tmk_keyboard/issues/687#issuecomment-852610160</a></p>
<h2>
<a id="user-content-bfb0" class="anchor" href="#bfb0" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>BFB0</h2>
<h3>
<a id="user-content-ibm-rt-keyboard" class="anchor" href="#ibm-rt-keyboard" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM RT Keyboard</h3>
<p>Code Set 3: <a href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-Keyboard-Converter#ibm-terminal-101-key102-key-and-ibm-rt">https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-Keyboard-Converter#ibm-terminal-101-key102-key-and-ibm-rt</a></p>
<p><a href="https://deskthority.net/viewtopic.php?p=105422#p105422" rel="nofollow">https://deskthority.net/viewtopic.php?p=105422#p105422</a></p>
<p>It takes long to response commands and its num lock and caps lock LEDs are swapped.</p>
<p><a href="https://deskthority.net/viewtopic.php?p=105161#p105161" rel="nofollow">https://deskthority.net/viewtopic.php?p=105161#p105161</a></p>
<p>IBM RT PC Hardwahre Technical Reference:</p>
<p><a href="http://bitsavers.org/pdf/ibm/pc/rt/75X0232_RT_PC_Technical_Reference_Volume_1_Jun87.pdf" rel="nofollow">http://bitsavers.org/pdf/ibm/pc/rt/75X0232_RT_PC_Technical_Reference_Volume_1_Jun87.pdf</a></p>
<p><a href="https://archive.org/details/bitsavers_ibmpcrt75XferenceVolume1Jun87_19098532/page/n481/mode/1up" rel="nofollow">https://archive.org/details/bitsavers_ibmpcrt75XferenceVolume1Jun87_19098532/page/n481/mode/1up</a></p>
<p>Command F2 and ED(p.9-5):</p>
<table role="table">
<thead>
<tr>
<th>Command</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>F2</td>
<td>Read ID: Respond with X'BFB0'.</td>
</tr>
<tr>
<td>ED</td>
<td>Set LED indicator: The LED indicators are set according to bits 5, 6, 7 of the subsequent byte.</td>
</tr>
</tbody>
</table>
<table role="table">
<thead>
<tr>
<th>Bit</th>
<th>LED</th>
</tr>
</thead>
<tbody>
<tr>
<td>5</td>
<td>Num lock</td>
</tr>
<tr>
<td>6</td>
<td>Caps lock</td>
</tr>
<tr>
<td>7</td>
<td>Scroll lock</td>
</tr>
</tbody>
</table>
<h2>
<a id="user-content-bfb1" class="anchor" href="#bfb1" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>BFB1</h2>
<h3>
<a id="user-content-ibm-rt-keyboardcode-set-3-iso-layout" class="anchor" href="#ibm-rt-keyboardcode-set-3-iso-layout" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM RT Keyboard(Code Set 3) ISO layout</h3>
<p><a href="https://github.com/tmk/tmk_keyboard/issues/723#issuecomment-1079764826">https://github.com/tmk/tmk_keyboard/issues/723#issuecomment-1079764826</a></p>
<p><a href="https://user-images.githubusercontent.com/48164352/160263774-c41bd622-53fb-4b70-8d9c-29e0e7bc5b81.jpeg" rel="nofollow">https://user-images.githubusercontent.com/48164352/160263774-c41bd622-53fb-4b70-8d9c-29e0e7bc5b81.jpeg</a></p>
<h2>
<a id="user-content-00" class="anchor" href="#00" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>00</h2>
<p>All PS/2 Mouses send AA 00 at startup and responds with <em>one-byte</em> <code>00</code> to F2 command.</p>
<p>Microsoft IntelliMouse and ExplorerMouse respods with id <code>03</code> and <code>04</code> respectively after proprietary intialization command sequence.</p>
<h2>
<a id="user-content-keyboard-id-configuration" class="anchor" href="#keyboard-id-configuration" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Keyboard ID configuration</h2>
<h3>
<a id="user-content-ibm-1389160-122-key-terminal-keyboard" class="anchor" href="#ibm-1389160-122-key-terminal-keyboard" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 1389160 122 Key Terminal Keyboard</h3>
<p>DIP Switch: 0100 0000(~0xBF) <a href="https://cdn11.bigcommerce.com/s-a1x7hg2jgk/images/stencil/1280x1280/products/32942/174351/ibm-1389160-122-key-terminal-keyboard-5-pin-din-model-m-25.20__11563.1490253022.jpg?c=2?imbypass=on" rel="nofollow">pic</a></p>
<p><a href="https://www.recycledgoods.com/ibm-1389160-122-key-terminal-keyboard-5-pin-din-model-m/" rel="nofollow">https://www.recycledgoods.com/ibm-1389160-122-key-terminal-keyboard-5-pin-din-model-m/</a></p>
<h2>
<a id="user-content-ibm-1389162" class="anchor" href="#ibm-1389162" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 1389162</h2>
<p><a href="https://imgur.com/a/tIonH" rel="nofollow">https://imgur.com/a/tIonH</a></p>
<p>DIP Switch: 0111 1110(~0x81?): <a href="https://i.imgur.com/hRaltjN.jpg" rel="nofollow">https://i.imgur.com/hRaltjN.jpg</a></p>
<p>How DIP Switch wired to controller: <a href="https://i.imgur.com/15r5gav.jpg?1" rel="nofollow">https://i.imgur.com/15r5gav.jpg?1</a></p>
<h2>
<a id="user-content-ibm-1390413" class="anchor" href="#ibm-1390413" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 1390413</h2>
<p><a href="https://deskthority.net/viewtopic.php?f=62&amp;t=14734" rel="nofollow">https://deskthority.net/viewtopic.php?f=62&amp;t=14734</a></p>
<p>DIP Switch: 1001 0000(~0x6F?): <a href="https://deskthority.net/download/file.php?id=33588" rel="nofollow">https://deskthority.net/download/file.php?id=33588</a></p>
<h2>
<a id="user-content-ibm-6110668---terminal-model-f" class="anchor" href="#ibm-6110668---terminal-model-f" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 6110668 - Terminal Model F</h2>
<p>DIP Switch: 0000 0000</p>
<p><a href="https://www.flickr.com/photos/triplehaata/sets/72157662296508556/" rel="nofollow">https://www.flickr.com/photos/triplehaata/sets/72157662296508556/</a></p>
<h2>
<a id="user-content-ibm-1390876" class="anchor" href="#ibm-1390876" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 1390876</h2>
<blockquote>
<p>When sent an identify command (0xF2), the keyboard returns the byte
sequence 0xBF 0xBF. However, this can be changed. On the keyboard PCB is
a 12-pin header, marked as 6 pairs of pins (B2-B7). These correspond to
bits 5-0 of the second byte of the keyboard ID. Shorting a pair of pins
sets that bit to zero. So placing a jumper on the B2 pair will change
the keyboard ID to 0xBF 0x9F.</p>
<p>Adjacent to this header is a space on the circuit board for an
identical header, marked as pins A2-A7. Presumably these would have the
same effect on the first byte of the keyboard ID.</p>
</blockquote>
<p><a href="http://www.seasip.info/VintagePC/ibm_1390876.html#Identity" rel="nofollow">http://www.seasip.info/VintagePC/ibm_1390876.html#Identity</a></p>
<h2>
<a id="user-content-ibm-6110344" class="anchor" href="#ibm-6110344" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 6110344</h2>
<p>DIP Switch: 0000 0000</p>
<blockquote>
<p>The keyboard has eight DIP switches. According to the guide to
operations, they should be ignored. If you do change them, they change
bits in the keyboard ID (returned by command 0xF2). If all switches are
left open (or disconnected) the ID returned is 0xBF 0xBF. Closing a
switch sets the corresponding bit to 0.</p>
<p>Switches 1-6 correspond to bits 5-0 of the first ID byte. Switches
7-8 correspond to bits 5-4 of the second ID byte. The header on the
controller PCB, to which the DIP switches are connected, has 12 pairs of
pins and is silkscreened "KBDID A" (on the first 6 pairs) and "KBDID B"
(on the second six). The other four pairs of pins correspond to bits
3-0 of the second ID byte; these would need to be set with jumpers.</p>
</blockquote>
<p><a href="http://www.seasip.info/VintagePC/ibm_6110344.html" rel="nofollow">http://www.seasip.info/VintagePC/ibm_6110344.html</a></p>
<h1>
<a id="user-content-scan-codes" class="anchor" href="#scan-codes" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Scan Codes</h1>
<p>This lists scan codes supported by Windows.</p>
<p><a href="https://web.archive.org/web/20090206085854/http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/translate.pdf" rel="nofollow">https://web.archive.org/web/20090206085854/http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/translate.pdf</a></p>
<p>'Keyboard Scan Code Specification Appendix A' of Microsoft gives really details for Scan Code Set 1 and 2.</p>
<p><a href="https://babbage.cs.qc.cuny.edu/courses/cs345/Manuals/ms_scancode.pdf" rel="nofollow">https://babbage.cs.qc.cuny.edu/courses/cs345/Manuals/ms_scancode.pdf</a></p>
<p><a href="https://web.archive.org/web/20201112031338/download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/scancode.doc" rel="nofollow">https://web.archive.org/web/20201112031338/download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/scancode.doc</a></p>
<p>0x00 and 0xFF should not be used as scan code. 0x00 indicates error
in scan code set 2 and 3 while 0xFF does in scan code set 1.
(P.199/4-48)
The system defaults to scan set 2, but can be switched to set 1 or set
3. (p.200)</p>
<p><a href="http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf" rel="nofollow">http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf</a></p>
<h2>
<a id="user-content-scan-code-set-1" class="anchor" href="#scan-code-set-1" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Scan Code Set 1</h2>
<h3>
<a id="user-content-ibm-xt-83-key" class="anchor" href="#ibm-xt-83-key" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM XT 83-key</h3>
<p><a href="https://www.seasip.info/VintagePC/ibm_1501105.html" rel="nofollow">https://www.seasip.info/VintagePC/ibm_1501105.html</a></p>
<details><summary>Open</summary>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f7777772e7365617369702e696e666f2f56696e746167.svg" alt="" data-canonical-src="https://www.seasip.info/VintagePC/Images/1501105_keytops.svg">
<img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f7777772e7365617369702e696e666f2f56696e74_007.svg" alt="" data-canonical-src="https://www.seasip.info/VintagePC/Images/1501105_xlated.svg"></p>
</details>
<h2>
<a id="user-content-scan-code-set-2" class="anchor" href="#scan-code-set-2" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Scan Code Set 2</h2>
<p>The break code consists of 2 bytes, the first of which is the break code prefix, hex F0; the
second byte is the same as the make scan code for that key.</p>
<h3>
<a id="user-content-universal-128-key" class="anchor" href="#universal-128-key" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Universal 128-key</h3>
<p>This is colleciton of common scan codes form variaous available resources.</p>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">Scan Code Set 2:
,-----------------------------------------------.
|F13|F14|F15|F16|F17|F18|F19|F20|F21|F22|F23|F24|
,---. |-----------------------------------------------| ,-----------. ,-----------.
|Esc| |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| |PrS|ScL|Pau| |VDn|VUp|Mut|
`---' `-----------------------------------------------' `-----------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
|-----------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |Del|End|PgD| | 7| 8| 9| +|
|-----------------------------------------------------------| `-----------' |---------------|
|CapsL | A| S| D| F| G| H| J| K| L| ;| '| #|Entr| | 4| 5| 6|KP,|
|-----------------------------------------------------------| ,---. |---------------|
|Shft| &lt;| Z| X| C| V| B| N| M| ,| .| /| RO|Shift | |Up | | 1| 2| 3|Ent|
|-----------------------------------------------------------| ,-----------. |---------------|
|Ctl|Gui|Alt|MHEN| Space |HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| | #| 0| .|KP=|
`-----------------------------------------------------------' `-----------' `---------------'
,-----------------------------------------------.
| 08| 10| 18| 20| 28| 30| 38| 40| 48| 50| 57| 5F|
,---. |-----------------------------------------------| ,-----------. ,-----------.
| 76| | 05| 06| 04| 0C| 03| 0B| 83| 0A| 01| 09| 78| 07| |+7C| 7E|+77| |*21|*32|*23|
`---' `-----------------------------------------------' `-----------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| 0E| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55| 6A| 66| |*70|*6C|*7D| | 77|*4A| 7C| 7B|
|-----------------------------------------------------------| |-----------| |---------------|
| 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B| 5D | |*71|*69|*7A| | 6C| 75| 7D| 79|
|-----------------------------------------------------------| `-----------' |---------------|
| 58 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52|^5D| 5A | | 6B| 73| 74| 6D|
|-----------------------------------------------------------| ,---. |---------------|
| 12 | 61| 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 51| 59 | |*75| | 69| 72| 7A|*5A|
|-----------------------------------------------------------| ,-----------. |---------------|
| 14|*1F| 11| 67 | 29 | 64 | 13 |*11|*27|*2F|*14| |*6B|*72|*74| | 68| 70| 71| 63|
`-----------------------------------------------------------' `-----------' `---------------'
*: E0-prefixed codes
+7C: E0 12 E0 7C
+77: E1 14 77 E1 F0 14 F0 77
^: ISO hash key uses identical scancode 5D to US backslash.
51, 63, 68, 6A, 6D: Hidden keys in IBM model M [6]
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value="Scan Code Set 2:
,-----------------------------------------------.
|F13|F14|F15|F16|F17|F18|F19|F20|F21|F22|F23|F24|
,---. |-----------------------------------------------| ,-----------. ,-----------.
|Esc| |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| |PrS|ScL|Pau| |VDn|VUp|Mut|
`---' `-----------------------------------------------' `-----------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
|-----------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |Del|End|PgD| | 7| 8| 9| +|
|-----------------------------------------------------------| `-----------' |---------------|
|CapsL | A| S| D| F| G| H| J| K| L| ;| '| #|Entr| | 4| 5| 6|KP,|
|-----------------------------------------------------------| ,---. |---------------|
|Shft| &lt;| Z| X| C| V| B| N| M| ,| .| /| RO|Shift | |Up | | 1| 2| 3|Ent|
|-----------------------------------------------------------| ,-----------. |---------------|
|Ctl|Gui|Alt|MHEN| Space |HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| | #| 0| .|KP=|
`-----------------------------------------------------------' `-----------' `---------------'
,-----------------------------------------------.
| 08| 10| 18| 20| 28| 30| 38| 40| 48| 50| 57| 5F|
,---. |-----------------------------------------------| ,-----------. ,-----------.
| 76| | 05| 06| 04| 0C| 03| 0B| 83| 0A| 01| 09| 78| 07| |+7C| 7E|+77| |*21|*32|*23|
`---' `-----------------------------------------------' `-----------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| 0E| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55| 6A| 66| |*70|*6C|*7D| | 77|*4A| 7C| 7B|
|-----------------------------------------------------------| |-----------| |---------------|
| 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B| 5D | |*71|*69|*7A| | 6C| 75| 7D| 79|
|-----------------------------------------------------------| `-----------' |---------------|
| 58 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52|^5D| 5A | | 6B| 73| 74| 6D|
|-----------------------------------------------------------| ,---. |---------------|
| 12 | 61| 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 51| 59 | |*75| | 69| 72| 7A|*5A|
|-----------------------------------------------------------| ,-----------. |---------------|
| 14|*1F| 11| 67 | 29 | 64 | 13 |*11|*27|*2F|*14| |*6B|*72|*74| | 68| 70| 71| 63|
`-----------------------------------------------------------' `-----------' `---------------'
*: E0-prefixed codes
+7C: E0 12 E0 7C
+77: E1 14 77 E1 F0 14 F0 77
^: ISO hash key uses identical scancode 5D to US backslash.
51, 63, 68, 6A, 6D: Hidden keys in IBM model M [6]" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
<h3>
<a id="user-content-exceptional-key-handling" class="anchor" href="#exceptional-key-handling" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Exceptional Key Handling</h3>
<p><a href="https://babbage.cs.qc.cuny.edu/courses/cs345/Manuals/ms_scancode.pdf" rel="nofollow">Microsoft Keyboard Scan Code Specification</a></p>
<details><summary>Open</summary>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">/*******************************************************************************
* AT, PS/2: Scan Code Set 2
*
* Exceptional Handling
* --------------------
* Some keys should be handled exceptionally. See [b].
*
* Scan codes are varied or prefix/postfix'd depending on modifier key state.
*
* 1) Insert, Delete, Home, End, PageUp, PageDown, Up, Down, Right, Left
* a) when Num Lock is off
* modifiers | make | break
* ----------+---------------------------+----------------------
* Ohter | &lt;make&gt; | &lt;break&gt;
* LShift | E0 F0 12 &lt;make&gt; | &lt;break&gt; E0 12
* RShift | E0 F0 59 &lt;make&gt; | &lt;break&gt; E0 59
* L+RShift | E0 F0 12 E0 F0 59 &lt;make&gt; | &lt;break&gt; E0 59 E0 12
*
* b) when Num Lock is on
* modifiers | make | break
* ----------+---------------------------+----------------------
* Other | E0 12 &lt;make&gt; | &lt;break&gt; E0 F0 12
* Shift'd | &lt;make&gt; | &lt;break&gt;
*
* Handling: These prefix/postfix codes are ignored.
*
*
* 2) Keypad /
* modifiers | make | break
* ----------+---------------------------+----------------------
* Ohter | E0 4A | E0 F0 4A
* LShift | E0 F0 12 E0 4A | E0 F0 4A E0 12
* RShift | E0 F0 59 E0 4A | E0 F0 4A E0 59
* L+RShift | E0 F0 12 E0 F0 59 E0 4A | E0 F0 4A E0 59 E0 12
*
* Handling: These prefix/postfix codes are ignored.
*
*
* 3) PrintScreen
* modifiers | make | break
* ----------+--------------+-----------------------------------
* Other | E0 12 E0 7C | E0 F0 7C E0 F0 12
* Shift'd | E0 7C | E0 F0 7C
* Control'd | E0 7C | E0 F0 7C
* Alt'd | 84 | F0 84
*
* Handling: These prefix/postfix codes are ignored, and both scan codes
* 'E0 7C' and 84 are seen as PrintScreen.
*
* 4) Pause
* modifiers | make(no break code)
* ----------+--------------------------------------------------
* Other | E1 14 77 E1 F0 14 F0 77
* Control'd | E0 7E E0 F0 7E
*
* Handling: Both code sequences are treated as a whole.
* And we need a ad hoc 'pseudo break code' hack to get the key off
* because it has no break code.
*
* Notes:
* 'Hanguel/English'(F1) and 'Hanja'(F2) have no break code. See [a].
* These two Korean keys need exceptional handling and are not supported for now.
*
*/
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value="/*******************************************************************************
* AT, PS/2: Scan Code Set 2
*
* Exceptional Handling
* --------------------
* Some keys should be handled exceptionally. See [b].
*
* Scan codes are varied or prefix/postfix'd depending on modifier key state.
*
* 1) Insert, Delete, Home, End, PageUp, PageDown, Up, Down, Right, Left
* a) when Num Lock is off
* modifiers | make | break
* ----------+---------------------------+----------------------
* Ohter | &lt;make&gt; | &lt;break&gt;
* LShift | E0 F0 12 &lt;make&gt; | &lt;break&gt; E0 12
* RShift | E0 F0 59 &lt;make&gt; | &lt;break&gt; E0 59
* L+RShift | E0 F0 12 E0 F0 59 &lt;make&gt; | &lt;break&gt; E0 59 E0 12
*
* b) when Num Lock is on
* modifiers | make | break
* ----------+---------------------------+----------------------
* Other | E0 12 &lt;make&gt; | &lt;break&gt; E0 F0 12
* Shift'd | &lt;make&gt; | &lt;break&gt;
*
* Handling: These prefix/postfix codes are ignored.
*
*
* 2) Keypad /
* modifiers | make | break
* ----------+---------------------------+----------------------
* Ohter | E0 4A | E0 F0 4A
* LShift | E0 F0 12 E0 4A | E0 F0 4A E0 12
* RShift | E0 F0 59 E0 4A | E0 F0 4A E0 59
* L+RShift | E0 F0 12 E0 F0 59 E0 4A | E0 F0 4A E0 59 E0 12
*
* Handling: These prefix/postfix codes are ignored.
*
*
* 3) PrintScreen
* modifiers | make | break
* ----------+--------------+-----------------------------------
* Other | E0 12 E0 7C | E0 F0 7C E0 F0 12
* Shift'd | E0 7C | E0 F0 7C
* Control'd | E0 7C | E0 F0 7C
* Alt'd | 84 | F0 84
*
* Handling: These prefix/postfix codes are ignored, and both scan codes
* 'E0 7C' and 84 are seen as PrintScreen.
*
* 4) Pause
* modifiers | make(no break code)
* ----------+--------------------------------------------------
* Other | E1 14 77 E1 F0 14 F0 77
* Control'd | E0 7E E0 F0 7E
*
* Handling: Both code sequences are treated as a whole.
* And we need a ad hoc 'pseudo break code' hack to get the key off
* because it has no break code.
*
* Notes:
* 'Hanguel/English'(F1) and 'Hanja'(F2) have no break code. See [a].
* These two Korean keys need exceptional handling and are not supported for now.
*
*/" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
</details>
<p><a href="https://github.com/tmk/tmk_keyboard/blob/c6a6049bc85609b05a6502dbbed524d669b2b7a5/converter/ibmpc_usb/ibmpc_usb.c#L605-L668">https://github.com/tmk/tmk_keyboard/blob/c6a6049bc85609b05a6502dbbed524d669b2b7a5/converter/ibmpc_usb/ibmpc_usb.c#L605-L668</a></p>
<h4>
<a id="user-content-system-request-and-print-screen" class="anchor" href="#system-request-and-print-screen" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>System Request and Print Screen</h4>
<p>The 'System Request' key(0x84) was introduced on IBM PC/AT 84-key and
integrated into 'Print Screen' key later on Enhanced 101-key. Alt +
'Print Screen' generates scan code 0x84.</p>
<p><a href="https://en.wikipedia.org/wiki/System_request" rel="nofollow">https://en.wikipedia.org/wiki/System_request</a></p>
<h3>
<a id="user-content-ibm-at-84-key-1" class="anchor" href="#ibm-at-84-key-1" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM AT 84-key</h3>
<p>As the page below refers, this is completely subset of Code Set 3 in
terms of key positions including hidden keys. It is correspond to Code
Set 2 in terms of key ledgends.</p>
<p><a href="https://www.seasip.info/VintagePC/ibm_6450225.html" rel="nofollow">https://www.seasip.info/VintagePC/ibm_6450225.html</a></p>
<details><summary>Open</summary>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f7777772e7365617369702e696e666f2f56696e74_003.svg" alt="" data-canonical-src="https://www.seasip.info/VintagePC/Images/6450225.svg">
<img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f7777772e7365617369702e696e666f2f56696e74_008.svg" alt="" data-canonical-src="https://www.seasip.info/VintagePC/Images/6450225_raw.svg"></p>
</details>
<h3>
<a id="user-content-ibm-102-key" class="anchor" href="#ibm-102-key" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 102-key</h3>
<p><a href="https://www.seasip.info/VintagePC/ibm_1391406.html" rel="nofollow">https://www.seasip.info/VintagePC/ibm_1391406.html</a></p>
<details><summary>Open</summary>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f7777772e7365617369702e696e666f2f56696e74_006.svg" alt="" data-canonical-src="https://www.seasip.info/VintagePC/Images/1391406_keytops.svg">
<img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f7777772e7365617369702e696e666f2f56696e74_002.svg" alt="" data-canonical-src="https://www.seasip.info/VintagePC/Images/1391406_raw2.svg"></p>
</details>
<h3>
<a id="user-content-tandberg-tdv-5020" class="anchor" href="#tandberg-tdv-5020" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Tandberg TDV 5020</h3>
<p>TANDBERG DATA keyboard TDV 5020 made in Norway</p>
<ul>
<li><a href="https://i.imgur.com/VMa39Vu.jpg?1" rel="nofollow">https://i.imgur.com/VMa39Vu.jpg?1</a></li>
<li><a href="https://imgur.com/a/DW9KFXk" rel="nofollow">https://imgur.com/a/DW9KFXk</a></li>
</ul>
<p>Note that <strong>usual PS/2 cable in the market doesn't work</strong> with this keyboard.
Original Tandberg cable is needed, otherwise you have to make cable.</p>
<p>TDV 5020 has Mini-DIN 6P female connector on back side and the connector pinouts are diffrent from PS/2 standard.</p>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">Mini-DIN 6P connector Pinouts:
PS/2 TDV 5020
Data 1 - 4
Gnd 3 - 5
Vcc 4 - 1
Clock 5 - 3
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value="Mini-DIN 6P connector Pinouts:
PS/2 TDV 5020
Data 1 - 4
Gnd 3 - 5
Vcc 4 - 1
Clock 5 - 3" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
<details><summary>Open</summary>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">,---. ,---------------. ,---------------. ,---------------. ,-----------. ,---------------.
|Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |MRK|ANG|SKR|SLU|
`---' `---------------' `---------------' `---------------' |-----------| |---------------|
|STR|KPI|FLT| |FLT|AVS|STN|ORD|
,-------------------------------------------------------------. |-----------| |---------------|
| §| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| + | \| ⮎|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
|-------------------------------------------------------------| |-----------| |---------------|
|Hlp|Tab| Q| W| E| R| T| Y| U| I| O| P| Å| ~ | | |Del|End|PgD| | 7| 8| 9| |
|--------------------------------------------------------| | |-----------| |-----------| +|
|^^^|Caps| A| S| D| F| G| H| J| K| L| Ø| Æ| ' |Entr| | &gt;&gt;|JST| &lt;&gt;| | 4| 5| 6| |
|-------------------------------------------------------------| |-----------| |---------------|
| Shift| &lt;| Z| X| C| V| B| N| M| ,| .| - | Shift| ⇟ | | ⭰ | 🠕 | ⇥ | | 1| 2| 3|Ent|
|-------------------------------------------------------------| |-----------| |-----------| |
|Ctl| |Alt| | Space | |Agr| |Ctl| | ← | ↓ | → | | 0| .| |
`---' `---' `----------------------' ----' `---' `-----------' `---------------'
,---. ,---------------. ,---------------. ,---------------. ,-----------. ,---------------.
| 76| | 05| 06| 04| 0C| | 03| 0B| 83| 0A| | 01| 09| 78| 07| |+7C| 7E|+77| |^2B|^34|^33|^42|
`---' `---------------' `---------------' `---------------' |-----------| |---------------|
|^2C|^3C|^43| |^4B|^2A|^32|^3A|
,-------------------------------------------------------------. |-----------| |---------------|
| 0E| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55|^61| 66| |*70|*6C|*7D| | 77|*4A| 7C| 7B|
|-------------------------------------------------------------| |-----------| |---------------|
|^1D| 0D| 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B | | |*71|*69|*7A| | 6C| 75| 7D| 79|
|--------------------------------------------------------| | |-----------| |-----------| |
|^24| 58 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52| 5D| 5A | |^44|^4D|^1C| | 6B| 73| 74| |
|-------------------------------------------------------------| |-----------| |---------------|
| 12 | 61| 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 59 |^2D| |^1B|*75|^23| | 69| 72| 7A|*5A|
|-------------------------------------------------------------| |-----------| |-----------| |
| 14| | 11| | 29 | |*11| |*14| |*6B|*72|*74| | 70| 71| |
`---' `---' `-------------------------------' `---' `---' `-----------' `---------------'
*: E0-prefixed codes
^: 80-prefixed codes
MERK (mark)
ANGRE (undo)
SKRIV (print)
SLUTT (end)
STRYK (cut)
KOPI (copy)
FLYTT (move)
FELT (cell)
AVSN (paragraph)
SETN (sentence)
ORD (word)
⮎ (?)
HJELP (help)
^^^ (?)
&gt;&gt;/&lt;&lt; (left/right adjust)
JUST (adjust)
&gt;&lt; &lt;&gt; (center/block)
⇟ (three lines down)
⇤ (start of line)
⇥ (end of line)
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value=",---. ,---------------. ,---------------. ,---------------. ,-----------. ,---------------.
|Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |MRK|ANG|SKR|SLU|
`---' `---------------' `---------------' `---------------' |-----------| |---------------|
|STR|KPI|FLT| |FLT|AVS|STN|ORD|
,-------------------------------------------------------------. |-----------| |---------------|
| §| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| + | \| ⮎|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
|-------------------------------------------------------------| |-----------| |---------------|
|Hlp|Tab| Q| W| E| R| T| Y| U| I| O| P| Å| ~ | | |Del|End|PgD| | 7| 8| 9| |
|--------------------------------------------------------| | |-----------| |-----------| +|
|^^^|Caps| A| S| D| F| G| H| J| K| L| Ø| Æ| ' |Entr| | &gt;&gt;|JST| &lt;&gt;| | 4| 5| 6| |
|-------------------------------------------------------------| |-----------| |---------------|
| Shift| &lt;| Z| X| C| V| B| N| M| ,| .| - | Shift| ⇟ | | ⭰ | 🠕 | ⇥ | | 1| 2| 3|Ent|
|-------------------------------------------------------------| |-----------| |-----------| |
|Ctl| |Alt| | Space | |Agr| |Ctl| | ← | ↓ | → | | 0| .| |
`---' `---' `----------------------' ----' `---' `-----------' `---------------'
,---. ,---------------. ,---------------. ,---------------. ,-----------. ,---------------.
| 76| | 05| 06| 04| 0C| | 03| 0B| 83| 0A| | 01| 09| 78| 07| |+7C| 7E|+77| |^2B|^34|^33|^42|
`---' `---------------' `---------------' `---------------' |-----------| |---------------|
|^2C|^3C|^43| |^4B|^2A|^32|^3A|
,-------------------------------------------------------------. |-----------| |---------------|
| 0E| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55|^61| 66| |*70|*6C|*7D| | 77|*4A| 7C| 7B|
|-------------------------------------------------------------| |-----------| |---------------|
|^1D| 0D| 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B | | |*71|*69|*7A| | 6C| 75| 7D| 79|
|--------------------------------------------------------| | |-----------| |-----------| |
|^24| 58 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52| 5D| 5A | |^44|^4D|^1C| | 6B| 73| 74| |
|-------------------------------------------------------------| |-----------| |---------------|
| 12 | 61| 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 59 |^2D| |^1B|*75|^23| | 69| 72| 7A|*5A|
|-------------------------------------------------------------| |-----------| |-----------| |
| 14| | 11| | 29 | |*11| |*14| |*6B|*72|*74| | 70| 71| |
`---' `---' `-------------------------------' `---' `---' `-----------' `---------------'
*: E0-prefixed codes
^: 80-prefixed codes
MERK (mark)
ANGRE (undo)
SKRIV (print)
SLUTT (end)
STRYK (cut)
KOPI (copy)
FLYTT (move)
FELT (cell)
AVSN (paragraph)
SETN (sentence)
ORD (word)
⮎ (?)
HJELP (help)
^^^ (?)
&gt;&gt;/&lt;&lt; (left/right adjust)
JUST (adjust)
&gt;&lt; &lt;&gt; (center/block)
⇟ (three lines down)
⇤ (start of line)
⇥ (end of line)" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
</details>
<h3>
<a id="user-content-skidata2-dekcx50bk02-de-by-tipro" class="anchor" href="#skidata2-dekcx50bk02-de-by-tipro" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>SKIDATA2-DE(KCX50BK02-DE) by TIPRO</h3>
<p><a href="https://gist.github.com/tmk/22b381c13f9a87b2e314d4caf578ac8d">https://gist.github.com/tmk/22b381c13f9a87b2e314d4caf578ac8d</a></p>
<h3>
<a id="user-content-cherry-g80-2551-in-code-set-2" class="anchor" href="#cherry-g80-2551-in-code-set-2" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Cherry G80-2551 in Code Set 2</h3>
<p>The keyobard stars up with Code Set 2 and can be switched to Code Set 3. Code Set 2 mapping doesn't seeem to be useful.</p>
<ul>
<li><a href="https://geekhack.org/index.php?topic=103648.msg2894275#msg2894275" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg2894275#msg2894275</a></li>
<li><a href="https://gist.github.com/tmk/22cb8680ca8ef854630ecd1953268c5b">https://gist.github.com/tmk/22cb8680ca8ef854630ecd1953268c5b</a></li>
</ul>
<h3>
<a id="user-content-siemens-s26381-k257-l120" class="anchor" href="#siemens-s26381-k257-l120" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Siemens S26381-K257-L120</h3>
<p><a href="https://geekhack.org/index.php?topic=103648.msg3033910#msg3033910" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg3033910#msg3033910</a></p>
<ul>
<li>Keyboard ID: AB83</li>
</ul>
<details><summary>Open</summary>
<p>Should be confirmed and fixed.</p>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">,-------. ,-------------------------------------------------------------------------------------------.
| x | - | |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|F13|F14|F15|F16|F17|F18|F19|F20|F21|F22|F23|
`-------' `-------------------------------------------------------------------------------------------'
| - | - | |Esc|F13|Alt|F15|F14|Mhn|Ins|PrS| RO|nHS|Mut|F22|Hnk|JPY|KP=|End|F17|PrS|ScL|Pau|F16|NmL|Gui|
`-------' `-------------------------------------------------------------------------------------------'
,-------. ,-----------------------------------------------------------. ,-----------. ,---------------.
| F1| F2| | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
|-------| |-----------------------------------------------------------| |-----------| |---------------|
| F3| F4| |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ] | | |Del|End|PgD| | 7| 8| 9| +|
|-------| |-------------------------------------------------------| | |-----------| |---------------|
| F5| F6| |CapsL | A| S| D| F| G| H| J| K| L| ;| '| # |Ent| | | | | | 4| 5| 6| ,|
|-------| |-----------------------------------------------------------| `---,---.---' |---------------|
| F7| F8| |Shft| &lt;| Z| X| C| V| B| N| M| ,| .| /| 59 | | |Up | | 1| 2| 3|Ent|
|-------| |-------------------------------------------------------| | ,-----------. |-----------| |
| F9|F10| | Ctrl|App| Alt | Space | Alt | Ctrl|F21| |Lef|Dow|Rig| | 0| .| |
`-------' `-----------------------------------------------------------' `-----------' `---------------'
,-------. ,-------------------------------------------------------------------------------------------.
| x | - | | 05| 06| 04| 0C| 03| 0B| 83| 0A| 01| 09| 78| 07| 08| 10| 18| 20| 28| 30| 38| 40| 48| 50| 57|
`-------' `-------------------------------------------------------------------------------------------'
| - | - | | 76| 08| 0F| 18| 10| 67|*70| 84| 51| 68| 6F| 50| 64| 6A| 63| 5C| 28|+7C| 7E|+77| 20| 77| 17|
`-------' `-------------------------------------------------------------------------------------------'
,-------. ,-----------------------------------------------------------. ,-----------. ,---------------.
| 05| 06| | 0E| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55| 6A| 66| |*70|*6C|*7D| | 77|*4A| 7C| 7B|
|-------| |-----------------------------------------------------------| |-----------| |---------------|
| 04| 0C| | 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B | | |*71|*69|*7A| | 6C| 75| 7D| 79|
|-------| |-------------------------------------------------------| | |-----------| |---------------|
| 03| 0B| | 58 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52| 5D | 5A| | | | | | 6B| 73| 74| 6D|
|-------| |-----------------------------------------------------------| `---,---.---' |---------------|
|*83| 0A| | 12 | 61| 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 59 | | |*75| | 69| 72| 7A|*5A|
|-------| |-------------------------------------------------------| | ,-----------. |-----------| |
| 01| 09| | 14 | 27| 11 | 29 | *11 | *14 | 48| |*6B|*72|*74| | 70| 71| |
`-------' `-----------------------------------------------------------' `-----------' `---------------'
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value=",-------. ,-------------------------------------------------------------------------------------------.
| x | - | |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|F13|F14|F15|F16|F17|F18|F19|F20|F21|F22|F23|
`-------' `-------------------------------------------------------------------------------------------'
| - | - | |Esc|F13|Alt|F15|F14|Mhn|Ins|PrS| RO|nHS|Mut|F22|Hnk|JPY|KP=|End|F17|PrS|ScL|Pau|F16|NmL|Gui|
`-------' `-------------------------------------------------------------------------------------------'
,-------. ,-----------------------------------------------------------. ,-----------. ,---------------.
| F1| F2| | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
|-------| |-----------------------------------------------------------| |-----------| |---------------|
| F3| F4| |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ] | | |Del|End|PgD| | 7| 8| 9| +|
|-------| |-------------------------------------------------------| | |-----------| |---------------|
| F5| F6| |CapsL | A| S| D| F| G| H| J| K| L| ;| '| # |Ent| | | | | | 4| 5| 6| ,|
|-------| |-----------------------------------------------------------| `---,---.---' |---------------|
| F7| F8| |Shft| &lt;| Z| X| C| V| B| N| M| ,| .| /| 59 | | |Up | | 1| 2| 3|Ent|
|-------| |-------------------------------------------------------| | ,-----------. |-----------| |
| F9|F10| | Ctrl|App| Alt | Space | Alt | Ctrl|F21| |Lef|Dow|Rig| | 0| .| |
`-------' `-----------------------------------------------------------' `-----------' `---------------'
,-------. ,-------------------------------------------------------------------------------------------.
| x | - | | 05| 06| 04| 0C| 03| 0B| 83| 0A| 01| 09| 78| 07| 08| 10| 18| 20| 28| 30| 38| 40| 48| 50| 57|
`-------' `-------------------------------------------------------------------------------------------'
| - | - | | 76| 08| 0F| 18| 10| 67|*70| 84| 51| 68| 6F| 50| 64| 6A| 63| 5C| 28|+7C| 7E|+77| 20| 77| 17|
`-------' `-------------------------------------------------------------------------------------------'
,-------. ,-----------------------------------------------------------. ,-----------. ,---------------.
| 05| 06| | 0E| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55| 6A| 66| |*70|*6C|*7D| | 77|*4A| 7C| 7B|
|-------| |-----------------------------------------------------------| |-----------| |---------------|
| 04| 0C| | 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B | | |*71|*69|*7A| | 6C| 75| 7D| 79|
|-------| |-------------------------------------------------------| | |-----------| |---------------|
| 03| 0B| | 58 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52| 5D | 5A| | | | | | 6B| 73| 74| 6D|
|-------| |-----------------------------------------------------------| `---,---.---' |---------------|
|*83| 0A| | 12 | 61| 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 59 | | |*75| | 69| 72| 7A|*5A|
|-------| |-------------------------------------------------------| | ,-----------. |-----------| |
| 01| 09| | 14 | 27| 11 | 29 | *11 | *14 | 48| |*6B|*72|*74| | 70| 71| |
`-------' `-----------------------------------------------------------' `-----------' `---------------'" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
<p>Scan codes for the second row from the top:</p>
<table role="table">
<thead>
<tr>
<th>Key:</th>
<th>ESC</th>
<th>markier/CH.CODE</th>
<th>Blind</th>
<th>druck 1/MODE</th>
<th>druck 2/DRUCK</th>
<th>Blind</th>
<th>Zeichen</th>
<th>WORT</th>
<th>Zeile</th>
<th>Blind</th>
<th>Zeichen</th>
<th>Daten/WORT</th>
<th>Zeile</th>
<th>Blind</th>
<th>&gt;/HELP</th>
<th>&lt;/START</th>
<th>^/END</th>
<th>DRUCK</th>
<th>K1/ROLL</th>
<th>K2/PAUSE</th>
<th>skip/K3</th>
<th>lö.Bild/rs.Anz./NumL</th>
<th>Blind</th>
</tr>
</thead>
<tbody>
<tr>
<td>Scan Code:</td>
<td>r76</td>
<td>r08</td>
<td>r0F</td>
<td>r18</td>
<td>r10</td>
<td>r67</td>
<td>rE0+r70</td>
<td>r84</td>
<td>r51</td>
<td>r68</td>
<td>r6F</td>
<td>r50</td>
<td>r64</td>
<td>r6A</td>
<td>r63</td>
<td>r5C</td>
<td>r28</td>
<td>rE0+r12+rE0+r7C</td>
<td>r7E</td>
<td>rE1+r14+r77</td>
<td>r20</td>
<td>r77</td>
<td>r17</td>
</tr>
<tr>
<td>TMK unimap:</td>
<td>Esc</td>
<td>F13</td>
<td>RALT</td>
<td>F15</td>
<td>F14</td>
<td>MHEN</td>
<td>Insert</td>
<td>PrintScreen</td>
<td>RO</td>
<td>NUHS</td>
<td>MUTE</td>
<td>F22</td>
<td>HENK</td>
<td>JYEN</td>
<td>KP=</td>
<td>END</td>
<td>F17</td>
<td>PrintScreen</td>
<td>ScrollLock</td>
<td>Pause</td>
<td>F16</td>
<td>Num Lock</td>
<td>LGUI</td>
</tr>
</tbody>
</table>
<p>Scan codes for bottom row:</p>
<table role="table">
<thead>
<tr>
<th>Keys:</th>
<th>CTRL</th>
<th>Blind</th>
<th>ALT</th>
<th>Spacebar</th>
<th>Compose/AltGr</th>
<th>&lt;/CTRL</th>
<th>Send/Menu</th>
</tr>
</thead>
<tbody>
<tr>
<td>Scan code:</td>
<td>r14</td>
<td>r27</td>
<td>r11</td>
<td>r29</td>
<td>rE0+r11</td>
<td>rE0+r14</td>
<td>r48</td>
</tr>
<tr>
<td>TMK unimap:</td>
<td>LCTL</td>
<td>APP</td>
<td>LALT Alt</td>
<td>SPACE</td>
<td>RALT</td>
<td>RCTL</td>
<td>F21</td>
</tr>
</tbody>
</table>
<p><a href="https://geekhack.org/index.php?topic=103648.msg3033527#msg3033527" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg3033527#msg3033527</a></p>
</details>
<h3>
<a id="user-content-ax-keyboard" class="anchor" href="#ax-keyboard" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>AX keyboard</h3>
<p><a href="https://ia801604.us.archive.org/21/items/OADG1991/%EF%BC%AF%EF%BC%A1%EF%BC%A4%EF%BC%A7%E3%83%86%E3%82%AF%E3%83%8B%E3%82%AB%E3%83%AB%E3%83%BB%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%20%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E7%B7%A8%201991%E5%B9%B4.pdf" rel="nofollow">OADG B-3</a></p>
<ul>
<li>Keyboard ID: AB83</li>
</ul>
<details><summary>Open</summary>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">,---. ,---------------. ,---------------. ,---------------. ,-----------.
|AX | |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
|-----------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | |Del|End|PgD| | 7| 8| 9| +|
|------------------------------------------------------` | `-----------' |-----------| |
|CapsL | A| S| D| F| G| H| J| K| L| ;| '| `|Retn| | 4| 5| 6| |
|-----------------------------------------------------------| ,---. |---------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /| RO|Shift | |Up | | 1| 2| 3|Ent|
|-----------------------------------------------------------| ,-----------. |-----------| |
|Caps | | Alt | MHEN | SPC | HENK | KANJI| |KANA | |Lef|Dow|Rig| | 0 | .| |
`-----' `---------------------------------------' `-----' `-----------' `---------------'
,---. ,---------------. ,---------------. ,---------------. ,-----------.
|^27| | 05| 06| 04| 0C| | 03| 0B| 83| 0A| | 01| 09| 78| 07| |+7C| 7E|+77|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
|^76| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55|^5D| 66| |*70|*6C|*7D| | 77|*4A| 7C| 7B|
|-----------------------------------------------------------| |-----------| |---------------|
| 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B| | |*71|*69|*7A| | 6C| 75| 7D| 79|
|------------------------------------------------------` | `-----------' |-----------| |
|^14 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52|^0E| 5A | | 6B| 73| 74| |
|-----------------------------------------------------------| ,---. |---------------|
| 12 | 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A|^61| 59 | |*75| | 69| 72| 7A|*5A|
|-----------------------------------------------------------| ,-----------. |-----------| |
|^58 | | 11 | ^17 | 29 | ^1F | *11 | | *14 | |*6B|*72|*74| | 68| 70| 71| |
`-----' `---------------------------------------' `-----' `-----------' `---------------'
^: AX specific
*: E0-prefixed
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value=",---. ,---------------. ,---------------. ,---------------. ,-----------.
|AX | |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
|-----------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | |Del|End|PgD| | 7| 8| 9| +|
|------------------------------------------------------` | `-----------' |-----------| |
|CapsL | A| S| D| F| G| H| J| K| L| ;| '| `|Retn| | 4| 5| 6| |
|-----------------------------------------------------------| ,---. |---------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /| RO|Shift | |Up | | 1| 2| 3|Ent|
|-----------------------------------------------------------| ,-----------. |-----------| |
|Caps | | Alt | MHEN | SPC | HENK | KANJI| |KANA | |Lef|Dow|Rig| | 0 | .| |
`-----' `---------------------------------------' `-----' `-----------' `---------------'
,---. ,---------------. ,---------------. ,---------------. ,-----------.
|^27| | 05| 06| 04| 0C| | 03| 0B| 83| 0A| | 01| 09| 78| 07| |+7C| 7E|+77|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
|^76| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55|^5D| 66| |*70|*6C|*7D| | 77|*4A| 7C| 7B|
|-----------------------------------------------------------| |-----------| |---------------|
| 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B| | |*71|*69|*7A| | 6C| 75| 7D| 79|
|------------------------------------------------------` | `-----------' |-----------| |
|^14 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52|^0E| 5A | | 6B| 73| 74| |
|-----------------------------------------------------------| ,---. |---------------|
| 12 | 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A|^61| 59 | |*75| | 69| 72| 7A|*5A|
|-----------------------------------------------------------| ,-----------. |-----------| |
|^58 | | 11 | ^17 | 29 | ^1F | *11 | | *14 | |*6B|*72|*74| | 68| 70| 71| |
`-----' `---------------------------------------' `-----' `-----------' `---------------'
^: AX specific
*: E0-prefixed" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
<table role="table">
<thead>
<tr>
<th>AX</th>
<th>Scan Code</th>
<th>TMK old</th>
<th>TMK new</th>
</tr>
</thead>
<tbody>
<tr>
<td>AX</td>
<td>27</td>
<td>End*</td>
<td>App</td>
</tr>
<tr>
<td>無変換</td>
<td>17</td>
<td>RCtrl*</td>
<td>LGui</td>
</tr>
<tr>
<td>変換</td>
<td>1F</td>
<td>RGui</td>
<td>RGui</td>
</tr>
<tr>
<td>漢字</td>
<td>E0 11</td>
<td>RAlt</td>
<td>RAlt</td>
</tr>
<tr>
<td>カナ</td>
<td>E0 14</td>
<td>RCtl</td>
<td>RCtl</td>
</tr>
<tr>
<td></td>
<td>61</td>
<td>NUBS</td>
<td>NUBS</td>
</tr>
<tr>
<td>JPY</td>
<td>5D</td>
<td>Backslash</td>
<td>Backslash</td>
</tr>
</tbody>
</table>
<p>AX keyboard doesn't comform to standard code set 2 and uses ID:AB83 as other normal keyboards.</p>
<p><a href="https://i.imgur.com/dhCaTfN.jpg?1" rel="nofollow">https://i.imgur.com/dhCaTfN.jpg?1</a></p>
</details>
<h2>
<a id="user-content-scan-code-set-3" class="anchor" href="#scan-code-set-3" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Scan Code Set 3</h2>
<p>The break code consists of 2 bytes, the first of which is the break-code prefix, hex F0; the
second byte is the same as the make scan code for that key.</p>
<p><a href="http://www.mcamafia.de/pdf/ibm_hitrc11.pdf" rel="nofollow">http://www.mcamafia.de/pdf/ibm_hitrc11.pdf</a></p>
<h3>
<a id="user-content-ibm-terminal-122-key-1" class="anchor" href="#ibm-terminal-122-key-1" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM Terminal 122-key</h3>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f7777772e7365617369702e696e666f2f56696e74_004.svg" alt="" data-canonical-src="https://www.seasip.info/VintagePC/Images/6110344_keytops.svg">
<img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f7777772e7365617369702e696e666f2f56696e74_005.svg" alt="" data-canonical-src="https://www.seasip.info/VintagePC/Images/6110344_raw.svg">
<a href="https://www.seasip.info/VintagePC/ibm_6110344.html" rel="nofollow">https://www.seasip.info/VintagePC/ibm_6110344.html</a>
<a href="https://www.seasip.info/VintagePC/ibm_1390876.html" rel="nofollow">https://www.seasip.info/VintagePC/ibm_1390876.html</a></p>
<h3>
<a id="user-content-ibm-terminal-101-key102-key" class="anchor" href="#ibm-terminal-101-key102-key" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM Terminal 101-key/102-key</h3>
<details><summary>Open</summary>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">,---. ,---------------. ,---------------. ,---------------. ,-----------.
|F13| | F1| F2| F3| F4| | F5| F6| F7| F8| | F9|F10|F11|F12| |F23|F24|Hom|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| | /|PgU|PgD| |Esc|NmL|ScL| *|
|-----------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |End|Ins|Del| | 7| 8| 9| +|
|-----------------------------------------------------------| `-----------' |-----------|---|
|CapsL | A| S| D| F| G| H| J| K| L| ;| '| #|Entr| | 4| 5| 6| -|
|-----------------------------------------------------------| ,---. |---------------|
|Shft| &lt;| Z| X| C| V| B| N| M| ,| .| /| RO|Shift | |Up | | 1| 2| 3|Ent|
|-----------------------------------------------------------| ,-----------. |-----------|---|
|Ctrl| |Alt | Space |Alt | |Ctrl| |Lef|Dow|Rig| | ,| 0| .| =|
`----' `---------------------------------------' `----' `-----------' `---------------'
,---. ,---------------. ,---------------. ,---------------. ,-----------.
| 08| | 07| 0F| 17| 1F| | 27| 2F| 37| 3F| | 47| 4F| 56| 5E| | 57| 5F| 62|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| 0E| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55| 5D| 66| | 67| 6E| 6F| | 76| 77| 7E| 84|
|-----------------------------------------------------------| |-----------| |---------------|
| 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B| 5C | | 64| 65| 6D| | 6C| 75| 7D| 7C|
|-----------------------------------------------------------| `-----------' |---------------|
| 14 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52| 53| 5A | | 6B| 73| 74| 7B|
|-----------------------------------------------------------| ,---. |---------------|
| 12 | 13| 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 51| 59 | | 63| | 69| 72| 7A| 79|
|-----------------------------------------------------------| ,-----------. |---------------|
| 11 | |19 | 29 |39 | | 58 | | 61| 60| 6A| | 68| 70| 71| 78|
`-----' `---------------------------------------' `-----' `-----------' `---------------'
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value=",---. ,---------------. ,---------------. ,---------------. ,-----------.
|F13| | F1| F2| F3| F4| | F5| F6| F7| F8| | F9|F10|F11|F12| |F23|F24|Hom|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| | /|PgU|PgD| |Esc|NmL|ScL| *|
|-----------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |End|Ins|Del| | 7| 8| 9| +|
|-----------------------------------------------------------| `-----------' |-----------|---|
|CapsL | A| S| D| F| G| H| J| K| L| ;| '| #|Entr| | 4| 5| 6| -|
|-----------------------------------------------------------| ,---. |---------------|
|Shft| &lt;| Z| X| C| V| B| N| M| ,| .| /| RO|Shift | |Up | | 1| 2| 3|Ent|
|-----------------------------------------------------------| ,-----------. |-----------|---|
|Ctrl| |Alt | Space |Alt | |Ctrl| |Lef|Dow|Rig| | ,| 0| .| =|
`----' `---------------------------------------' `----' `-----------' `---------------'
,---. ,---------------. ,---------------. ,---------------. ,-----------.
| 08| | 07| 0F| 17| 1F| | 27| 2F| 37| 3F| | 47| 4F| 56| 5E| | 57| 5F| 62|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| 0E| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55| 5D| 66| | 67| 6E| 6F| | 76| 77| 7E| 84|
|-----------------------------------------------------------| |-----------| |---------------|
| 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B| 5C | | 64| 65| 6D| | 6C| 75| 7D| 7C|
|-----------------------------------------------------------| `-----------' |---------------|
| 14 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52| 53| 5A | | 6B| 73| 74| 7B|
|-----------------------------------------------------------| ,---. |---------------|
| 12 | 13| 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 51| 59 | | 63| | 69| 72| 7A| 79|
|-----------------------------------------------------------| ,-----------. |---------------|
| 11 | |19 | 29 |39 | | 58 | | 61| 60| 6A| | 68| 70| 71| 78|
`-----' `---------------------------------------' `-----' `-----------' `---------------'" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
</details>
<ul>
<li>
<p>IBM 1391406 102-key PC Code Set 3:
<a href="http://www.seasip.info/VintagePC/ibm_1391406.html" rel="nofollow">http://www.seasip.info/VintagePC/ibm_1391406.html</a></p>
</li>
<li>
<p>IBM 1394204 101-key Terminal Code Set 3:
<a href="https://github.com/tmk/tmk_keyboard/issues/687#issuecomment-853539163">https://github.com/tmk/tmk_keyboard/issues/687#issuecomment-853539163</a></p>
</li>
</ul>
<h3>
<a id="user-content-g80-2551-in-code-set-3" class="anchor" href="#g80-2551-in-code-set-3" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>G80-2551 in Code Set 3</h3>
<p>The keyboard can be switch to Scan Code Set 3 with 'Select Alternate Scan Codes'command (F0 03).
Its scan codes are identical to IBM 122-key terminal keyboard except for four extra key around cursors.</p>
<details><summary>Open</summary>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate"> ,-----------------------------------------------.
| 08| 10| 18| 20| 28| 30| 38| 40| 48| 50| 57| 5F|
|-----------------------------------------------|
| 07| 0F| 17| 1F| 27| 2F| 37| 3F| 47| 4F| 56| 5E|
`-----------------------------------------------'
,-------. ,-----------------------------------------------------------. ,-----------. ,---------------.
| 05| 06| | 0E| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55| 66| | 67| 6E| 6F| | 76| 77| 7E| 84|
|-------| |-----------------------------------------------------------| |-----------| |---------------|
| 04| 0C| | 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B| | | 64| 65| 6D| | 6C| 75| 7D| 7C|
|-------| |------------------------------------------------------` | |-----------| |---------------|
| 03| 0B| | 14 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52| 53| 5A | |-26| 63|-25| | 6B| 73| 74| 7B|
|-------| |-----------------------------------------------------------| |-----------| |---------------|
| 83| 0A| | 12 | 13| 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 59 | | 61| 62| 6A| | 69| 72| 7A| 79|
|-------| |-----------------------------------------------------------| |-----------| |-----------| |
| 01| 09| | 11 | |19 | 29 |39 | | 58 | |-16| 60|-1E| | 70| 71| |
`-------' `-----' `---------------------------------------' `-----' `-----------' `---------------'
-: 0x80 prefixed(G80-2551 specific)
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value=" ,-----------------------------------------------.
| 08| 10| 18| 20| 28| 30| 38| 40| 48| 50| 57| 5F|
|-----------------------------------------------|
| 07| 0F| 17| 1F| 27| 2F| 37| 3F| 47| 4F| 56| 5E|
`-----------------------------------------------'
,-------. ,-----------------------------------------------------------. ,-----------. ,---------------.
| 05| 06| | 0E| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55| 66| | 67| 6E| 6F| | 76| 77| 7E| 84|
|-------| |-----------------------------------------------------------| |-----------| |---------------|
| 04| 0C| | 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B| | | 64| 65| 6D| | 6C| 75| 7D| 7C|
|-------| |------------------------------------------------------` | |-----------| |---------------|
| 03| 0B| | 14 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52| 53| 5A | |-26| 63|-25| | 6B| 73| 74| 7B|
|-------| |-----------------------------------------------------------| |-----------| |---------------|
| 83| 0A| | 12 | 13| 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 59 | | 61| 62| 6A| | 69| 72| 7A| 79|
|-------| |-----------------------------------------------------------| |-----------| |-----------| |
| 01| 09| | 11 | |19 | 29 |39 | | 58 | |-16| 60|-1E| | 70| 71| |
`-------' `-----' `---------------------------------------' `-----' `-----------' `---------------'
-: 0x80 prefixed(G80-2551 specific)" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
<ul>
<li><a href="https://geekhack.org/index.php?topic=103648.msg2894921#msg2894921" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg2894921#msg2894921</a></li>
<li><a href="https://gist.github.com/tmk/22cb8680ca8ef854630ecd1953268c5b">https://gist.github.com/tmk/22cb8680ca8ef854630ecd1953268c5b</a></li>
</ul>
</details>
<h3>
<a id="user-content-televideo-990995-dec-style-in-code-set-3" class="anchor" href="#televideo-990995-dec-style-in-code-set-3" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Televideo 990/995 DEC Style in Code Set 3</h3>
<ul>
<li><a href="https://github.com/tmk/tmk_keyboard/pull/711#issuecomment-961490027">https://github.com/tmk/tmk_keyboard/pull/711#issuecomment-961490027</a></li>
<li><a href="http://www.bitsavers.org/pdf/televideo/990/" rel="nofollow">http://www.bitsavers.org/pdf/televideo/990/</a></li>
</ul>
<details><summary>Open</summary>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate"> ,-------------------. ,-------------------. ,---------------. ,-----------. ,---------------.
|F1 |F2 |F3 |F4 |F5 | |F6 |F7 |F8 |F9 |F10| |F11|F12|F13|F14| |Hlp|Do | |F17|F18|F19|F20|
`-------------------' `-------------------' `---------------' `-----------' `---------------'
,-----------------------------------------------------------------. ,-----------. ,---------------.
|Esc| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Del |Bsp| | | | | |PF1|PF2|PF3|PF4|
|-----------------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Entr| | | | | | 7| 8| 9| -|
|---------------------------------------------------------- | `-----------' |---------------|
|Ctl|CapsL| A| S| D| F| G| H| J| K| L| ;| '| \ | | | Up| | 4| 5| 6| ,|
|--------------------------------------------------------------|_ ,-----------. |---------------|
| Shft | &lt;| Z| X| C| V| B| N| M| ,| .| /| Shift |LF | |Lef|Dow|Rig| | 1| 2| 3|Ent|
`----------------------------------------------------------------' `-----------' |-----------| |
| | alt| Space | alt| | | 0| .| |
`-----------------------------------------------' `---------------'
,-------------------. ,-------------------. ,---------------. ,-----------. ,---------------.
| 07| 0F| 17| 1F| 27| | 2F| 37| 3F| 47| 4F| | 56| 5E| 85| 86| | 87| 88 | | 89| 8A| 8B| 8C|
`-------------------' `-------------------' `---------------' `-----------' `---------------'
,-----------------------------------------------------------------. ,-----------. ,---------------.
| 08| 0E| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55| 66 | 57| | 6E| 67| 64| | 8D| 8E| 8F| 90|
|-----------------------------------------------------------------| |-----------| |---------------|
| 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B| 5A?| | 65| 6D| 6F| | 6C| 75| 7D| 84|
|---------------------------------------------------------- | `-----------' |---------------|
| 11| 14 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52| 5C| | | 63| | 6B| 73| 74| 7C|
|--------------------------------------------------------------|_ ,-----------. |---------------|
| 12 | 13| 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 59 | 77 | | 61| 60| 6A| | 69| 72| 7A| 79|
`----------------------------------------------------------------' `-----------' |-----------| |
| 91 | 19 | 29 | 39 | 92 | | 70| 71| |
`-----------------------------------------------' `---------------'
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value=" ,-------------------. ,-------------------. ,---------------. ,-----------. ,---------------.
|F1 |F2 |F3 |F4 |F5 | |F6 |F7 |F8 |F9 |F10| |F11|F12|F13|F14| |Hlp|Do | |F17|F18|F19|F20|
`-------------------' `-------------------' `---------------' `-----------' `---------------'
,-----------------------------------------------------------------. ,-----------. ,---------------.
|Esc| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Del |Bsp| | | | | |PF1|PF2|PF3|PF4|
|-----------------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Entr| | | | | | 7| 8| 9| -|
|---------------------------------------------------------- | `-----------' |---------------|
|Ctl|CapsL| A| S| D| F| G| H| J| K| L| ;| '| \ | | | Up| | 4| 5| 6| ,|
|--------------------------------------------------------------|_ ,-----------. |---------------|
| Shft | &lt;| Z| X| C| V| B| N| M| ,| .| /| Shift |LF | |Lef|Dow|Rig| | 1| 2| 3|Ent|
`----------------------------------------------------------------' `-----------' |-----------| |
| | alt| Space | alt| | | 0| .| |
`-----------------------------------------------' `---------------'
,-------------------. ,-------------------. ,---------------. ,-----------. ,---------------.
| 07| 0F| 17| 1F| 27| | 2F| 37| 3F| 47| 4F| | 56| 5E| 85| 86| | 87| 88 | | 89| 8A| 8B| 8C|
`-------------------' `-------------------' `---------------' `-----------' `---------------'
,-----------------------------------------------------------------. ,-----------. ,---------------.
| 08| 0E| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55| 66 | 57| | 6E| 67| 64| | 8D| 8E| 8F| 90|
|-----------------------------------------------------------------| |-----------| |---------------|
| 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B| 5A?| | 65| 6D| 6F| | 6C| 75| 7D| 84|
|---------------------------------------------------------- | `-----------' |---------------|
| 11| 14 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52| 5C| | | 63| | 6B| 73| 74| 7C|
|--------------------------------------------------------------|_ ,-----------. |---------------|
| 12 | 13| 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 59 | 77 | | 61| 60| 6A| | 69| 72| 7A| 79|
`----------------------------------------------------------------' `-----------' |-----------| |
| 91 | 19 | 29 | 39 | 92 | | 70| 71| |
`-----------------------------------------------' `---------------'" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f692e696d6775722e636f6d2f4830664d7652752e706e.png" alt="" data-canonical-src="https://i.imgur.com/H0fMvRu.png"></p>
</details>
<h3>
<a id="user-content-g80-3600-and-skidata2-de-in-code-set-3" class="anchor" href="#g80-3600-and-skidata2-de-in-code-set-3" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>G80-3600 and SKIDATA2-DE in Code Set 3</h3>
<p>Japanese specific keys and extra keys of modern PC keyboard</p>
<table role="table">
<thead>
<tr>
<th>Key</th>
<th>Code</th>
</tr>
</thead>
<tbody>
<tr>
<td>無変換(Japanese Muhenkan)</td>
<td>85</td>
</tr>
<tr>
<td>変換(Japanese Henkan)</td>
<td>86</td>
</tr>
<tr>
<td>ひらがな</td>
<td>87</td>
</tr>
<tr>
<td>LGUI</td>
<td>8B</td>
</tr>
<tr>
<td>RGUI</td>
<td>8C</td>
</tr>
<tr>
<td>Application</td>
<td>8D</td>
</tr>
</tbody>
</table>
<h2>
<a id="user-content-ibm-5576-scan-codes-set" class="anchor" href="#ibm-5576-scan-codes-set" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 5576 Scan Codes Set</h2>
<p>The 5576 keyboard series supports special code sets.</p>
<p>The 5576 keyboads starts up with Code Set 2 which doesn't enable
Japanese specific keys and emulates US layout. Code Set 2 is not useuful
in fact. TMK IBMPC converter uses Code Set 3 for 5576-001 and Code Set
82h for 5576-002 and 5576-003. Resouces says 5576-001 doesn't support
Code Set 1, 3 and 81h, though, 5576-001 can work with Code Set 3
actually.</p>
<p>5576-A01 is completely compatible to standard Japanese PS/2 keyboard.</p>
<table role="table">
<thead>
<tr>
<th>Code Set</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>without Japanese specific key support</td>
</tr>
<tr>
<td>2</td>
<td>without Japanese specific key support</td>
</tr>
<tr>
<td>3</td>
<td>All keys can be used</td>
</tr>
<tr>
<td>81h</td>
<td>Code Set 1 with Japanese specific key support</td>
</tr>
<tr>
<td>82h</td>
<td>Code Set 2 with Japanese specific key support</td>
</tr>
<tr>
<td>8Ah</td>
<td>IBM 5550 compatible</td>
</tr>
</tbody>
</table>
<p><a href="https://diarywind.com/blog/e/ibm-5576002-keyboard-info.html" rel="nofollow">https://diarywind.com/blog/e/ibm-5576002-keyboard-info.html</a></p>
<p><a href="http://radioc.web.fc2.com/column/ps55/ps55kbd_scancode.htm" rel="nofollow">http://radioc.web.fc2.com/column/ps55/ps55kbd_scancode.htm</a></p>
<p><a href="https://www.win.tue.nl/~aeb/linux/kbd/scancodes-8.html#ss8.3" rel="nofollow">https://www.win.tue.nl/~aeb/linux/kbd/scancodes-8.html#ss8.3</a></p>
<h3>
<a id="user-content-ibm-5576-keyboard-layout" class="anchor" href="#ibm-5576-keyboard-layout" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 5576 Keyboard Layout</h3>
<p>5576-001:</p>
<details><summary>Open</summary>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/687474703a2f2f7a6967736f772e6a702f696d672e7068703f613d612666.jpg" alt="" data-canonical-src="http://zigsow.jp/img.php?a=a&amp;filename=mi_100977_1359272740_1521804289.jpg">
<img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f692e696d6775722e636f6d2f654358716a7a4d2e6a70.jpg" alt="" data-canonical-src="https://i.imgur.com/eCXqjzM.jpg"></p>
</details>
<p>5576-002:</p>
<details><summary>Open</summary>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77.jpg" alt="" data-canonical-src="https://upload.wikimedia.org/wikipedia/commons/8/83/IBM_5576_002_Keyboard.jpg"></p>
</details>
<p>5576-003:</p>
<details><summary>Open</summary>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f7062732e7477696d672e636f6d2f6d656469612f454f.jpg" alt="" data-canonical-src="https://pbs.twimg.com/media/EOSuNygUUAISROB?format=jpg&amp;name=4096x4096"></p>
</details>
<p>5576-A01:</p>
<details><summary>Open</summary>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/687474703a2f2f626c6f672d696d67732d37352e6663322e636f6d2f6b2f.jpg" alt="" data-canonical-src="http://blog-imgs-75.fc2.com/k/c/g/kcg0319/securedownload_20150302100522d30.jpg"></p>
</details>
<h3>
<a id="user-content-ibm-5576-code-set-82h" class="anchor" href="#ibm-5576-code-set-82h" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 5576 Code Set 82h</h3>
<h4>
<a id="user-content-5576-002003" class="anchor" href="#5576-002003" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>5576-002/003</h4>
<p>This should be confirmed.</p>
<details><summary>Open</summary>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">IBM 5576-002 Code Set 82h:
,---. ,---------------. ,---------------. ,---------------. ,-----------.
|Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| ¥|Bsp| |Ins|Hom|PgU| | *| /| ,| -|
|-----------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| @| [| | |Del|End|PgD| | 7| 8| 9| +|
|------------------------------------------------------`Entr| `-----------' |-----------| |
|CapsL | A| S| D| F| G| H| J| K| L| ;| :| ]| | | 4| 5| 6| |
|-----------------------------------------------------------| ,---. |---------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /| RO|Shift | |Up | | 1| 2| 3|Ent|
|-----------------------------------------------------------| ,-----------. |-----------| |
| Ctrl| |漢字 | MHEN | Space | HENK | ひら | 前面| | Ctrl| |Lef|Dow|Rig| | 0| .| |
`-----' `---------------------------------------' `-----' `-----------' `---------------'
,---. ,-----------------------------------------------. ,-----------.
| 76| | 05| 06| 04| 0C| 03| 0B| 83| 0A| 01| 09| 78| 07| |+7C| 7E|+77|
`---' `-----------------------------------------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
|-62| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55|-5D| 66| |*70|*6C|*7D| |-7C|*4A|*41| 7B|
|-----------------------------------------------------------| |-----------| |---------------|
| 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D|-0E|-54| | |*71|*69|*7A| | 6C| 75| 7D| |
|------------------------------------------------------` | `-----------' |-----------| 79|
| 58 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52|-5B| 5A | | 6B| 73| 74| |
|-----------------------------------------------------------| ,---. |---------------|
| 12 | 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 51| 59 | |*75| | 69| 72| 7A| |
|-----------------------------------------------------------| ,-----------. |-----------|*5A|
| 14 | | -13 | 67 | 29 | 64 | *11 | 11 | | *14 | |*6B|*72|*74| | 70| 71| |
`-----' `---------------------------------------' `-----' `-----------' `---------------'
*: E0 prefixed
+: Special scan code sequence
-: 5576 specific
Speculation from 5576-001 CS82h and Quckey! translation table.
Mapping after translation by TMK IBMPC converter:
,---. ,---------------. ,---------------. ,---------------. ,-----------.
|Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
|-----------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | |Del|End|PgD| | 7| 8| 9| +|
|------------------------------------------------------`Entr| `-----------' |-----------| |
|CapsL | A| S| D| F| G| H| J| K| L| ;| '| \| | | 4| 5| 6| |
|-----------------------------------------------------------| ,---. |---------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /| RO|Shift | |Up | | 1| 2| 3|Ent|
|-----------------------------------------------------------| ,-----------. |-----------| |
| Ctrl| | LAlt| MHEN | Space | HENK | KANA| RAlt| | Ctrl| |Lef|Dow|Rig| | 0| .| |
`-----' `---------------------------------------' `-----' `-----------' `---------------'
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value="IBM 5576-002 Code Set 82h:
,---. ,---------------. ,---------------. ,---------------. ,-----------.
|Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| ¥|Bsp| |Ins|Hom|PgU| | *| /| ,| -|
|-----------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| @| [| | |Del|End|PgD| | 7| 8| 9| +|
|------------------------------------------------------`Entr| `-----------' |-----------| |
|CapsL | A| S| D| F| G| H| J| K| L| ;| :| ]| | | 4| 5| 6| |
|-----------------------------------------------------------| ,---. |---------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /| RO|Shift | |Up | | 1| 2| 3|Ent|
|-----------------------------------------------------------| ,-----------. |-----------| |
| Ctrl| |漢字 | MHEN | Space | HENK | ひら | 前面| | Ctrl| |Lef|Dow|Rig| | 0| .| |
`-----' `---------------------------------------' `-----' `-----------' `---------------'
,---. ,-----------------------------------------------. ,-----------.
| 76| | 05| 06| 04| 0C| 03| 0B| 83| 0A| 01| 09| 78| 07| |+7C| 7E|+77|
`---' `-----------------------------------------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
|-62| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55|-5D| 66| |*70|*6C|*7D| |-7C|*4A|*41| 7B|
|-----------------------------------------------------------| |-----------| |---------------|
| 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D|-0E|-54| | |*71|*69|*7A| | 6C| 75| 7D| |
|------------------------------------------------------` | `-----------' |-----------| 79|
| 58 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52|-5B| 5A | | 6B| 73| 74| |
|-----------------------------------------------------------| ,---. |---------------|
| 12 | 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 51| 59 | |*75| | 69| 72| 7A| |
|-----------------------------------------------------------| ,-----------. |-----------|*5A|
| 14 | | -13 | 67 | 29 | 64 | *11 | 11 | | *14 | |*6B|*72|*74| | 70| 71| |
`-----' `---------------------------------------' `-----' `-----------' `---------------'
*: E0 prefixed
+: Special scan code sequence
-: 5576 specific
Speculation from 5576-001 CS82h and Quckey! translation table.
Mapping after translation by TMK IBMPC converter:
,---. ,---------------. ,---------------. ,---------------. ,-----------.
|Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
|-----------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | |Del|End|PgD| | 7| 8| 9| +|
|------------------------------------------------------`Entr| `-----------' |-----------| |
|CapsL | A| S| D| F| G| H| J| K| L| ;| '| \| | | 4| 5| 6| |
|-----------------------------------------------------------| ,---. |---------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /| RO|Shift | |Up | | 1| 2| 3|Ent|
|-----------------------------------------------------------| ,-----------. |-----------| |
| Ctrl| | LAlt| MHEN | Space | HENK | KANA| RAlt| | Ctrl| |Lef|Dow|Rig| | 0| .| |
`-----' `---------------------------------------' `-----' `-----------' `---------------'" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
<p>Quckey! Converter sets 82h Code Set and translates some of 5576-002/003 codes to normal Code Set 2 codes.</p>
<table role="table">
<thead>
<tr>
<th>5576 Code</th>
<th>5576 Key</th>
<th>CS2 Code</th>
<th>CS2 Key</th>
</tr>
</thead>
<tbody>
<tr>
<td>0E</td>
<td>@</td>
<td>54</td>
<td>[</td>
</tr>
<tr>
<td>11</td>
<td>前面キー</td>
<td>E0 11</td>
<td>RAlt</td>
</tr>
<tr>
<td>13</td>
<td>漢字 カタカナ</td>
<td>11</td>
<td>LAlt</td>
</tr>
<tr>
<td>54</td>
<td>[</td>
<td>5B</td>
<td>]</td>
</tr>
<tr>
<td>5B</td>
<td>]</td>
<td>5D</td>
<td>\</td>
</tr>
<tr>
<td>5C</td>
<td>???</td>
<td>6A</td>
<td>JPY</td>
</tr>
<tr>
<td>5D</td>
<td></td>
<td>6A</td>
<td>JPY</td>
</tr>
<tr>
<td>62</td>
<td>半角/全角</td>
<td>0E</td>
<td>`</td>
</tr>
<tr>
<td>7C</td>
<td>Keypad*</td>
<td>77</td>
<td>NumLock</td>
</tr>
<tr>
<td>E0 11</td>
<td>ひらがな</td>
<td>13</td>
<td>KANA</td>
</tr>
<tr>
<td>E0 41</td>
<td>Keypad,</td>
<td>7C</td>
<td>Keypad*</td>
</tr>
</tbody>
</table>
<ul>
<li><a href="http://www.soramimi.jp/quckey2/" rel="nofollow">http://www.soramimi.jp/quckey2/</a></li>
<li><a href="https://www.soramimi.jp/quckey/index.html" rel="nofollow">https://www.soramimi.jp/quckey/index.html</a></li>
</ul>
</details>
<h4>
<a id="user-content-5576-001" class="anchor" href="#5576-001" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>5576-001</h4>
<p>Code Set 82h is not useful for 5576-001, which is a terminal keyboard and works better with Code Set 3.</p>
<details><summary>Open</summary>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">5576-001 124-key Code Set 82h:
,---------------. ,---------------. ,---------------.
|^7C| 7E| 1F| 27| | 2F| 5E| 08| 10| | 50| 18| 17| 37|
|---------------- |---------------- |---------------|
| 05| 06| 04| 0C| | 03| 0B| 83| 0A| | 01| 09| 78| 07|
`---------------' `---------------' `---------------'
,-------. ,-----------------------------------------------------------. ,-----------. ,---------------.
| 5F| 48| | 76| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55| 5D| 66| |*7D|*69|*7A| | 7C|*4A|*41| 7B|
|-------| |-----------------------------------------------------------| |-----------| |---------------|
| 38|^77| | 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 0E| 54| | |*70|*71|*40| | 6C| 75| 7D| 79|
|-------| |------------------------------------------------------` | `-----------' |---------------|
| 30| 62| | 13 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52| 5B| 5A | |*75| | 6B| 73| 74| |
|-------| |-----------------------------------------------------------| ,-----------. |-----------| |
| 20| 28| | 12 | 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 51| 59 | |*6B|*6C|*74| | 69| 72| 7A|*5A|
|-------| |-----------------------------------------------------------| `-----------' |-----------| |
| 60| 14| | 11 | | 58 | 67 | 29 | 64 |*11 | |*14 | |*72| | 70| 71| |
`-------' `-----' `-----------------------------------' `-----' `---' `---------------'
*: E0 prefixed
^7C: rE0 r12 rE0 r7C rE0 rF0 r7C rE0 rF0 r12
^77: rE1 r14 r77 rE1 rF0 r14 rF0 r77
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value="5576-001 124-key Code Set 82h:
,---------------. ,---------------. ,---------------.
|^7C| 7E| 1F| 27| | 2F| 5E| 08| 10| | 50| 18| 17| 37|
|---------------- |---------------- |---------------|
| 05| 06| 04| 0C| | 03| 0B| 83| 0A| | 01| 09| 78| 07|
`---------------' `---------------' `---------------'
,-------. ,-----------------------------------------------------------. ,-----------. ,---------------.
| 5F| 48| | 76| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55| 5D| 66| |*7D|*69|*7A| | 7C|*4A|*41| 7B|
|-------| |-----------------------------------------------------------| |-----------| |---------------|
| 38|^77| | 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 0E| 54| | |*70|*71|*40| | 6C| 75| 7D| 79|
|-------| |------------------------------------------------------` | `-----------' |---------------|
| 30| 62| | 13 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52| 5B| 5A | |*75| | 6B| 73| 74| |
|-------| |-----------------------------------------------------------| ,-----------. |-----------| |
| 20| 28| | 12 | 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A| 51| 59 | |*6B|*6C|*74| | 69| 72| 7A|*5A|
|-------| |-----------------------------------------------------------| `-----------' |-----------| |
| 60| 14| | 11 | | 58 | 67 | 29 | 64 |*11 | |*14 | |*72| | 70| 71| |
`-------' `-----' `-----------------------------------' `-----' `---' `---------------'
*: E0 prefixed
^7C: rE0 r12 rE0 r7C rE0 rF0 r7C rE0 rF0 r12
^77: rE1 r14 r77 rE1 rF0 r14 rF0 r77" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
</details>
<p><a href="https://github.com/tmk/tmk_keyboard/issues/685#issuecomment-850855323">https://github.com/tmk/tmk_keyboard/issues/685#issuecomment-850855323</a></p>
<h3>
<a id="user-content-ibm-5576-code-set-3" class="anchor" href="#ibm-5576-code-set-3" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 5576 Code Set 3</h3>
<h4>
<a id="user-content-5576-001-1" class="anchor" href="#5576-001-1" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>5576-001</h4>
<details><summary>Open</summary>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">IBM 5576-001 124-key Code Set 3:
,---------------. ,---------------. ,---------------.
| 08| 10| 18| 20| | 28| 30| 38| 40| | 48| 50| 57| 5F|
|---------------- |---------------- |---------------|
| 07| 0F| 17| 1F| | 27| 2F| 37| 3F| | 47| 4F| 56| 5E|
`---------------' `---------------' `---------------'
,-------. ,-----------------------------------------------------------. ,-----------. ,---------------.
| 05| 06| | 0E| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55|+13| 66| | 67| 6E| 6F| |+7E| 77|+76| 84|
|-------| |-----------------------------------------------------------| |-----------| |---------------|
| 04| 0C| | 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B| | | 64| 65| 6D| | 6C| 75| 7D| 7C|
|-------| |------------------------------------------------------` | `-----------' |---------------|
| 03| 0B| | 14 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52| 53| 5A | | 63| | 6B| 73| 74| |
|-------| |-----------------------------------------------------------| ,-----------. |-----------| |
| 83| 0A| | 12 | 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A|+5C| 59 | | 61| 62| 6A| | 69| 72| 7A| 79|
|-------| |-----------------------------------------------------------| `-----------' |-----------| |
| 01| 09| | 11 | | 19 | 85 | 29 | 86 | 39 | | 58 | | 60| | 70| 71| |
`-------' `-----' `-----------------------------------' `-----' `---' `---------------'
+: different from IBM 122-key Terminal [5D-&gt;13, 51-&gt;5C, 76-&gt;7E, 7E-&gt;76]
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value="IBM 5576-001 124-key Code Set 3:
,---------------. ,---------------. ,---------------.
| 08| 10| 18| 20| | 28| 30| 38| 40| | 48| 50| 57| 5F|
|---------------- |---------------- |---------------|
| 07| 0F| 17| 1F| | 27| 2F| 37| 3F| | 47| 4F| 56| 5E|
`---------------' `---------------' `---------------'
,-------. ,-----------------------------------------------------------. ,-----------. ,---------------.
| 05| 06| | 0E| 16| 1E| 26| 25| 2E| 36| 3D| 3E| 46| 45| 4E| 55|+13| 66| | 67| 6E| 6F| |+7E| 77|+76| 84|
|-------| |-----------------------------------------------------------| |-----------| |---------------|
| 04| 0C| | 0D | 15| 1D| 24| 2D| 2C| 35| 3C| 43| 44| 4D| 54| 5B| | | 64| 65| 6D| | 6C| 75| 7D| 7C|
|-------| |------------------------------------------------------` | `-----------' |---------------|
| 03| 0B| | 14 | 1C| 1B| 23| 2B| 34| 33| 3B| 42| 4B| 4C| 52| 53| 5A | | 63| | 6B| 73| 74| |
|-------| |-----------------------------------------------------------| ,-----------. |-----------| |
| 83| 0A| | 12 | 1A| 22| 21| 2A| 32| 31| 3A| 41| 49| 4A|+5C| 59 | | 61| 62| 6A| | 69| 72| 7A| 79|
|-------| |-----------------------------------------------------------| `-----------' |-----------| |
| 01| 09| | 11 | | 19 | 85 | 29 | 86 | 39 | | 58 | | 60| | 70| 71| |
`-------' `-----' `-----------------------------------' `-----' `---' `---------------'
+: different from IBM 122-key Terminal [5D-&gt;13, 51-&gt;5C, 76-&gt;7E, 7E-&gt;76]" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
</details>
<p><a href="https://github.com/tmk/tmk_keyboard/issues/685#issuecomment-850761559">https://github.com/tmk/tmk_keyboard/issues/685#issuecomment-850761559</a></p>
<h2>
<a id="user-content-translation-to-set-1-of-i8042" class="anchor" href="#translation-to-set-1-of-i8042" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Translation to Set 1 of i8042</h2>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">|SC|00|01|02|03|04|05|06|07|08|09|0a|0b|0c|0d|0e|0f|
|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
|00|ff|43|41|3f|3d|3b|3c|58|64|44|42|40|3e|0f|29|59|
|10|65|38|2a|70|1d|10|02|5a|66|71|2c|1f|1e|11|03|5b|
|20|67|2e|2d|20|12|05|04|5c|68|39|2f|21|14|13|06|5d|
|30|69|31|30|23|22|15|07|5e|6a|72|32|24|16|08|09|5f|
|40|6b|33|25|17|18|0b|0a|60|6c|34|35|26|27|19|0c|61|
|50|6d|73|28|74|1a|0d|62|6e|3a|36|1c|1b|75|2b|63|76|
|60|55|56|77|78|79|7a|0e|7b|7c|4f|7d|4b|47|7e|7f|6f|
|70|52|53|50|4c|4d|48|01|45|57|4e|51|4a|37|49|46|54|
|80|--|--|--|41|54|--|--|--|--|--|--|--|--|--|--|--|
|90|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
|a0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
|b0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
|c0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
|d0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
|e0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
|f0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value="|SC|00|01|02|03|04|05|06|07|08|09|0a|0b|0c|0d|0e|0f|
|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
|00|ff|43|41|3f|3d|3b|3c|58|64|44|42|40|3e|0f|29|59|
|10|65|38|2a|70|1d|10|02|5a|66|71|2c|1f|1e|11|03|5b|
|20|67|2e|2d|20|12|05|04|5c|68|39|2f|21|14|13|06|5d|
|30|69|31|30|23|22|15|07|5e|6a|72|32|24|16|08|09|5f|
|40|6b|33|25|17|18|0b|0a|60|6c|34|35|26|27|19|0c|61|
|50|6d|73|28|74|1a|0d|62|6e|3a|36|1c|1b|75|2b|63|76|
|60|55|56|77|78|79|7a|0e|7b|7c|4f|7d|4b|47|7e|7f|6f|
|70|52|53|50|4c|4d|48|01|45|57|4e|51|4a|37|49|46|54|
|80|--|--|--|41|54|--|--|--|--|--|--|--|--|--|--|--|
|90|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
|a0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
|b0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
|c0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
|d0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
|e0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
|f0|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
<p><a href="https://www.win.tue.nl/~aeb/linux/kbd/scancodes-10.html#ss10.3" rel="nofollow">https://www.win.tue.nl/~aeb/linux/kbd/scancodes-10.html#ss10.3</a></p>
<p>Translation table is found at 0x0300 and 0x017F of keyboard controller 8042 ROM on IBM 5170(1983).</p>
<p><a href="http://www.halicery.com/8042/8042_1503033.TXT" rel="nofollow">http://www.halicery.com/8042/8042_1503033.TXT</a></p>
<p>0x7F(SysRq on Zenith Z-150 AT) and 0x84(SysRq on 84-key, Alt+PrtSc) of CS2 are translated into 0x54(Alt+PrtSc*) of CS1.
0x02(not used) and 0x83(F7) of CS2 are translated into 0x41(F7) of CS1.</p>
<p><a href="https://geekhack.org/index.php?topic=103648.msg2897404#msg2897404" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg2897404#msg2897404</a></p>
<details><summary>Open</summary>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">CS2 CS2 Key CS1 CS1 Key
-----------------------------------------------------------------------
00 Pause(TMK) ff ??
01 F9 43
02 F7(TMK) 41 F7
03 F5 3f
04 F3 3d
05 F1 3b
06 F2 3c
07 F12 58
08 F13 64
09 F10 44
0a F8 42
0b F6 40
0c F4 3e
0d Tab 0f
0e ` ~ 29
0f Keypad = 59
10 F14 65
11 Left Alt 38
12 Left Shift 2a
13 Katakana/Hiragana 70 Kana(TMK)
14 Left Control 1d
15 q Q 10
16 1 ! 02
17 LGui(TMK) 5a LGui(TMK)
18 F15 66
19 RCtrl(TMK) 71 Insert(TMK)
1a z Z 2c
1b s S 1f
1c a A 1e
1d w W 11
1e 2 @ 03
1f RGui(TMK) 5b RGui(TMK)
20 F16 67
21 c C 2e
22 x X 2d
23 d D 20
24 e E 12
25 4 $ 05
26 3 # 04
27 (PC9800 Keypad , ) 5c
28 F17 68
29 Space 39
2a v V 2f
2b f F 21
2c t T 14
2d r R 13
2e 5 % 06
2f Home(TMK) 5d Mute(TMK)
30 F18 69
31 n N 31
32 b B 30
33 h H 23
34 g G 22
35 y Y 15
36 6 ^ 07
37 Delete(TMK) 5e VolDown(TMK)
38 F19 6a
39 Insert(TMK) 72 Delete(TMK)
3a m M 32
3b j J 24
3c u U 16
3d 7 &amp; 08
3e 8 * 09
3f Down(TMK) 5f VolUp(TMK)
40 F20 6b
41 , &lt; 33
42 k K 25
43 i I 17
44 o O 18
45 0 ) 0b
46 9 ( 0a
47 Right(TMK) 60 Up(TMK)
48 F21 6c
49 . &gt; 34
4a / ? 35
4b l L 26
4c ; : 27
4d p P 19
4e - _ 0c
4f Up(TMK) 61 Left(TMK)
50 F22 6d
51 ろ (Ro) 73
52 ' " 28
53 Left(TMK) 74 Home(TMK)
54 [ { 1a
55 = + 0d
56 PageDown(TMK) 62 Down(TMK)
57 F23 6e F23(TMK)
58 Caps Lock 3a
59 Right Shift 36
5a Return 1c
5b ] } 1b
5c End(TMK) 75 End(TMK)
5d \ | (or Europe 1) 2b
5e PageUp(TMK) 63 Right(TMK)
5f F24 (or 半角/全角) 76
60 Keypad /(TMK) 55 Pause(TMK)
61 Europe 2 (Note 2) 56
62 Keypad Enter(TMK) 77 PageUp(TMK)
63 Keypad =(TMK) 78 PageDown(TMK)
64 変換(Henkan) 79 Henkan(TMK)
65 VolDown(TMK) 7a RCtrl(TMK)
66 Backspace 0e
67 無変変(Muhenkan) 7b Muhenkan(TMK)
68 Non-US #(TMK) 7c RAlt(TMK)
69 Keypad 1 End 4f
6a ¥ (Yen) 7d JYEN(TMK)
6b Keypad 4 Left 4b
6c Keypad 7 Home 47
6d Keypad , 7e
6e VolUp(TMK) 7f Keypad /(TMK)
6f Mute(TMK) 6f Keypad Enter(TMK)
70 Keypad 0 Insert 52
71 Keypad . Delete 53
72 Keypad 2 Down 50
73 Keypad 5 4c
74 Keypad 6 Right 4d
75 Keypad 8 Up 48
76 Escape 01
77 Num Lock 45
78 F11 57
79 Keypad + 4e
7a Keypad 3 PageDn 51
7b Keypad - 4a
7c Keypad * 37
7d Keypad 9 PageUp 49
7e Scroll Lock 46
7f PrintScreen(TMK) 54 PrintScreen(TMK)
80 ?? --
81 ?? --
82 ?? --
83 F7 41 F7(TMK), 83(CS1)
84 SysReq(AT 84-key) 54 PrintScreen(TMK)
CS1 CS1 Key CS2 CS2 Key
-----------------------------------------------------------------------
01 76 Escape
02 16 1 !
03 1e 2 @
04 26 3 #
05 25 4 $
06 2e 5 %
07 36 6 ^
08 3d 7 &amp;
09 3e 8 *
0a 46 9 (
0b 45 0 )
0c 4e - _
0d 55 = +
0e 66 Backspace
0f 0d Tab
10 15 q Q
11 1d w W
12 24 e E
13 2d r R
14 2c t T
15 35 y Y
16 3c u U
17 43 i I
18 44 o O
19 4d p P
1a 54 [ {
1b 5b ] }
1c 5a Return
1d 14 Left Control
1e 1c a A
1f 1b s S
20 23 d D
21 2b f F
22 34 g G
23 33 h H
24 3b j J
25 42 k K
26 4b l L
27 4c ; :
28 52 ' "
29 0e ` ~
2a 12 Left Shift
2b 5d \ | (or Europe 1)
2c 1a z Z
2d 22 x X
2e 21 c C
2f 2a v V
30 32 b B
31 31 n N
32 3a m M
33 41 , &lt;
34 49 . &gt;
35 4a / ?
36 59 Right Shift
37 Keypad * 7c Keypad *
38 11 Left Alt
39 29 Space
3a 58 Caps Lock
3b F1 05 F1
3c F2 06 F2
3d F3 04 F3
3e F4 0c F4
3f F5 03 F5
40 F6 0b F6
41 F7 02 F7(TMK)
41 F7(TMK), 83(CS1) 83 F7
42 0a F8
43 01 F9
44 09 F10
45 77 Num Lock
46 7e Scroll Lock
47 6c Keypad 7 Home
48 75 Keypad 8 Up
49 7d Keypad 9 PageUp
4a 7b Keypad -
4b 6b Keypad 4 Left
4c 73 Keypad 5
4d 74 Keypad 6 Right
4e 79 Keypad +
4f 69 Keypad 1 End
50 72 Keypad 2 Down
51 7a Keypad 3 PageDn
52 70 Keypad 0 Insert
53 71 Keypad . Delete
54 PrintScreen(TMK) 7f PrintScreen(TMK)
54 PrintScreen(TMK) 84 SysReq(AT 84-key)
55 Pause(TMK) 60 Keypad /(TMK)
56 NUBS(TMK) 61 Europe 2 (Note 2) NUBS
57 F11(TMK) 78 F11
58 F12(TMK) 07 F12
59 Keypad =(TMK) 0f Keypad =
5a LGui(TMK) 17 LGui(TMK)
5b RGui(TMK) 1f RGui(TMK)
5c App(TMK) 27 (PC9800 Keypad , ) App(TMK)
5d Mute(TMK) 2f Home(TMK)
5e VolDown(TMK) 37 Delete(TMK)
5f VolUp(TMK) 3f Down(TMK)
60 Up(TMK) 47 Right(TMK)
61 Left(TMK) 4f Up(TMK)
62 Down(TMK) 56 PageDown(TMK)
63 Right(TMK) 5e PageUp(TMK)
64 F13(TMK) 08 F13
65 F14(TMK) 10 F14
66 F15(TMK) 18 F15
67 F16(TMK) 20 F16
68 F17(TMK) 28 F17
69 F18(TMK) 30 F18
6a F19(TMK) 38 F19
6b F20(TMK) 40 F20
6c F21(TMK) 48 F21
6d F22(TMK) 50 F22
6e F23(TMK) 57 F23
6f Keypad Enter(TMK) 6f Mute(TMK)
70 Kana(TMK) 13 Katakana/Hiragana
71 Insert(TMK) 19 RCtrl(TMK)
72 Delete(TMK) 39 Insert(TMK)
73 Ro(TK) 51 ろ (Ro)
74 Home(TMK) 53 Left(TMK)
75 End(TMK) 5c End(TMK)
76 F24(TMK) 5f F24 (or 半角/全角)
77 PageUp(TMK) 62 Keypad Enter(TMK)
78 PageDown(TMK) 63 Keypad =(TMK)
79 Henkan(TMK) 64 変換(Henkan)
7a RCtrl(TMK) 65 VolDown(TMK)
7b Muhenkan(TMK) 67 無変変(Muhenkan)
7c RAlt(TMK) 68 Non-US #(TMK)
7d JYEN(TMK) 6a ¥ (Yen)
7e Keypad ,(TMK) 6d Keypad ,
7f Keypad /(TMK) 6e VolUp(TMK)
-- 80 ??
-- 81 ??
-- 82 ??
ff ?? 00 Pause(TMK)
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value="CS2 CS2 Key CS1 CS1 Key
-----------------------------------------------------------------------
00 Pause(TMK) ff ??
01 F9 43
02 F7(TMK) 41 F7
03 F5 3f
04 F3 3d
05 F1 3b
06 F2 3c
07 F12 58
08 F13 64
09 F10 44
0a F8 42
0b F6 40
0c F4 3e
0d Tab 0f
0e ` ~ 29
0f Keypad = 59
10 F14 65
11 Left Alt 38
12 Left Shift 2a
13 Katakana/Hiragana 70 Kana(TMK)
14 Left Control 1d
15 q Q 10
16 1 ! 02
17 LGui(TMK) 5a LGui(TMK)
18 F15 66
19 RCtrl(TMK) 71 Insert(TMK)
1a z Z 2c
1b s S 1f
1c a A 1e
1d w W 11
1e 2 @ 03
1f RGui(TMK) 5b RGui(TMK)
20 F16 67
21 c C 2e
22 x X 2d
23 d D 20
24 e E 12
25 4 $ 05
26 3 # 04
27 (PC9800 Keypad , ) 5c
28 F17 68
29 Space 39
2a v V 2f
2b f F 21
2c t T 14
2d r R 13
2e 5 % 06
2f Home(TMK) 5d Mute(TMK)
30 F18 69
31 n N 31
32 b B 30
33 h H 23
34 g G 22
35 y Y 15
36 6 ^ 07
37 Delete(TMK) 5e VolDown(TMK)
38 F19 6a
39 Insert(TMK) 72 Delete(TMK)
3a m M 32
3b j J 24
3c u U 16
3d 7 &amp; 08
3e 8 * 09
3f Down(TMK) 5f VolUp(TMK)
40 F20 6b
41 , &lt; 33
42 k K 25
43 i I 17
44 o O 18
45 0 ) 0b
46 9 ( 0a
47 Right(TMK) 60 Up(TMK)
48 F21 6c
49 . &gt; 34
4a / ? 35
4b l L 26
4c ; : 27
4d p P 19
4e - _ 0c
4f Up(TMK) 61 Left(TMK)
50 F22 6d
51 ろ (Ro) 73
52 ' &quot; 28
53 Left(TMK) 74 Home(TMK)
54 [ { 1a
55 = + 0d
56 PageDown(TMK) 62 Down(TMK)
57 F23 6e F23(TMK)
58 Caps Lock 3a
59 Right Shift 36
5a Return 1c
5b ] } 1b
5c End(TMK) 75 End(TMK)
5d \ | (or Europe 1) 2b
5e PageUp(TMK) 63 Right(TMK)
5f F24 (or 半角/全角) 76
60 Keypad /(TMK) 55 Pause(TMK)
61 Europe 2 (Note 2) 56
62 Keypad Enter(TMK) 77 PageUp(TMK)
63 Keypad =(TMK) 78 PageDown(TMK)
64 変換(Henkan) 79 Henkan(TMK)
65 VolDown(TMK) 7a RCtrl(TMK)
66 Backspace 0e
67 無変変(Muhenkan) 7b Muhenkan(TMK)
68 Non-US #(TMK) 7c RAlt(TMK)
69 Keypad 1 End 4f
6a ¥ (Yen) 7d JYEN(TMK)
6b Keypad 4 Left 4b
6c Keypad 7 Home 47
6d Keypad , 7e
6e VolUp(TMK) 7f Keypad /(TMK)
6f Mute(TMK) 6f Keypad Enter(TMK)
70 Keypad 0 Insert 52
71 Keypad . Delete 53
72 Keypad 2 Down 50
73 Keypad 5 4c
74 Keypad 6 Right 4d
75 Keypad 8 Up 48
76 Escape 01
77 Num Lock 45
78 F11 57
79 Keypad + 4e
7a Keypad 3 PageDn 51
7b Keypad - 4a
7c Keypad * 37
7d Keypad 9 PageUp 49
7e Scroll Lock 46
7f PrintScreen(TMK) 54 PrintScreen(TMK)
80 ?? --
81 ?? --
82 ?? --
83 F7 41 F7(TMK), 83(CS1)
84 SysReq(AT 84-key) 54 PrintScreen(TMK)
CS1 CS1 Key CS2 CS2 Key
-----------------------------------------------------------------------
01 76 Escape
02 16 1 !
03 1e 2 @
04 26 3 #
05 25 4 $
06 2e 5 %
07 36 6 ^
08 3d 7 &amp;
09 3e 8 *
0a 46 9 (
0b 45 0 )
0c 4e - _
0d 55 = +
0e 66 Backspace
0f 0d Tab
10 15 q Q
11 1d w W
12 24 e E
13 2d r R
14 2c t T
15 35 y Y
16 3c u U
17 43 i I
18 44 o O
19 4d p P
1a 54 [ {
1b 5b ] }
1c 5a Return
1d 14 Left Control
1e 1c a A
1f 1b s S
20 23 d D
21 2b f F
22 34 g G
23 33 h H
24 3b j J
25 42 k K
26 4b l L
27 4c ; :
28 52 ' &quot;
29 0e ` ~
2a 12 Left Shift
2b 5d \ | (or Europe 1)
2c 1a z Z
2d 22 x X
2e 21 c C
2f 2a v V
30 32 b B
31 31 n N
32 3a m M
33 41 , &lt;
34 49 . &gt;
35 4a / ?
36 59 Right Shift
37 Keypad * 7c Keypad *
38 11 Left Alt
39 29 Space
3a 58 Caps Lock
3b F1 05 F1
3c F2 06 F2
3d F3 04 F3
3e F4 0c F4
3f F5 03 F5
40 F6 0b F6
41 F7 02 F7(TMK)
41 F7(TMK), 83(CS1) 83 F7
42 0a F8
43 01 F9
44 09 F10
45 77 Num Lock
46 7e Scroll Lock
47 6c Keypad 7 Home
48 75 Keypad 8 Up
49 7d Keypad 9 PageUp
4a 7b Keypad -
4b 6b Keypad 4 Left
4c 73 Keypad 5
4d 74 Keypad 6 Right
4e 79 Keypad +
4f 69 Keypad 1 End
50 72 Keypad 2 Down
51 7a Keypad 3 PageDn
52 70 Keypad 0 Insert
53 71 Keypad . Delete
54 PrintScreen(TMK) 7f PrintScreen(TMK)
54 PrintScreen(TMK) 84 SysReq(AT 84-key)
55 Pause(TMK) 60 Keypad /(TMK)
56 NUBS(TMK) 61 Europe 2 (Note 2) NUBS
57 F11(TMK) 78 F11
58 F12(TMK) 07 F12
59 Keypad =(TMK) 0f Keypad =
5a LGui(TMK) 17 LGui(TMK)
5b RGui(TMK) 1f RGui(TMK)
5c App(TMK) 27 (PC9800 Keypad , ) App(TMK)
5d Mute(TMK) 2f Home(TMK)
5e VolDown(TMK) 37 Delete(TMK)
5f VolUp(TMK) 3f Down(TMK)
60 Up(TMK) 47 Right(TMK)
61 Left(TMK) 4f Up(TMK)
62 Down(TMK) 56 PageDown(TMK)
63 Right(TMK) 5e PageUp(TMK)
64 F13(TMK) 08 F13
65 F14(TMK) 10 F14
66 F15(TMK) 18 F15
67 F16(TMK) 20 F16
68 F17(TMK) 28 F17
69 F18(TMK) 30 F18
6a F19(TMK) 38 F19
6b F20(TMK) 40 F20
6c F21(TMK) 48 F21
6d F22(TMK) 50 F22
6e F23(TMK) 57 F23
6f Keypad Enter(TMK) 6f Mute(TMK)
70 Kana(TMK) 13 Katakana/Hiragana
71 Insert(TMK) 19 RCtrl(TMK)
72 Delete(TMK) 39 Insert(TMK)
73 Ro(TK) 51 ろ (Ro)
74 Home(TMK) 53 Left(TMK)
75 End(TMK) 5c End(TMK)
76 F24(TMK) 5f F24 (or 半角/全角)
77 PageUp(TMK) 62 Keypad Enter(TMK)
78 PageDown(TMK) 63 Keypad =(TMK)
79 Henkan(TMK) 64 変換(Henkan)
7a RCtrl(TMK) 65 VolDown(TMK)
7b Muhenkan(TMK) 67 無変変(Muhenkan)
7c RAlt(TMK) 68 Non-US #(TMK)
7d JYEN(TMK) 6a ¥ (Yen)
7e Keypad ,(TMK) 6d Keypad ,
7f Keypad /(TMK) 6e VolUp(TMK)
-- 80 ??
-- 81 ??
-- 82 ??
ff ?? 00 Pause(TMK) " tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
</details>
<h2>
<a id="user-content-translation-to-hid-usages-of-microsoft" class="anchor" href="#translation-to-hid-usages-of-microsoft" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Translation to HID usages of Microsoft</h2>
<p>Scan code set 1 and 2 are also listed in <a href="https://web.archive.org/web/20090206085854/http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/translate.pdf" rel="nofollow">Scan Code Translation Table</a> of Microsoft.</p>
<details><summary>Open</summary>
<table role="table">
<thead>
<tr>
<th>Key Name</th>
<th>HID Usage</th>
<th>Page HID Usage ID</th>
<th>PS/2 Set 1 Make*</th>
<th>PS/2 Set 1 Break*</th>
<th>PS/2 Set 2 Make</th>
<th>PS/2 Set 2 Break</th>
</tr>
</thead>
<tbody>
<tr>
<td>System Power</td>
<td>01</td>
<td>81</td>
<td>E0 5E</td>
<td>E0 DE</td>
<td>E0 37</td>
<td>E0 F0 37</td>
</tr>
<tr>
<td>System Sleep</td>
<td>01</td>
<td>82</td>
<td>E0 5F</td>
<td>E0 DF</td>
<td>E0 3F</td>
<td>E0 F0 3F</td>
</tr>
<tr>
<td>System Wake</td>
<td>01</td>
<td>83</td>
<td>E0 63</td>
<td>E0 E3</td>
<td>E0 5E</td>
<td>E0 F0 5E</td>
</tr>
<tr>
<td>No Event</td>
<td>07</td>
<td>00</td>
<td>None</td>
<td>None</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>Overrun Error</td>
<td>07</td>
<td>01</td>
<td>FF</td>
<td>None</td>
<td>00</td>
<td>None</td>
</tr>
<tr>
<td>POST Fail</td>
<td>07</td>
<td>02</td>
<td>FC</td>
<td>None</td>
<td>FC</td>
<td>None</td>
</tr>
<tr>
<td>ErrorUndefined</td>
<td>07</td>
<td>03</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>a A</td>
<td>07</td>
<td>04</td>
<td>1E</td>
<td>9E</td>
<td>1C</td>
<td>F0 1C</td>
</tr>
<tr>
<td>b B</td>
<td>07</td>
<td>05</td>
<td>30</td>
<td>B0</td>
<td>32</td>
<td>F0 32</td>
</tr>
<tr>
<td>c C</td>
<td>07</td>
<td>06</td>
<td>2E</td>
<td>AE</td>
<td>21</td>
<td>F0 21</td>
</tr>
<tr>
<td>d D</td>
<td>07</td>
<td>07</td>
<td>20</td>
<td>A0</td>
<td>23</td>
<td>F0 23</td>
</tr>
<tr>
<td>e E</td>
<td>07</td>
<td>08</td>
<td>12</td>
<td>92</td>
<td>24</td>
<td>F0 24</td>
</tr>
<tr>
<td>f F</td>
<td>07</td>
<td>09</td>
<td>21</td>
<td>A1</td>
<td>2B</td>
<td>F0 2B</td>
</tr>
<tr>
<td>g G</td>
<td>07</td>
<td>0A</td>
<td>22</td>
<td>A2</td>
<td>34</td>
<td>F0 34</td>
</tr>
<tr>
<td>h H</td>
<td>07</td>
<td>0B</td>
<td>23</td>
<td>A3</td>
<td>33</td>
<td>F0 33</td>
</tr>
<tr>
<td>i I</td>
<td>07</td>
<td>0C</td>
<td>17</td>
<td>97</td>
<td>43</td>
<td>F0 43</td>
</tr>
<tr>
<td>j J</td>
<td>07</td>
<td>0D</td>
<td>24</td>
<td>A4</td>
<td>3B</td>
<td>F0 3B</td>
</tr>
<tr>
<td>k K</td>
<td>07</td>
<td>0E</td>
<td>25</td>
<td>A5</td>
<td>42</td>
<td>F0 42</td>
</tr>
<tr>
<td>l L</td>
<td>07</td>
<td>0F</td>
<td>26</td>
<td>A6</td>
<td>4B</td>
<td>F0 4B</td>
</tr>
<tr>
<td>m M</td>
<td>07</td>
<td>10</td>
<td>32</td>
<td>B2</td>
<td>3A</td>
<td>F0 3A</td>
</tr>
<tr>
<td>n N</td>
<td>07</td>
<td>11</td>
<td>31</td>
<td>B1</td>
<td>31</td>
<td>F0 31</td>
</tr>
<tr>
<td>o O</td>
<td>07</td>
<td>12</td>
<td>18</td>
<td>98</td>
<td>44</td>
<td>F0 44</td>
</tr>
<tr>
<td>p P</td>
<td>07</td>
<td>13</td>
<td>19</td>
<td>99</td>
<td>4D</td>
<td>F0 4D</td>
</tr>
<tr>
<td>q Q</td>
<td>07</td>
<td>14</td>
<td>10</td>
<td>90</td>
<td>15</td>
<td>F0 15</td>
</tr>
<tr>
<td>r R</td>
<td>07</td>
<td>15</td>
<td>13</td>
<td>93</td>
<td>2D</td>
<td>F0 2D</td>
</tr>
<tr>
<td>s S</td>
<td>07</td>
<td>16</td>
<td>1F</td>
<td>9F</td>
<td>1B</td>
<td>F0 1B</td>
</tr>
<tr>
<td>t T</td>
<td>07</td>
<td>17</td>
<td>14</td>
<td>94</td>
<td>2C</td>
<td>F0 2C</td>
</tr>
<tr>
<td>u U</td>
<td>07</td>
<td>18</td>
<td>16</td>
<td>96</td>
<td>3C</td>
<td>F0 3C</td>
</tr>
<tr>
<td>v V</td>
<td>07</td>
<td>19</td>
<td>2F</td>
<td>AF</td>
<td>2A</td>
<td>F0 2A</td>
</tr>
<tr>
<td>w W</td>
<td>07</td>
<td>1A</td>
<td>11</td>
<td>91</td>
<td>1D</td>
<td>F0 1D</td>
</tr>
<tr>
<td>x X</td>
<td>07</td>
<td>1B</td>
<td>2D</td>
<td>AD</td>
<td>22</td>
<td>F0 22</td>
</tr>
<tr>
<td>y Y</td>
<td>07</td>
<td>1C</td>
<td>15</td>
<td>95</td>
<td>35</td>
<td>F0 35</td>
</tr>
<tr>
<td>z Z</td>
<td>07</td>
<td>1D</td>
<td>2C</td>
<td>AC</td>
<td>1A</td>
<td>F0 1A</td>
</tr>
<tr>
<td>1 !</td>
<td>07</td>
<td>1E</td>
<td>02</td>
<td>82</td>
<td>16</td>
<td>F0 16</td>
</tr>
<tr>
<td>2 @</td>
<td>07</td>
<td>1F</td>
<td>03</td>
<td>83</td>
<td>1E</td>
<td>F0 1E</td>
</tr>
<tr>
<td>3 #</td>
<td>07</td>
<td>20</td>
<td>04</td>
<td>84</td>
<td>26</td>
<td>F0 26</td>
</tr>
<tr>
<td>4 $</td>
<td>07</td>
<td>21</td>
<td>05</td>
<td>85</td>
<td>25</td>
<td>F0 25</td>
</tr>
<tr>
<td>5 %</td>
<td>07</td>
<td>22</td>
<td>06</td>
<td>86</td>
<td>2E</td>
<td>F0 2E</td>
</tr>
<tr>
<td>6 ^</td>
<td>07</td>
<td>23</td>
<td>07</td>
<td>87</td>
<td>36</td>
<td>F0 36</td>
</tr>
<tr>
<td>7 &amp;</td>
<td>07</td>
<td>24</td>
<td>08</td>
<td>88</td>
<td>3D</td>
<td>F0 3D</td>
</tr>
<tr>
<td>8 *</td>
<td>07</td>
<td>25</td>
<td>09</td>
<td>89</td>
<td>3E</td>
<td>F0 3E</td>
</tr>
<tr>
<td>9 (</td>
<td>07</td>
<td>26</td>
<td>0A</td>
<td>8A</td>
<td>46</td>
<td>F0 46</td>
</tr>
<tr>
<td>0 )</td>
<td>07</td>
<td>27</td>
<td>0B</td>
<td>8B</td>
<td>45</td>
<td>F0 45</td>
</tr>
<tr>
<td>Return</td>
<td>07</td>
<td>28</td>
<td>1C</td>
<td>9C</td>
<td>5A</td>
<td>F0 5A</td>
</tr>
<tr>
<td>Escape</td>
<td>07</td>
<td>29</td>
<td>01</td>
<td>81</td>
<td>76</td>
<td>F0 76</td>
</tr>
<tr>
<td>Backspace</td>
<td>07</td>
<td>2A</td>
<td>0E</td>
<td>8E</td>
<td>66</td>
<td>F0 66</td>
</tr>
<tr>
<td>Tab</td>
<td>07</td>
<td>2B</td>
<td>0F</td>
<td>8F</td>
<td>0D</td>
<td>F0 0D</td>
</tr>
<tr>
<td>Space</td>
<td>07</td>
<td>2C</td>
<td>39</td>
<td>B9</td>
<td>29</td>
<td>F0 29</td>
</tr>
<tr>
<td>- _</td>
<td>07</td>
<td>2D</td>
<td>0C</td>
<td>8C</td>
<td>4E</td>
<td>F0 4E</td>
</tr>
<tr>
<td>= +</td>
<td>07</td>
<td>2E</td>
<td>0D</td>
<td>8D</td>
<td>55</td>
<td>F0 55</td>
</tr>
<tr>
<td>[ {</td>
<td>07</td>
<td>2F</td>
<td>1A</td>
<td>9A</td>
<td>54</td>
<td>F0 54</td>
</tr>
<tr>
<td>] }</td>
<td>07</td>
<td>30</td>
<td>1B</td>
<td>9B</td>
<td>5B</td>
<td>F0 5B</td>
</tr>
<tr>
<td>\</td>
<td></td>
<td>07</td>
<td>31</td>
<td>2B</td>
<td>AB</td>
<td>5D</td>
</tr>
<tr>
<td>Europe 1 (Note 2)</td>
<td>07</td>
<td>32</td>
<td>2B</td>
<td>AB</td>
<td>5D</td>
<td>F0 5D</td>
</tr>
<tr>
<td>; :</td>
<td>07</td>
<td>33</td>
<td>27</td>
<td>A7</td>
<td>4C</td>
<td>F0 4C</td>
</tr>
<tr>
<td>' "</td>
<td>07</td>
<td>34</td>
<td>28</td>
<td>A8</td>
<td>52</td>
<td>F0 52</td>
</tr>
<tr>
<td>` ~</td>
<td>07</td>
<td>35</td>
<td>29</td>
<td>A9</td>
<td>0E</td>
<td>F0 0E</td>
</tr>
<tr>
<td>, &lt;</td>
<td>07</td>
<td>36</td>
<td>33</td>
<td>B3</td>
<td>41</td>
<td>F0 41</td>
</tr>
<tr>
<td>. &gt;</td>
<td>07</td>
<td>37</td>
<td>34</td>
<td>B4</td>
<td>49</td>
<td>F0 49</td>
</tr>
<tr>
<td>/ ?</td>
<td>07</td>
<td>38</td>
<td>35</td>
<td>B5</td>
<td>4A</td>
<td>F0 4A</td>
</tr>
<tr>
<td>Caps Lock</td>
<td>07</td>
<td>39</td>
<td>3A</td>
<td>BA</td>
<td>58</td>
<td>F0 58</td>
</tr>
<tr>
<td>F1</td>
<td>07</td>
<td>3A</td>
<td>3B</td>
<td>BB</td>
<td>05</td>
<td>F0 05</td>
</tr>
<tr>
<td>F2</td>
<td>07</td>
<td>3B</td>
<td>3C</td>
<td>BC</td>
<td>06</td>
<td>F0 06</td>
</tr>
<tr>
<td>F3</td>
<td>07</td>
<td>3C</td>
<td>3D</td>
<td>BD</td>
<td>04</td>
<td>F0 04</td>
</tr>
<tr>
<td>F4</td>
<td>07</td>
<td>3D</td>
<td>3E</td>
<td>BE</td>
<td>0C</td>
<td>F0 0C</td>
</tr>
<tr>
<td>F5</td>
<td>07</td>
<td>3E</td>
<td>3F</td>
<td>BF</td>
<td>03</td>
<td>F0 03</td>
</tr>
<tr>
<td>F6</td>
<td>07</td>
<td>3F</td>
<td>40</td>
<td>C0</td>
<td>0B</td>
<td>F0 0B</td>
</tr>
<tr>
<td>F7</td>
<td>07</td>
<td>40</td>
<td>41</td>
<td>C1</td>
<td>83</td>
<td>F0 83</td>
</tr>
<tr>
<td>F8</td>
<td>07</td>
<td>41</td>
<td>42</td>
<td>C2</td>
<td>0A</td>
<td>F0 0A</td>
</tr>
<tr>
<td>F9</td>
<td>07</td>
<td>42</td>
<td>43</td>
<td>C3</td>
<td>01</td>
<td>F0 01</td>
</tr>
<tr>
<td>F10</td>
<td>07</td>
<td>43</td>
<td>44</td>
<td>C4</td>
<td>09</td>
<td>F0 09</td>
</tr>
<tr>
<td>F11</td>
<td>07</td>
<td>44</td>
<td>57</td>
<td>D7</td>
<td>78</td>
<td>F0 78</td>
</tr>
<tr>
<td>F12</td>
<td>07</td>
<td>45</td>
<td>58</td>
<td>D8</td>
<td>07</td>
<td>F0 07</td>
</tr>
<tr>
<td>Print Screen (Note 1)</td>
<td>07</td>
<td>46</td>
<td>E0 37</td>
<td>E0 B7</td>
<td>E0 7C</td>
<td>E0 F0 7C</td>
</tr>
<tr>
<td>Scroll Lock</td>
<td>07</td>
<td>47</td>
<td>46</td>
<td>C6</td>
<td>7E</td>
<td>F0 7E</td>
</tr>
<tr>
<td>Break (Ctrl-Pause)</td>
<td>07</td>
<td>48</td>
<td>E0 46 E0 C6</td>
<td>None</td>
<td>E0 7E E0 F0 7E</td>
<td>None</td>
</tr>
<tr>
<td>Pause</td>
<td>07</td>
<td>48</td>
<td>E1 1D 45 E1 9D C5</td>
<td>None</td>
<td>E1 14 77 E1 F0 14 F0</td>
<td>77 None</td>
</tr>
<tr>
<td>Insert (Note 1)</td>
<td>07</td>
<td>49</td>
<td>E0 52</td>
<td>E0 D2</td>
<td>E0 70</td>
<td>E0 F0 70</td>
</tr>
<tr>
<td>Home (Note 1)</td>
<td>07</td>
<td>4A</td>
<td>E0 47</td>
<td>E0 C7</td>
<td>E0 6C</td>
<td>E0 F0 6C</td>
</tr>
<tr>
<td>Page Up (Note 1)</td>
<td>07</td>
<td>4B</td>
<td>E0 49</td>
<td>E0 C9</td>
<td>E0 7D</td>
<td>E0 F0 7D</td>
</tr>
<tr>
<td>Delete (Note 1)</td>
<td>07</td>
<td>4C</td>
<td>E0 53</td>
<td>E0 D3</td>
<td>E0 71</td>
<td>E0 F0 71</td>
</tr>
<tr>
<td>End (Note 1)</td>
<td>07</td>
<td>4D</td>
<td>E0 4F</td>
<td>E0 CF</td>
<td>E0 69</td>
<td>E0 F0 69</td>
</tr>
<tr>
<td>Page Down (Note 1)</td>
<td>07</td>
<td>4E</td>
<td>E0 51</td>
<td>E0 D1</td>
<td>E0 7A</td>
<td>E0 F0 7A</td>
</tr>
<tr>
<td>Right Arrow (Note 1)</td>
<td>07</td>
<td>4F</td>
<td>E0 4D</td>
<td>E0 CD</td>
<td>E0 74</td>
<td>E0 F0 74</td>
</tr>
<tr>
<td>Left Arrow (Note 1)</td>
<td>07</td>
<td>50</td>
<td>E0 4B</td>
<td>E0 CB</td>
<td>E0 6B</td>
<td>E0 F0 6B</td>
</tr>
<tr>
<td>Down Arrow (Note 1)</td>
<td>07</td>
<td>51</td>
<td>E0 50</td>
<td>E0 D0</td>
<td>E0 72</td>
<td>E0 F0 72</td>
</tr>
<tr>
<td>Up Arrow (Note 1)</td>
<td>07</td>
<td>52</td>
<td>E0 48</td>
<td>E0 C8</td>
<td>E0 75</td>
<td>E0 F0 75</td>
</tr>
<tr>
<td>Num Lock</td>
<td>07</td>
<td>53</td>
<td>45</td>
<td>C5</td>
<td>77</td>
<td>F0 77</td>
</tr>
<tr>
<td>Keypad / (Note 1)</td>
<td>07</td>
<td>54</td>
<td>E0 35</td>
<td>E0 B5</td>
<td>E0 4A</td>
<td>E0 F0 4A</td>
</tr>
<tr>
<td>Keypad *</td>
<td>07</td>
<td>55</td>
<td>37</td>
<td>B7</td>
<td>7C</td>
<td>F0 7C</td>
</tr>
<tr>
<td>Keypad -</td>
<td>07</td>
<td>56</td>
<td>4A</td>
<td>CA</td>
<td>7B</td>
<td>F0 7B</td>
</tr>
<tr>
<td>Keypad +</td>
<td>07</td>
<td>57</td>
<td>4E</td>
<td>CE</td>
<td>79</td>
<td>F0 79</td>
</tr>
<tr>
<td>Keypad Enter</td>
<td>07</td>
<td>58</td>
<td>E0 1C</td>
<td>E0 9C</td>
<td>E0 5A</td>
<td>E0 F0 5A</td>
</tr>
<tr>
<td>Keypad 1 End</td>
<td>07</td>
<td>59</td>
<td>4F</td>
<td>CF</td>
<td>69</td>
<td>F0 69</td>
</tr>
<tr>
<td>Keypad 2 Down</td>
<td>07</td>
<td>5A</td>
<td>50</td>
<td>D0</td>
<td>72</td>
<td>F0 72</td>
</tr>
<tr>
<td>Keypad 3 PageDn</td>
<td>07</td>
<td>5B</td>
<td>51</td>
<td>D1</td>
<td>7A</td>
<td>F0 7A</td>
</tr>
<tr>
<td>Keypad 4 Left</td>
<td>07</td>
<td>5C</td>
<td>4B</td>
<td>CB</td>
<td>6B</td>
<td>F0 6B</td>
</tr>
<tr>
<td>Keypad 5</td>
<td>07</td>
<td>5D</td>
<td>4C</td>
<td>CC</td>
<td>73</td>
<td>F0 73</td>
</tr>
<tr>
<td>Keypad 6 Right</td>
<td>07</td>
<td>5E</td>
<td>4D</td>
<td>CD</td>
<td>74</td>
<td>F0 74</td>
</tr>
<tr>
<td>Keypad 7 Home</td>
<td>07</td>
<td>5F</td>
<td>47</td>
<td>C7</td>
<td>6C</td>
<td>F0 6C</td>
</tr>
<tr>
<td>Keypad 8 Up</td>
<td>07</td>
<td>60</td>
<td>48</td>
<td>C8</td>
<td>75</td>
<td>F0 75</td>
</tr>
<tr>
<td>Keypad 9 PageUp</td>
<td>07</td>
<td>61</td>
<td>49</td>
<td>C9</td>
<td>7D</td>
<td>F0 7D</td>
</tr>
<tr>
<td>Keypad 0 Insert</td>
<td>07</td>
<td>62</td>
<td>52</td>
<td>D2</td>
<td>70</td>
<td>F0 70</td>
</tr>
<tr>
<td>Keypad . Delete</td>
<td>07</td>
<td>63</td>
<td>53</td>
<td>D3</td>
<td>71</td>
<td>F0 71</td>
</tr>
<tr>
<td>Europe 2 (Note 2)</td>
<td>07</td>
<td>64</td>
<td>56</td>
<td>D6</td>
<td>61</td>
<td>F0 61</td>
</tr>
<tr>
<td>App</td>
<td>07</td>
<td>65</td>
<td>E0 5D</td>
<td>E0 DD</td>
<td>E0 2F</td>
<td>E0 F0 2F</td>
</tr>
<tr>
<td>Keyboard Power</td>
<td>07</td>
<td>66</td>
<td>E0 5E</td>
<td>E0 DE</td>
<td>E0 37</td>
<td>E0 F0 37</td>
</tr>
<tr>
<td>Keypad =</td>
<td>07</td>
<td>67</td>
<td>59</td>
<td>D9</td>
<td>0F</td>
<td>F0 0F</td>
</tr>
<tr>
<td>F13</td>
<td>07</td>
<td>68</td>
<td>64</td>
<td>E4</td>
<td>08</td>
<td>F0 08</td>
</tr>
<tr>
<td>F14</td>
<td>07</td>
<td>69</td>
<td>65</td>
<td>E5</td>
<td>10</td>
<td>F0 10</td>
</tr>
<tr>
<td>F15</td>
<td>07</td>
<td>6A</td>
<td>66</td>
<td>E6</td>
<td>18</td>
<td>F0 18</td>
</tr>
<tr>
<td>F16</td>
<td>07</td>
<td>6B</td>
<td>67</td>
<td>E7</td>
<td>20</td>
<td>F0 20</td>
</tr>
<tr>
<td>F17</td>
<td>07</td>
<td>6C</td>
<td>68</td>
<td>E8</td>
<td>28</td>
<td>F0 28</td>
</tr>
<tr>
<td>F18</td>
<td>07</td>
<td>6D</td>
<td>69</td>
<td>E9</td>
<td>30</td>
<td>F0 30</td>
</tr>
<tr>
<td>F19</td>
<td>07</td>
<td>6E</td>
<td>6A</td>
<td>EA</td>
<td>38</td>
<td>F0 38</td>
</tr>
<tr>
<td>F20</td>
<td>07</td>
<td>6F</td>
<td>6B</td>
<td>EB</td>
<td>40</td>
<td>F0 40</td>
</tr>
<tr>
<td>F21</td>
<td>07</td>
<td>70</td>
<td>6C</td>
<td>EC</td>
<td>48</td>
<td>F0 48</td>
</tr>
<tr>
<td>F22</td>
<td>07</td>
<td>71</td>
<td>6D</td>
<td>ED</td>
<td>50</td>
<td>F0 50</td>
</tr>
<tr>
<td>F23</td>
<td>07</td>
<td>72</td>
<td>6E</td>
<td>EE</td>
<td>57</td>
<td>F0 57</td>
</tr>
<tr>
<td>F24</td>
<td>07</td>
<td>73</td>
<td>76</td>
<td>F6</td>
<td>5F</td>
<td>F0 5F</td>
</tr>
<tr>
<td>Keyboard Execute</td>
<td>07</td>
<td>74</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Help</td>
<td>07</td>
<td>75</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Menu</td>
<td>07</td>
<td>76</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Select</td>
<td>07</td>
<td>77</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Stop</td>
<td>07</td>
<td>78</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Again</td>
<td>07</td>
<td>79</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Undo</td>
<td>07</td>
<td>7A</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Cut</td>
<td>07</td>
<td>7B</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Copy</td>
<td>07</td>
<td>7C</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Paste</td>
<td>07</td>
<td>7D</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Find</td>
<td>07</td>
<td>7E</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Mute</td>
<td>07</td>
<td>7F</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Volume Up</td>
<td>07</td>
<td>80</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Volume Dn</td>
<td>07</td>
<td>81</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Caps Lock</td>
<td>07</td>
<td>82</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Num Lock</td>
<td>07</td>
<td>83</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Scroll Lock</td>
<td>07</td>
<td>84</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keypad ,</td>
<td>07</td>
<td>85</td>
<td>7E</td>
<td>FE</td>
<td>6D</td>
<td>F0 6D</td>
</tr>
<tr>
<td>Keyboard Equal Sign</td>
<td>07</td>
<td>86</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>ろ (Ro)</td>
<td>07</td>
<td>87</td>
<td>73</td>
<td>F3</td>
<td>51</td>
<td>F0 51</td>
</tr>
<tr>
<td>Katakana/Hiragana</td>
<td>07</td>
<td>88</td>
<td>70</td>
<td>F0</td>
<td>13</td>
<td>F0 13</td>
</tr>
<tr>
<td>¥ (Yen)</td>
<td>07</td>
<td>89</td>
<td>7D</td>
<td>FD</td>
<td>6A</td>
<td>F0 6A</td>
</tr>
<tr>
<td>変換(Henkan)</td>
<td>07</td>
<td>8A</td>
<td>79</td>
<td>F9</td>
<td>64</td>
<td>F0 64</td>
</tr>
<tr>
<td>無変変(Muhenkan)</td>
<td>07</td>
<td>8B</td>
<td>7B</td>
<td>FB</td>
<td>67</td>
<td>F0 67</td>
</tr>
<tr>
<td>(PC9800 Keypad , )</td>
<td>07</td>
<td>8C</td>
<td>5C</td>
<td>DC</td>
<td>27</td>
<td>F0 27</td>
</tr>
<tr>
<td>Keyboard Int'l 7</td>
<td>07</td>
<td>8D</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Int'l 8</td>
<td>07</td>
<td>8E</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Int'l 9</td>
<td>07</td>
<td>8F</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>한옝/ (Hanguel/English)</td>
<td>07</td>
<td>90</td>
<td>F2</td>
<td>None</td>
<td>F2</td>
<td>None</td>
</tr>
<tr>
<td>한한 (Hanja)</td>
<td>07</td>
<td>91</td>
<td>F1</td>
<td>None</td>
<td>F1</td>
<td>None</td>
</tr>
<tr>
<td>かたかな (Katakana)</td>
<td>07</td>
<td>92</td>
<td>78</td>
<td>F8</td>
<td>63</td>
<td>F0 63</td>
</tr>
<tr>
<td>ひらがな (Hiragana)</td>
<td>07</td>
<td>93</td>
<td>77</td>
<td>F7</td>
<td>62</td>
<td>F0 62</td>
</tr>
<tr>
<td>半角/全角 (Zenkaku/Hankaku)</td>
<td>07</td>
<td>94</td>
<td>76</td>
<td>F6</td>
<td>5F</td>
<td>F0 5F</td>
</tr>
<tr>
<td>Keyboard Lang 6</td>
<td>07</td>
<td>95</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Lang 7</td>
<td>07</td>
<td>96</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Lang 8</td>
<td>07</td>
<td>97</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Lang 9</td>
<td>07</td>
<td>98</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Alternate Erase</td>
<td>07</td>
<td>99</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard SysReq/Attention</td>
<td>07</td>
<td>9A</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Cancel</td>
<td>07</td>
<td>9B</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Clear</td>
<td>07</td>
<td>9C</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Prior</td>
<td>07</td>
<td>9D</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Return</td>
<td>07</td>
<td>9E</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Separator</td>
<td>07</td>
<td>9F</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Out</td>
<td>07</td>
<td>A0</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Oper</td>
<td>07</td>
<td>A1</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard Clear/Again</td>
<td>07</td>
<td>A2</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard CrSel/Props</td>
<td>07</td>
<td>A3</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Keyboard ExSel</td>
<td>07</td>
<td>A4</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>RESERVED</td>
<td>07</td>
<td>A5-DF</td>
<td>RESERVED</td>
<td>RESERVED</td>
<td>RESERVED</td>
<td>RESERVED</td>
</tr>
<tr>
<td>Left Control</td>
<td>07</td>
<td>E0</td>
<td>1D</td>
<td>9D</td>
<td>14</td>
<td>F0 14</td>
</tr>
<tr>
<td>Left Shift</td>
<td>07</td>
<td>E1</td>
<td>2A</td>
<td>AA</td>
<td>12</td>
<td>F0 12</td>
</tr>
<tr>
<td>Left Alt</td>
<td>07</td>
<td>E2</td>
<td>38</td>
<td>B8</td>
<td>11</td>
<td>F0 11</td>
</tr>
<tr>
<td>Left GUI</td>
<td>07</td>
<td>E3</td>
<td>E0 5B</td>
<td>E0 DB</td>
<td>E0 1F</td>
<td>E0 F0 1F</td>
</tr>
<tr>
<td>Right Control</td>
<td>07</td>
<td>E4</td>
<td>E0 1D</td>
<td>E0 9D</td>
<td>E0 14</td>
<td>E0 F0 14</td>
</tr>
<tr>
<td>Right Shift</td>
<td>07</td>
<td>E5</td>
<td>36</td>
<td>B6</td>
<td>59</td>
<td>F0 59</td>
</tr>
<tr>
<td>Right Alt</td>
<td>07</td>
<td>E6</td>
<td>E0 38</td>
<td>E0 B8</td>
<td>E0 11</td>
<td>E0 F0 11</td>
</tr>
<tr>
<td>Right GUI</td>
<td>07</td>
<td>E7</td>
<td>E0 5C</td>
<td>E0 DC</td>
<td>E0 27</td>
<td>E0 F0 27</td>
</tr>
<tr>
<td>RESERVED</td>
<td>07</td>
<td>E8-FFFF</td>
<td>RESERVED</td>
<td>RESERVED</td>
<td>RESERVED</td>
<td>RESERVED</td>
</tr>
<tr>
<td>Scan Next Track</td>
<td>0C</td>
<td>00B5</td>
<td>E0 19</td>
<td>E0 99</td>
<td>E0 4D</td>
<td>E0 F0 4D</td>
</tr>
<tr>
<td>Scan Previous Track</td>
<td>0C</td>
<td>00B6</td>
<td>E0 10</td>
<td>E0 90</td>
<td>E0 15</td>
<td>E0 F0 15</td>
</tr>
<tr>
<td>Stop</td>
<td>0C</td>
<td>00B7</td>
<td>E0 24</td>
<td>E0 A4</td>
<td>E0 3B</td>
<td>E0 F0 3B</td>
</tr>
<tr>
<td>Play/ Pause</td>
<td>0C</td>
<td>00CD</td>
<td>E0 22</td>
<td>E0 A2</td>
<td>E0 34</td>
<td>E0 F0 34</td>
</tr>
<tr>
<td>Mute</td>
<td>0C</td>
<td>00E2</td>
<td>E0 20</td>
<td>E0 A0</td>
<td>E0 23</td>
<td>E0 F0 23</td>
</tr>
<tr>
<td>Bass Boost</td>
<td>0C</td>
<td>00E5</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Loudness</td>
<td>0C</td>
<td>00E7</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Volume Up</td>
<td>0C</td>
<td>00E9</td>
<td>E0 30 E0 B0 E0 32 E0</td>
<td>F0 32</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Volume Down</td>
<td>0C</td>
<td>00EA</td>
<td>E0 2E E0 AE E0 21 E0</td>
<td>F0 21</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Bass Up</td>
<td>0C</td>
<td>0152</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Bass Down</td>
<td>0C</td>
<td>0153</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Treble Up</td>
<td>0C</td>
<td>0154</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Treble Down</td>
<td>0C</td>
<td>0155</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
</tr>
<tr>
<td>Media Select</td>
<td>0C</td>
<td>0183</td>
<td>E0 6D</td>
<td>E0 ED</td>
<td>E0 50</td>
<td>E0 F0 50</td>
</tr>
<tr>
<td>Mail</td>
<td>0C</td>
<td>018A</td>
<td>E0 6C</td>
<td>E0 EC</td>
<td>E0 48</td>
<td>E0 F0 48</td>
</tr>
<tr>
<td>Calculator</td>
<td>0C</td>
<td>0192</td>
<td>E0 21</td>
<td>E0 A1</td>
<td>E0 2B</td>
<td>E0 F0 2B</td>
</tr>
<tr>
<td>My Computer</td>
<td>0C</td>
<td>0194</td>
<td>E0 6B</td>
<td>E0 EB</td>
<td>E0 40</td>
<td>E0 F0 40</td>
</tr>
<tr>
<td>WWW Search</td>
<td>0C</td>
<td>0221</td>
<td>E0 65</td>
<td>E0 E5</td>
<td>E0 10</td>
<td>E0 F0 10</td>
</tr>
<tr>
<td>WWW Home</td>
<td>0C</td>
<td>0223</td>
<td>E0 32</td>
<td>E0 B2</td>
<td>E0 3A</td>
<td>E0 F0 3A</td>
</tr>
<tr>
<td>WWW Back</td>
<td>0C</td>
<td>0224</td>
<td>E0 6A</td>
<td>E0 EA</td>
<td>E0 38</td>
<td>E0 F0 38</td>
</tr>
<tr>
<td>WWW Forward</td>
<td>0C</td>
<td>0225</td>
<td>E0 69</td>
<td>E0 E9</td>
<td>E0 30</td>
<td>E0 F0 30</td>
</tr>
<tr>
<td>WWW Stop</td>
<td>0C</td>
<td>0226</td>
<td>E0 68</td>
<td>E0 E8</td>
<td>E0 28</td>
<td>E0 F0 28</td>
</tr>
<tr>
<td>WWW Refresh</td>
<td>0C</td>
<td>0227</td>
<td>E0 67</td>
<td>E0 E7</td>
<td>E0 20</td>
<td>E0 F0 20</td>
</tr>
<tr>
<td>WWW Favorites</td>
<td>0C</td>
<td>022A</td>
<td>E0 66</td>
<td>E0 E6</td>
<td>E0 18</td>
<td>E0 F0 18</td>
</tr>
<tr>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>00</td>
<td>80</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
</tr>
<tr>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>60</td>
<td>E0</td>
<td>47</td>
<td>F0 47</td>
</tr>
<tr>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>61</td>
<td>E1</td>
<td>4F</td>
<td>F0 4F</td>
</tr>
<tr>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>7A</td>
<td>FA</td>
<td>65</td>
<td>F0 65</td>
</tr>
<tr>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>7C</td>
<td>FC</td>
<td>68</td>
<td>F0 68</td>
</tr>
<tr>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>7F</td>
<td>FF</td>
<td>6E</td>
<td>F0 6E</td>
</tr>
<tr>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>E0 60</td>
<td>E0 E0</td>
<td>E0 47</td>
<td>E0 F0 47</td>
</tr>
<tr>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>E0 61</td>
<td>E0 E1</td>
<td>E0 4F</td>
<td>E0 F0 4F</td>
</tr>
<tr>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>E0 7A</td>
<td>E0 FA</td>
<td>E0 65</td>
<td>E0 F0 65</td>
</tr>
<tr>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>E0 7B</td>
<td>E0 FB</td>
<td>E0 67</td>
<td>E0 F0 67</td>
</tr>
<tr>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>E0 7C</td>
<td>E0 FC</td>
<td>E0 68</td>
<td>E0 F0 68</td>
</tr>
<tr>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>E0 7D</td>
<td>E0 FD</td>
<td>E0 6A</td>
<td>E0 F0 6A</td>
</tr>
<tr>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>E0 7E</td>
<td>E0 FE</td>
<td>E0 6D</td>
<td>E0 F0 6D</td>
</tr>
<tr>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>DO NOT USE</td>
<td>E0 7F</td>
<td>E0 FF</td>
<td>E0 6E</td>
<td>E0 F0 6E</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>54</td>
<td>D4</td>
<td>7F</td>
<td>F0 7F</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>54</td>
<td>D4</td>
<td>84</td>
<td>F0 84</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>55</td>
<td>D5</td>
<td>60</td>
<td>F0 60</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>5A</td>
<td>DA</td>
<td>17</td>
<td>F0 17</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>5B</td>
<td>DB</td>
<td>1F</td>
<td>F0 1F</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>62</td>
<td>E2</td>
<td>56</td>
<td>F0 56</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>63</td>
<td>E3</td>
<td>5E</td>
<td>F0 5E</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>64</td>
<td>E4</td>
<td>08</td>
<td>F0 08</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>65</td>
<td>E5</td>
<td>10</td>
<td>F0 10</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>66</td>
<td>E6</td>
<td>18</td>
<td>F0 18</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>67</td>
<td>E7</td>
<td>20</td>
<td>F0 20</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>68</td>
<td>E8</td>
<td>28</td>
<td>F0 28</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>69</td>
<td>E9</td>
<td>30</td>
<td>F0 30</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>6A</td>
<td>EA</td>
<td>38</td>
<td>F0 38</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>6B</td>
<td>EB</td>
<td>40</td>
<td>F0 40</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>6C</td>
<td>EC</td>
<td>48</td>
<td>F0 48</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>6D</td>
<td>ED</td>
<td>50</td>
<td>F0 50</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>6E</td>
<td>EE</td>
<td>57</td>
<td>F0 57</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>6F</td>
<td>EF</td>
<td>6F</td>
<td>F0 6F</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>71</td>
<td>F1</td>
<td>19</td>
<td>F0 19</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>72</td>
<td>F2</td>
<td>39</td>
<td>F0 39</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>74</td>
<td>F4</td>
<td>53</td>
<td>F0 53</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>75</td>
<td>F5</td>
<td>5C</td>
<td>F0 5C</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 01</td>
<td>E0 81</td>
<td>E0 76</td>
<td>E0 F0 76</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 02</td>
<td>E0 82</td>
<td>E0 16</td>
<td>E0 F0 16</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 03</td>
<td>E0 83</td>
<td>E0 1E</td>
<td>E0 F0 1E</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 04</td>
<td>E0 84</td>
<td>E0 26</td>
<td>E0 F0 26</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 05</td>
<td>E0 85</td>
<td>E0 25</td>
<td>E0 F0 25</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 06</td>
<td>E0 86</td>
<td>E0 2E</td>
<td>E0 F0 2E</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 07</td>
<td>E0 87</td>
<td>E0 36</td>
<td>E0 F0 36</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 08</td>
<td>E0 88</td>
<td>E0 3D</td>
<td>E0 F0 3D</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 09</td>
<td>E0 89</td>
<td>E0 3E</td>
<td>E0 F0 3E</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 0A</td>
<td>E0 0A</td>
<td>E0 46</td>
<td>E0 F0 46</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 0B</td>
<td>E0 0B</td>
<td>E0 45</td>
<td>E0 F0 45</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 0C</td>
<td>E0 0C</td>
<td>E0 4E</td>
<td>E0 F0 4E</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 0D</td>
<td>E0 0D</td>
<td>E0 55</td>
<td>E0 F0 55</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 0E</td>
<td>E0 0E</td>
<td>E0 66</td>
<td>E0 F0 66</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 0F</td>
<td>E0 0F</td>
<td>E0 0D</td>
<td>E0 F0 0D</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 11</td>
<td>E0 91</td>
<td>E0 1D</td>
<td>E0 F0 1D</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 12</td>
<td>E0 92</td>
<td>E0 24</td>
<td>E0 F0 24</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 13</td>
<td>E0 93</td>
<td>E0 2D</td>
<td>E0 F0 2D</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 14</td>
<td>E0 94</td>
<td>E0 2C</td>
<td>E0 F0 2C</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 15</td>
<td>E0 95</td>
<td>E0 35</td>
<td>E0 F0 35</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 16</td>
<td>E0 96</td>
<td>E0 3C</td>
<td>E0 F0 3C</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 17</td>
<td>E0 97</td>
<td>E0 43</td>
<td>E0 F0 43</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 18</td>
<td>E0 98</td>
<td>E0 44</td>
<td>E0 F0 44</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 1A</td>
<td>E0 9A</td>
<td>E0 54</td>
<td>E0 F0 54</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 1B</td>
<td>E0 9B</td>
<td>E0 5B</td>
<td>E0 F0 5B</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 1E</td>
<td>E0 9E</td>
<td>E0 1C</td>
<td>E0 F0 1C</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 1F</td>
<td>E0 9F</td>
<td>E0 1B</td>
<td>E0 F0 1B</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 23</td>
<td>E0 A3</td>
<td>E0 33</td>
<td>E0 F0 33</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 25</td>
<td>E0 A5</td>
<td>E0 42</td>
<td>E0 F0 42</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 26</td>
<td>E0 A6</td>
<td>E0 4B</td>
<td>E0 F0 4B</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 27</td>
<td>E0 A7</td>
<td>E0 4C</td>
<td>E0 F0 4C</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 28</td>
<td>E0 A8</td>
<td>E0 52</td>
<td>E0 F0 52</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 29</td>
<td>E0 A9</td>
<td>E0 0E</td>
<td>E0 F0 0E</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 2A</td>
<td>E0 AA</td>
<td>E0 12</td>
<td>E0 F0 12</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 2B</td>
<td>E0 AB</td>
<td>E0 5D</td>
<td>E0 F0 5D</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 2C</td>
<td>E0 AC</td>
<td>E0 1A</td>
<td>E0 F0 1A</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 2D</td>
<td>E0 AD</td>
<td>E0 22</td>
<td>E0 F0 22</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 2F</td>
<td>E0 AF</td>
<td>E0 2A</td>
<td>E0 F0 2A</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 31</td>
<td>E0 B1</td>
<td>E0 31</td>
<td>E0 F0 31</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 33</td>
<td>E0 B3</td>
<td>E0 41</td>
<td>E0 F0 41</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 34</td>
<td>E0 B4</td>
<td>E0 49</td>
<td>E0 F0 49</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 36</td>
<td>E0 B6</td>
<td>E0 59</td>
<td>E0 F0 59</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 39</td>
<td>E0 B9</td>
<td>E0 29</td>
<td>E0 F0 29</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 3A</td>
<td>E0 BA</td>
<td>E0 58</td>
<td>E0 F0 58</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 3B</td>
<td>E0 BB</td>
<td>E0 05</td>
<td>E0 F0 05</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 3C</td>
<td>E0 BC</td>
<td>E0 06</td>
<td>E0 F0 06</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 3D</td>
<td>E0 BD</td>
<td>E0 04</td>
<td>E0 F0 04</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 3E</td>
<td>E0 BE</td>
<td>E0 0C</td>
<td>E0 F0 0C</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 3F</td>
<td>E0 BF</td>
<td>E0 03</td>
<td>E0 F0 03</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 40</td>
<td>E0 C0</td>
<td>E0 0B</td>
<td>E0 F0 0B</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 41</td>
<td>E0 C1</td>
<td>E0 02</td>
<td>E0 F0 02</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 42</td>
<td>E0 C2</td>
<td>E0 83</td>
<td>E0 F0 83</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 43</td>
<td>E0 C3</td>
<td>E0 0A</td>
<td>E0 F0 0A</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 44</td>
<td>E0 C4</td>
<td>E0 01</td>
<td>E0 F0 01</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 45</td>
<td>E0 C5</td>
<td>E0 09</td>
<td>E0 F0 09</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 4A</td>
<td>E0 CA</td>
<td>E0 7B</td>
<td>E0 F0 7B</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 4C</td>
<td>E0 CC</td>
<td>E0 73</td>
<td>E0 F0 73</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 4E</td>
<td>E0 CE</td>
<td>E0 79</td>
<td>E0 F0 79</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 54</td>
<td>E0 D4</td>
<td>E0 7F</td>
<td>E0 F0 7F</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 54</td>
<td>E0 D4</td>
<td>E0 84</td>
<td>E0 F0 84</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 55</td>
<td>E0 D5</td>
<td>E0 60</td>
<td>E0 F0 60</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 56</td>
<td>E0 D6</td>
<td>E0 61</td>
<td>E0 F0 61</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 57</td>
<td>E0 D7</td>
<td>E0 78</td>
<td>E0 F0 78</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 58</td>
<td>E0 D8</td>
<td>E0 07</td>
<td>E0 F0 07</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 59</td>
<td>E0 D9</td>
<td>E0 0F</td>
<td>E0 F0 0F</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 5A</td>
<td>E0 DA</td>
<td>E0 17</td>
<td>E0 F0 17</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 62</td>
<td>E0 E2</td>
<td>E0 56</td>
<td>E0 F0 56</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 64</td>
<td>E0 E4</td>
<td>E0 08</td>
<td>E0 F0 08</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 6E</td>
<td>E0 EE</td>
<td>E0 57</td>
<td>E0 F0 57</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 6F</td>
<td>E0 EF</td>
<td>E0 6F</td>
<td>E0 F0 6F</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 70</td>
<td>E0 F0</td>
<td>E0 13</td>
<td>E0 F0 13</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 71</td>
<td>E0 F1</td>
<td>E0 19</td>
<td>E0 F0 19</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 72</td>
<td>E0 F2</td>
<td>E0 39</td>
<td>E0 F0 39</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 73</td>
<td>E0 F3</td>
<td>E0 51</td>
<td>E0 F0 51</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 74</td>
<td>E0 F4</td>
<td>E0 53</td>
<td>E0 F0 53</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 75</td>
<td>E0 F5</td>
<td>E0 5C</td>
<td>E0 F0 5C</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 76</td>
<td>E0 F6</td>
<td>E0 5F</td>
<td>E0 F0 5F</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 77</td>
<td>E0 F7</td>
<td>E0 62</td>
<td>E0 F0 62</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 78</td>
<td>E0 F8</td>
<td>E0 63</td>
<td>E0 F0 63</td>
</tr>
<tr>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>UNASSIGNED</td>
<td>E0 79</td>
<td>E0 F9</td>
<td>E0 64</td>
<td>E0 F0 64</td>
</tr>
</tbody>
</table>
</details>
<h2>
<a id="user-content-special-key-combo" class="anchor" href="#special-key-combo" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Special Key Combo</h2>
<p>These key combos are interpreted as special function on PC/AT and <a href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-XT-Keyboard-Protocol#scan-code-special-handling">PC/XT</a> computer(BIOS).</p>
<ul>
<li>Ctrl+Alt+Delete -&gt; System Reset</li>
<li>Ctrl+NumLock -&gt; Pause</li>
<li>Ctrl+ScrollLock -&gt; Break</li>
<li>Shift+PrtSc/* -&gt; Print Screen</li>
<li>Alt+PrtSc/* -&gt; System Request?</li>
</ul>
<p>p.4-24 <a href="http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf" rel="nofollow">http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf</a>
p.5-19 <a href="http://bitsavers.org/pdf/ibm/pc/at/1502494_PC_AT_Technical_Reference_Mar84.pdf" rel="nofollow">http://bitsavers.org/pdf/ibm/pc/at/1502494_PC_AT_Technical_Reference_Mar84.pdf</a></p>
<p>TMK converter doesn't recognize the combos, interprets them just as normal key sequence.</p>
<h1>
<a id="user-content-interface" class="anchor" href="#interface" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Interface</h1>
<h2>
<a id="user-content-connector" class="anchor" href="#connector" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Connector</h2>
<h3>
<a id="user-content-at---din-5p-180-sdl" class="anchor" href="#at---din-5p-180-sdl" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>AT - DIN 5P 180°, SDL</h3>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f692e696d6775722e636f6d2f754279596762762e706e.png" alt="" data-canonical-src="https://i.imgur.com/uByYgbv.png?1"></p>
<p>p.188 of <a href="http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf" rel="nofollow">http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf</a></p>
<h3>
<a id="user-content-ps2---mini-din-6p" class="anchor" href="#ps2---mini-din-6p" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>PS/2 - Mini-DIN 6P</h3>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f692e696d6775722e636f6d2f307644345949762e706e.png" alt="" data-canonical-src="https://i.imgur.com/0vD4YIv.png"></p>
<p>(Mini-DIN 6P Socket)
<a href="http://www.mcamafia.de/pdf/ibm_hitrc07.pdf" rel="nofollow">http://www.mcamafia.de/pdf/ibm_hitrc07.pdf</a></p>
<h3>
<a id="user-content-terminal---din-5p-240-rj45-8p5c" class="anchor" href="#terminal---din-5p-240-rj45-8p5c" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Terminal - DIN 5P 240°, RJ45 8P5C</h3>
<ul>
<li>
<a href="http://www.seasip.info/VintagePC/ibm_1390876.html" rel="nofollow">http://www.seasip.info/VintagePC/ibm_1390876.html</a> (DIN 5P Plug)</li>
<li>
<a href="http://www.kbdbabel.org/conn/kbd_connector_ibm3179_318x_319x.png" rel="nofollow">http://www.kbdbabel.org/conn/kbd_connector_ibm3179_318x_319x.png</a> (DIN 5P Socket)</li>
<li>
<a href="http://www.kbdbabel.org/conn/kbd_connector_ibmterm.png" rel="nofollow">http://www.kbdbabel.org/conn/kbd_connector_ibmterm.png</a> (RJ45 Socket)</li>
</ul>
<h2>
<a id="user-content-host-side-schematics" class="anchor" href="#host-side-schematics" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Host side schematics</h2>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f692e696d6775722e636f6d2f6858345955544e2e706e.png" alt="" data-canonical-src="https://i.imgur.com/hX4YUTN.png">
p.111 of <a href="http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf" rel="nofollow">http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf</a></p>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f692e696d6775722e636f6d2f786d764761447a2e706e.png" alt="" data-canonical-src="https://i.imgur.com/xmvGaDz.png"></p>
<p>p.132 of <a href="http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf" rel="nofollow">http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf</a></p>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f692e696d6775722e636f6d2f3458625376336f2e706e.png" alt="" data-canonical-src="https://i.imgur.com/4XbSv3o.png"></p>
<p>p.95 of <a href="http://bitsavers.org/pdf/ibm/pc/at/1502494_PC_AT_Technical_Reference_Mar84.pdf" rel="nofollow">http://bitsavers.org/pdf/ibm/pc/at/1502494_PC_AT_Technical_Reference_Mar84.pdf</a></p>
<h3>
<a id="user-content-i8042" class="anchor" href="#i8042" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>i8042</h3>
<p>PC/AT 8042 seems to support XT keyboard when bit 5 of CMD(@$20) is on.(0115:)
The bit can be written by host with 60 'Write Command Byte' command.
Meanwhile, PS/2 8042 doesn't support XT keyboard, it doesn't check bit 5 of CMD byte.</p>
<p><a href="http://halicery.com/8042/8042_1503033.TXT" rel="nofollow">http://halicery.com/8042/8042_1503033.TXT</a></p>
<h2>
<a id="user-content-keyboard-side-schematics" class="anchor" href="#keyboard-side-schematics" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Keyboard side schematics</h2>
<h3>
<a id="user-content-101-key" class="anchor" href="#101-key" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>101-key</h3>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f692e696d6775722e636f6d2f34374b734c534c2e706e.png" alt="" data-canonical-src="https://i.imgur.com/47KsLSL.png">
p.233 of <a href="http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf" rel="nofollow">http://bitsavers.org/pdf/ibm/pc/at/6183355_PC_AT_Technical_Reference_Mar86.pdf</a></p>
<h3>
<a id="user-content-84-key" class="anchor" href="#84-key" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>84-key</h3>
<p><img src="IBM%20PC%20AT%20Keyboard%20Protocol%20%C2%B7%20tmk_tmk_keyboard%20Wiki_files/68747470733a2f2f692e696d6775722e636f6d2f78714277794d642e706e.png" alt="" data-canonical-src="https://i.imgur.com/xqBwyMd.png">
<a href="http://www.kbdbabel.org/schematic/kbdbabel_doc_ibmat_kbd.pdf" rel="nofollow">http://www.kbdbabel.org/schematic/kbdbabel_doc_ibmat_kbd.pdf</a></p>
<h1>
<a id="user-content-atxt-auto-switch" class="anchor" href="#atxt-auto-switch" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>AT/XT Auto-Switch</h1>
<p><a href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-Keyboard-Converter#atxt-auto-switching">https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-Keyboard-Converter#atxt-auto-switching</a></p>
<h1>
<a id="user-content-weirdness" class="anchor" href="#weirdness" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Weirdness</h1>
<h2>
<a id="user-content-incompatibilities-of-zenith-z-150-at" class="anchor" href="#incompatibilities-of-zenith-z-150-at" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Incompatibilities of Zenith Z-150 AT</h2>
<p>It seems that the keybaord came with Zenith Z-240 AT compatible computer.</p>
<ul>
<li><a href="https://deskthority.net/wiki/Zenith_Z-150" rel="nofollow">https://deskthority.net/wiki/Zenith_Z-150</a></li>
<li><a href="https://www.1000bit.it/js/web/viewer.html?file=%2Fad%2Fbro%2Fzenith%2Fzenithpc-z248col%2Epdf" rel="nofollow">https://www.1000bit.it/js/web/viewer.html?file=%2Fad%2Fbro%2Fzenith%2Fzenithpc-z248col%2Epdf</a></li>
</ul>
<p>This keyboard is sometimes referred as 'white badge' or 'beige' due
to its enclosure and it's compatibility with AT protocol seems to be
very bad. It works somewhat with some converter or PS/2 port on PC while
not at all with others.</p>
<p>See <a href="https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#zenith-z-150-beige">wafeform</a> above. It is obviously violation of IBM AT protocol signal.</p>
<p>TMK IBMPC Converter can support the keyboard including Lock indicators as of 2021-10.</p>
<details><summary>Open</summary>
<h3>
<a id="user-content-tmk-ibmpc-converter" class="anchor" href="#tmk-ibmpc-converter" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>TMK IBMPC Converter</h3>
<p>The converter can read scan code from the keyboard without stop bit
check but it fails to send commands when lock indicator is updated.</p>
<ul>
<li><a href="https://deskthority.net/viewtopic.php?f=2&amp;t=25160" rel="nofollow">https://deskthority.net/viewtopic.php?f=2&amp;t=25160</a></li>
<li><a href="https://geekhack.org/index.php?topic=103648.msg2896146#msg2896146" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg2896146#msg2896146</a></li>
<li><a href="https://geekhack.org/index.php?topic=103648.msg2896196#msg2896196" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg2896196#msg2896196</a></li>
<li>IBMPC: Send Command - Zenith Z-150 AT beige: <a href="https://github.com/tmk/tmk_keyboard/issues/661">https://github.com/tmk/tmk_keyboard/issues/661</a>
</li>
</ul>
<h4>
<a id="user-content-send-command" class="anchor" href="#send-command" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Send command</h4>
<p>Z-150 AT has start bit error(ERR:11) sometimes and requires some retries. Root cause of the error is unclear.</p>
<p><a href="https://github.com/tmk/tmk_keyboard/commit/67d37ef7b312ccd40e8e82c0cb1444b36b3fbcd9">https://github.com/tmk/tmk_keyboard/commit/67d37ef7b312ccd40e8e82c0cb1444b36b3fbcd9</a></p>
<h3>
<a id="user-content-lock-indicators" class="anchor" href="#lock-indicators" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Lock Indicators</h3>
<p>It <del>seems to</del> accept 'ED' command from some computer, LEDs
can be controlled normally from host. But TMK converter and most of PS/2
ports fails to send 'Set Indicator' commands.</p>
<blockquote>
<p>The lock keys of a separate keyboard do indeed turn on the corresponding indicator LED of the Zenith when connected to the HP.</p>
</blockquote>
<p><a href="https://geekhack.org/index.php?topic=103648.msg2896728#msg2896728" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg2896728#msg2896728</a></p>
<blockquote>
<p>Over native ps/2 the lock lights will similarly fail to register with
rapid presses and causes a reset.
The only difference I see compared to with the converter is that the
board does a "softer reset" such that the beeper on/off state is not
changed.</p>
</blockquote>
<p><a href="https://geekhack.org/index.php?topic=103648.msg3050259#msg3050259" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg3050259#msg3050259</a></p>
<h3>
<a id="user-content-monoprice-ps2-converter" class="anchor" href="#monoprice-ps2-converter" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Monoprice PS/2 Converter</h3>
<p><a href="http://www.newegg.com/Product/Product.aspx?Item=9SIA8SV3807929" rel="nofollow">http://www.newegg.com/Product/Product.aspx?Item=9SIA8SV3807929</a></p>
<blockquote>
<p>I have a beige-label, which is the AT model. It works fine with the
linked PS/2 -&gt; USB converter, after a DIN -&gt; PS/2 converter as
well of course. I can try to find the DIN -&gt; PS/2 converter online if
that matters, it looks very generic.
The only issue I've run into is that the F7 key only works over PS/2,
the USB converter seems to prevent that specific key from being sent
(the internal buzzer still beeps when it is pressed, the PC just never
recieves the code).
I have tried a BlueCube and it doesn't work at all, strangely enough.</p>
</blockquote>
<p><a href="https://deskthority.net/viewtopic.php?p=293309#p293309" rel="nofollow">https://deskthority.net/viewtopic.php?p=293309#p293309</a></p>
<p>Another witness:
Monprice converter works with the Z-150 but it doesn't control lock indicators and doesn't handle F7 key but others.</p>
<p><a href="https://geekhack.org/index.php?topic=103648.msg2900928#msg2900928" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg2900928#msg2900928</a></p>
<p>Yet another: F7(0x83) issue
<a href="https://geekhack.org/index.php?topic=79453.0" rel="nofollow">https://geekhack.org/index.php?topic=79453.0</a></p>
<h3>
<a id="user-content-belkin-one" class="anchor" href="#belkin-one" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Belkin one</h3>
<p>This works but has F7(0x83) issue as well.</p>
<p><a href="https://geekhack.org/index.php?topic=79453.msg2048467#msg2048467" rel="nofollow">https://geekhack.org/index.php?topic=79453.msg2048467#msg2048467</a></p>
<h3>
<a id="user-content-soarers-doesnt-work" class="anchor" href="#soarers-doesnt-work" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Soarer's doesn't work</h3>
<p>Due to 'stop bit error'
.
<a href="https://geekhack.org/index.php?topic=103648.msg2898418#msg2898418" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg2898418#msg2898418</a></p>
<h3>
<a id="user-content-bluecube-doesnt-work" class="anchor" href="#bluecube-doesnt-work" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>BlueCube doesn't work</h3>
<p><a href="https://deskthority.net/viewtopic.php?p=293309#p293309" rel="nofollow">https://deskthority.net/viewtopic.php?p=293309#p293309</a></p>
<h3>
<a id="user-content-tmk-ps2-int-doesnt-work" class="anchor" href="#tmk-ps2-int-doesnt-work" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>TMK PS/2 INT doesn't work</h3>
<p><a href="https://deskthority.net/viewtopic.php?p=297627#p297627" rel="nofollow">https://deskthority.net/viewtopic.php?p=297627#p297627</a></p>
<h3>
<a id="user-content-doesnt-work-even-with-ps2-port-on-pc" class="anchor" href="#doesnt-work-even-with-ps2-port-on-pc" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Doesn't work even with PS/2 port on PC</h3>
<blockquote>
<p>I tried using a very generic at to ps2 adapter then a blue cube and
didn't have any luck. The keyboard lights up the first time you plug it
in.
Edit: I was messing with the adapters and if I go from at to ps2 into my
ps2 port the keyboard works during post.
Edit 2: It only works for a few moments during post. Eventually it stops
beeping.</p>
</blockquote>
<p><a href="https://deskthority.net/viewtopic.php?p=353558#p353558" rel="nofollow">https://deskthority.net/viewtopic.php?p=353558#p353558</a></p>
<h3>
<a id="user-content-some-computers-work-but-others-not" class="anchor" href="#some-computers-work-but-others-not" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Some computers work but others not</h3>
<blockquote>
<p>It had perfect function on my:
HP 8200/8300
Compaq SR1920nx (yeah, that's an oldie, my first desktop computer)
It had partial function by mashing the caps lock key many times on an
old Dell XPS 630, in Linux Mint ... maybe 17 or so. The same trick
didn't work in Windows 10.
It didn't work at all on any other computer I tried.</p>
</blockquote>
<p><a href="https://geekhack.org/index.php?topic=103648.msg2896728#msg2896728" rel="nofollow">https://geekhack.org/index.php?topic=103648.msg2896728#msg2896728</a></p>
</details>
<h2>
<a id="user-content-break-on-unicomp-ps2" class="anchor" href="#break-on-unicomp-ps2" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Break on Unicomp PS/2</h2>
<p>Control + Pause doesn't seems to be handled correctly.</p>
<p><a href="https://deskthority.net/viewtopic.php?f=2&amp;t=25718" rel="nofollow">https://deskthority.net/viewtopic.php?f=2&amp;t=25718</a></p>
<h1>
<a id="user-content-resources" class="anchor" href="#resources" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Resources</h1>
<h2>
<a id="user-content-trackpoint-engineering-specifications-for-version-3e" class="anchor" href="#trackpoint-engineering-specifications-for-version-3e" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>TrackPoint Engineering Specifications for version 3E</h2>
<p><a href="https://web.archive.org/web/20100613123840/http://wwwcssrv.almaden.ibm.com/trackpoint/files/ykt3eext.pdf" rel="nofollow">https://web.archive.org/web/20100613123840/http://wwwcssrv.almaden.ibm.com/trackpoint/files/ykt3eext.pdf</a></p>
<p><a href="https://web.archive.org/web/20100526161812/http://wwwcssrv.almaden.ibm.com/trackpoint/download.html" rel="nofollow">https://web.archive.org/web/20100526161812/http://wwwcssrv.almaden.ibm.com/trackpoint/download.html</a></p>
<h2>
<a id="user-content-mf2-keyboard" class="anchor" href="#mf2-keyboard" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>MF2 Keyboard</h2>
<p>The expression MF2 keyboard stands for multi-functional
keyboard version 2. This type of keyboard was first developed and defined by IBM for use with all types of PC (XT,
AT, PS/2). In the meantime it has become an industry standard and today nearly all PCs have an MF2 compatible keyboard.</p>
<p>The MF2 keyboard supports 3 different sets of make and
break codes. Code set 1 is used for XT/PC and PS/2 30
compatible computers. Code set 2 is used for AT and all
other PS/2 models compatible computers and code set 3 is
used for workstations and terminal emulations on the PC.</p>
<p><a href="http://bitsavers.trailing-edge.com/components/national/_appNotes/AN-0734.pdf" rel="nofollow">http://bitsavers.trailing-edge.com/components/national/_appNotes/AN-0734.pdf</a></p>
<h2>
<a id="user-content-ibm-84-key-model-f-at-keyboard-rom" class="anchor" href="#ibm-84-key-model-f-at-keyboard-rom" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>IBM 84-key Model F (AT) keyboard ROM</h2>
<ul>
<li><a href="http://www.halicery.com/Hardware/Intel%208042%20and%208048/8048_AT_INTERN.TEXT" rel="nofollow">http://www.halicery.com/Hardware/Intel%208042%20and%208048/8048_AT_INTERN.TEXT</a></li>
<li><a href="http://www.halicery.com/Hardware/Intel%208042%20and%208048/8042%20and%208048%20ROM%20disassemblies.html" rel="nofollow">http://www.halicery.com/Hardware/Intel%208042%20and%208048/8042%20and%208048%20ROM%20disassemblies.html</a></li>
</ul>
<h2>
<a id="user-content-linux-keyboard-input" class="anchor" href="#linux-keyboard-input" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Linux Keyboard Input</h2>
<ul>
<li>Scancodes mapping: <a href="https://wiki.archlinux.org/title/Map_scancodes_to_keycodes" rel="nofollow">https://wiki.archlinux.org/title/Map_scancodes_to_keycodes</a>
</li>
<li>Linux Scancodes(translated to Code Set 1 + E0-prefixed)</li>
<li>Linux Keycodes: <a href="https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h">https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h</a>
</li>
<li>atkbd.c Code Set 2 to Set 1 mapping: <a href="https://elixir.bootlin.com/linux/latest/source/drivers/input/keyboard/atkbd.c#L79" rel="nofollow">https://elixir.bootlin.com/linux/latest/source/drivers/input/keyboard/atkbd.c#L79</a>
</li>
<li>atkbd.c#atkbd_interrupt: <a href="https://elixir.bootlin.com/linux/latest/source/drivers/input/keyboard/atkbd.c#L409" rel="nofollow">https://elixir.bootlin.com/linux/latest/source/drivers/input/keyboard/atkbd.c#L409</a>
</li>
<li>console ioctl: <a href="https://man7.org/linux/man-pages/man4/console_ioctl.4.html" rel="nofollow">https://man7.org/linux/man-pages/man4/console_ioctl.4.html</a>
</li>
</ul>
<h3>
<a id="user-content-hid-keyboard-usage-to-linux-scan-code-mappinglinuxdrivershidhid-inputc" class="anchor" href="#hid-keyboard-usage-to-linux-scan-code-mappinglinuxdrivershidhid-inputc" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>HID keyboard usage to Linux scan code mapping(linux/drivers/hid/hid-input.c)</h3>
<ul>
<li><a href="https://elixir.bootlin.com/linux/latest/source/drivers/hid/usbhid/usbkbd.c" rel="nofollow">https://elixir.bootlin.com/linux/latest/source/drivers/hid/usbhid/usbkbd.c</a></li>
</ul>
<details><summary>Open</summary>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">linux/drivers/hid/hid-input.c
static const unsigned char hid_keyboard[256] = {
0, 0, 0, 0, 30, 48, 46, 32, 18, 33, 34, 35, 23, 36, 37, 38,
50, 49, 24, 25, 16, 19, 31, 20, 22, 47, 17, 45, 21, 44, 2, 3,
4, 5, 6, 7, 8, 9, 10, 11, 28, 1, 14, 15, 57, 12, 13, 26,
27, 43, 43, 39, 40, 41, 51, 52, 53, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 87, 88, 99, 70,119,110,102,104,111,107,109,106,
105,108,103, 69, 98, 55, 74, 78, 96, 79, 80, 81, 75, 76, 77, 71,
72, 73, 82, 83, 86,127,116,117,183,184,185,186,187,188,189,190,
191,192,193,194,134,138,130,132,128,129,131,137,133,135,136,113,
115,114,unk,unk,unk,121,unk, 89, 93,124, 92, 94, 95,unk,unk,unk,
122,123, 90, 91, 85,unk,unk,unk,unk,unk,unk,unk,111,unk,unk,unk,
unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,
unk,unk,unk,unk,unk,unk,179,180,unk,unk,unk,unk,unk,unk,unk,unk,
unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,
unk,unk,unk,unk,unk,unk,unk,unk,111,unk,unk,unk,unk,unk,unk,unk,
29, 42, 56,125, 97, 54,100,126,164,166,165,163,161,115,114,113,
150,158,159,128,136,177,178,176,142,152,173,140,unk,unk,unk,unk
/*
hid usage to scan codes mapping
00 00 00 00 1E 30 2E 20 12 21 22 23 17 24 25 26 /* 00-0F */
32 31 18 19 10 13 1F 14 16 2F 11 2D 15 2C 02 03 /* 10-1F */
04 05 06 07 08 09 0A 0B 1C 01 0E 0F 39 0C 0D 1A /* 20-2F */
1B 2B 2B 27 28 29 33 34 35 3A 3B 3C 3D 3E 3F 40 /* 30-3F */
41 42 43 44 57 58 63 46 77 6E 66 68 6F 6B 6D 6A /* 40-4F */
69 6C 67 45 62 37 4A 4E 60 4F 50 51 4B 4C 4D 47 /* 50-5F */
48 49 52 53 56 7F 74 75 B7 B8 B9 BA BB BC BD BE /* 60-6F */
BF C0 C1 C2 86 8A 82 84 80 81 83 89 85 87 88 71 /* 70-7F */
73 72 F0 F0 F0 79 F0 59 5D 7C 5C 5E 5F F0 F0 F0 /* 80-8F */
7A 7B 5A 5B 55 F0 F0 F0 F0 F0 F0 F0 6F F0 F0 F0 /* 90-9F */
F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 /* A0-AF */
F0 F0 F0 F0 F0 F0 B3 B4 F0 F0 F0 F0 F0 F0 F0 F0 /* B0-BF */
F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 /* C0-CF */
F0 F0 F0 F0 F0 F0 F0 F0 6F F0 F0 F0 F0 F0 F0 F0 /* D0-DF */
1D 2A 38 7D 61 36 64 7E A4 A6 A5 A3 A1 73 72 71 /* E0-EF */
96 9E 9F 80 88 B1 B2 B0 8E 98 AD 8C F0 F0 F0 F0 /* F0-FF */
where F0(240) = KEY_UNKNOWN
*/
};
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value="linux/drivers/hid/hid-input.c
static const unsigned char hid_keyboard[256] = {
0, 0, 0, 0, 30, 48, 46, 32, 18, 33, 34, 35, 23, 36, 37, 38,
50, 49, 24, 25, 16, 19, 31, 20, 22, 47, 17, 45, 21, 44, 2, 3,
4, 5, 6, 7, 8, 9, 10, 11, 28, 1, 14, 15, 57, 12, 13, 26,
27, 43, 43, 39, 40, 41, 51, 52, 53, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 87, 88, 99, 70,119,110,102,104,111,107,109,106,
105,108,103, 69, 98, 55, 74, 78, 96, 79, 80, 81, 75, 76, 77, 71,
72, 73, 82, 83, 86,127,116,117,183,184,185,186,187,188,189,190,
191,192,193,194,134,138,130,132,128,129,131,137,133,135,136,113,
115,114,unk,unk,unk,121,unk, 89, 93,124, 92, 94, 95,unk,unk,unk,
122,123, 90, 91, 85,unk,unk,unk,unk,unk,unk,unk,111,unk,unk,unk,
unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,
unk,unk,unk,unk,unk,unk,179,180,unk,unk,unk,unk,unk,unk,unk,unk,
unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,
unk,unk,unk,unk,unk,unk,unk,unk,111,unk,unk,unk,unk,unk,unk,unk,
29, 42, 56,125, 97, 54,100,126,164,166,165,163,161,115,114,113,
150,158,159,128,136,177,178,176,142,152,173,140,unk,unk,unk,unk
/*
hid usage to scan codes mapping
00 00 00 00 1E 30 2E 20 12 21 22 23 17 24 25 26 /* 00-0F */
32 31 18 19 10 13 1F 14 16 2F 11 2D 15 2C 02 03 /* 10-1F */
04 05 06 07 08 09 0A 0B 1C 01 0E 0F 39 0C 0D 1A /* 20-2F */
1B 2B 2B 27 28 29 33 34 35 3A 3B 3C 3D 3E 3F 40 /* 30-3F */
41 42 43 44 57 58 63 46 77 6E 66 68 6F 6B 6D 6A /* 40-4F */
69 6C 67 45 62 37 4A 4E 60 4F 50 51 4B 4C 4D 47 /* 50-5F */
48 49 52 53 56 7F 74 75 B7 B8 B9 BA BB BC BD BE /* 60-6F */
BF C0 C1 C2 86 8A 82 84 80 81 83 89 85 87 88 71 /* 70-7F */
73 72 F0 F0 F0 79 F0 59 5D 7C 5C 5E 5F F0 F0 F0 /* 80-8F */
7A 7B 5A 5B 55 F0 F0 F0 F0 F0 F0 F0 6F F0 F0 F0 /* 90-9F */
F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 /* A0-AF */
F0 F0 F0 F0 F0 F0 B3 B4 F0 F0 F0 F0 F0 F0 F0 F0 /* B0-BF */
F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 /* C0-CF */
F0 F0 F0 F0 F0 F0 F0 F0 6F F0 F0 F0 F0 F0 F0 F0 /* D0-DF */
1D 2A 38 7D 61 36 64 7E A4 A6 A5 A3 A1 73 72 71 /* E0-EF */
96 9E 9F 80 88 B1 B2 B0 8E 98 AD 8C F0 F0 F0 F0 /* F0-FF */
where F0(240) = KEY_UNKNOWN
*/
};" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
</details>
<h3>
<a id="user-content-scan-code-set-2-to-linux-scan-code-mappinglinuxdriversinputkeyboardatkbdc" class="anchor" href="#scan-code-set-2-to-linux-scan-code-mappinglinuxdriversinputkeyboardatkbdc" aria-hidden="true"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Scan Code Set 2 to Linux scan code mapping(linux/drivers/input/keyboard/atkbd.c)</h3>
<details><summary>Open</summary>
<div class="snippet-clipboard-content position-relative overflow-auto"><pre class="notranslate"><code class="notranslate">linux/drivers/input/keyboard/atkbd.c
#define ATKBD_KEYMAP_SIZE 512
static const unsigned short atkbd_set2_keycode[ATKBD_KEYMAP_SIZE] = {
0, 67, 65, 63, 61, 59, 60, 88, 0, 68, 66, 64, 62, 15, 41,117,
0, 56, 42, 93, 29, 16, 2, 0, 0, 0, 44, 31, 30, 17, 3, 0,
0, 46, 45, 32, 18, 5, 4, 95, 0, 57, 47, 33, 20, 19, 6,183,
0, 49, 48, 35, 34, 21, 7,184, 0, 0, 50, 36, 22, 8, 9,185,
0, 51, 37, 23, 24, 11, 10, 0, 0, 52, 53, 38, 39, 25, 12, 0,
0, 89, 40, 0, 26, 13, 0, 0, 58, 54, 28, 27, 0, 43, 0, 85,
0, 86, 91, 90, 92, 0, 14, 94, 0, 79,124, 75, 71,121, 0, 0,
82, 83, 80, 76, 77, 72, 1, 69, 87, 78, 81, 74, 55, 73, 70, 99,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
217,100,255, 0, 97,165, 0, 0,156, 0, 0, 0, 0, 0, 0,125,
173,114, 0,113, 0, 0, 0,126,128, 0, 0,140, 0, 0, 0,127,
159, 0,115, 0,164, 0, 0,116,158, 0,172,166, 0, 0, 0,142,
157, 0, 0, 0, 0, 0, 0, 0,155, 0, 98, 0, 0,163, 0, 0,
226, 0, 0, 0, 0, 0, 0, 0, 0,255, 96, 0, 0, 0,143, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,107, 0,105,102, 0, 0,112,
110,111,108,112,106,103, 0,119, 0,118,109, 0, 99,104,119, 0,
0, 0, 0, 65, 99,
/*
// 00-7F code:
*00 43 41 3F 3D 3B 3C 58*00 44 42 40 3E 0F 29*75
*00 38 2A*5D 1D 10 02*00*00*00 2C 1F 1E 11 03*00
*00 2E 2D 20 12 05 04 5F*00 39 2F 21 14 13 06*B7
*00 31 30 23 22 15 07*B8*00*00 32 24 16 08 09*B9
*00 33 25 17 18 0B 0A*00*00 34 35 26 27 19 0C*00
*00*59 28*00 1A 0D*00*00 3A 36 1C 1B*00 2B*00*55
*00 56*5B*5A*5C*00 0E*5E*00 4F*7C 4B 47*79 00*00
52 53 50 4C 4D 48 01 45 57 4E 51 4A 37 49 46*63
// E0-prefixed code:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
D9 64 FF 00 61 A5 00 00 9C 00 00 00 00 00 00 7D
AD 72 00 71 00 00 00 7E 80 00 00 8C 00 00 00 7F
9F 00 73 00 A4 00 00 74 9E 00 AC A6 00 00 00 8E
9D 00 00 00 00 00 00 00 9B 00 62 00 00 A3 00 00
E2 00 00 00 00 00 00 00 00 FF 60 00 00 00 8F 00
00 00 00 00 00 00 00 00 00 6B 00 69 66 00 00 70
6E 6F 6C 70 6A 67 00 77 00 76 6D 00 63 68 77 00
// 80- code:
00 00 00 41*63
*: different from i8042 translation table
*/
};
static const unsigned short atkbd_set3_keycode[ATKBD_KEYMAP_SIZE] = {
0, 0, 0, 0, 0, 0, 0, 59, 1,138,128,129,130, 15, 41, 60,
131, 29, 42, 86, 58, 16, 2, 61,133, 56, 44, 31, 30, 17, 3, 62,
134, 46, 45, 32, 18, 5, 4, 63,135, 57, 47, 33, 20, 19, 6, 64,
136, 49, 48, 35, 34, 21, 7, 65,137,100, 50, 36, 22, 8, 9, 66,
125, 51, 37, 23, 24, 11, 10, 67,126, 52, 53, 38, 39, 25, 12, 68,
113,114, 40, 43, 26, 13, 87, 99, 97, 54, 28, 27, 43, 43, 88, 70,
108,105,119,103,111,107, 14,110, 0, 79,106, 75, 71,109,102,104,
82, 83, 80, 76, 77, 72, 69, 98, 0, 96, 81, 0, 78, 73, 55,183,
184,185,186,187, 74, 94, 92, 93, 0, 0, 0,125,126,127,112, 0,
0,139,172,163,165,115,152,172,166,140,160,154,113,114,167,168,
148,149,147,140
};
static const unsigned short atkbd_unxlate_table[128] = {
0,118, 22, 30, 38, 37, 46, 54, 61, 62, 70, 69, 78, 85,102, 13,
21, 29, 36, 45, 44, 53, 60, 67, 68, 77, 84, 91, 90, 20, 28, 27,
35, 43, 52, 51, 59, 66, 75, 76, 82, 14, 18, 93, 26, 34, 33, 42,
50, 49, 58, 65, 73, 74, 89,124, 17, 41, 88, 5, 6, 4, 12, 3,
11, 2, 10, 1, 9,119,126,108,117,125,123,107,115,116,121,105,
114,122,112,113,127, 96, 97,120, 7, 15, 23, 31, 39, 47, 55, 63,
71, 79, 86, 94, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 87,111,
19, 25, 57, 81, 83, 92, 95, 98, 99,100,101,103,104,106,109,110
};
</code></pre><div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w" value="linux/drivers/input/keyboard/atkbd.c
#define ATKBD_KEYMAP_SIZE 512
static const unsigned short atkbd_set2_keycode[ATKBD_KEYMAP_SIZE] = {
0, 67, 65, 63, 61, 59, 60, 88, 0, 68, 66, 64, 62, 15, 41,117,
0, 56, 42, 93, 29, 16, 2, 0, 0, 0, 44, 31, 30, 17, 3, 0,
0, 46, 45, 32, 18, 5, 4, 95, 0, 57, 47, 33, 20, 19, 6,183,
0, 49, 48, 35, 34, 21, 7,184, 0, 0, 50, 36, 22, 8, 9,185,
0, 51, 37, 23, 24, 11, 10, 0, 0, 52, 53, 38, 39, 25, 12, 0,
0, 89, 40, 0, 26, 13, 0, 0, 58, 54, 28, 27, 0, 43, 0, 85,
0, 86, 91, 90, 92, 0, 14, 94, 0, 79,124, 75, 71,121, 0, 0,
82, 83, 80, 76, 77, 72, 1, 69, 87, 78, 81, 74, 55, 73, 70, 99,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
217,100,255, 0, 97,165, 0, 0,156, 0, 0, 0, 0, 0, 0,125,
173,114, 0,113, 0, 0, 0,126,128, 0, 0,140, 0, 0, 0,127,
159, 0,115, 0,164, 0, 0,116,158, 0,172,166, 0, 0, 0,142,
157, 0, 0, 0, 0, 0, 0, 0,155, 0, 98, 0, 0,163, 0, 0,
226, 0, 0, 0, 0, 0, 0, 0, 0,255, 96, 0, 0, 0,143, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,107, 0,105,102, 0, 0,112,
110,111,108,112,106,103, 0,119, 0,118,109, 0, 99,104,119, 0,
0, 0, 0, 65, 99,
/*
// 00-7F code:
*00 43 41 3F 3D 3B 3C 58*00 44 42 40 3E 0F 29*75
*00 38 2A*5D 1D 10 02*00*00*00 2C 1F 1E 11 03*00
*00 2E 2D 20 12 05 04 5F*00 39 2F 21 14 13 06*B7
*00 31 30 23 22 15 07*B8*00*00 32 24 16 08 09*B9
*00 33 25 17 18 0B 0A*00*00 34 35 26 27 19 0C*00
*00*59 28*00 1A 0D*00*00 3A 36 1C 1B*00 2B*00*55
*00 56*5B*5A*5C*00 0E*5E*00 4F*7C 4B 47*79 00*00
52 53 50 4C 4D 48 01 45 57 4E 51 4A 37 49 46*63
// E0-prefixed code:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
D9 64 FF 00 61 A5 00 00 9C 00 00 00 00 00 00 7D
AD 72 00 71 00 00 00 7E 80 00 00 8C 00 00 00 7F
9F 00 73 00 A4 00 00 74 9E 00 AC A6 00 00 00 8E
9D 00 00 00 00 00 00 00 9B 00 62 00 00 A3 00 00
E2 00 00 00 00 00 00 00 00 FF 60 00 00 00 8F 00
00 00 00 00 00 00 00 00 00 6B 00 69 66 00 00 70
6E 6F 6C 70 6A 67 00 77 00 76 6D 00 63 68 77 00
// 80- code:
00 00 00 41*63
*: different from i8042 translation table
*/
};
static const unsigned short atkbd_set3_keycode[ATKBD_KEYMAP_SIZE] = {
0, 0, 0, 0, 0, 0, 0, 59, 1,138,128,129,130, 15, 41, 60,
131, 29, 42, 86, 58, 16, 2, 61,133, 56, 44, 31, 30, 17, 3, 62,
134, 46, 45, 32, 18, 5, 4, 63,135, 57, 47, 33, 20, 19, 6, 64,
136, 49, 48, 35, 34, 21, 7, 65,137,100, 50, 36, 22, 8, 9, 66,
125, 51, 37, 23, 24, 11, 10, 67,126, 52, 53, 38, 39, 25, 12, 68,
113,114, 40, 43, 26, 13, 87, 99, 97, 54, 28, 27, 43, 43, 88, 70,
108,105,119,103,111,107, 14,110, 0, 79,106, 75, 71,109,102,104,
82, 83, 80, 76, 77, 72, 69, 98, 0, 96, 81, 0, 78, 73, 55,183,
184,185,186,187, 74, 94, 92, 93, 0, 0, 0,125,126,127,112, 0,
0,139,172,163,165,115,152,172,166,140,160,154,113,114,167,168,
148,149,147,140
};
static const unsigned short atkbd_unxlate_table[128] = {
0,118, 22, 30, 38, 37, 46, 54, 61, 62, 70, 69, 78, 85,102, 13,
21, 29, 36, 45, 44, 53, 60, 67, 68, 77, 84, 91, 90, 20, 28, 27,
35, 43, 52, 51, 59, 66, 75, 76, 82, 14, 18, 93, 26, 34, 33, 42,
50, 49, 58, 65, 73, 74, 89,124, 17, 41, 88, 5, 6, 4, 12, 3,
11, 2, 10, 1, 9,119,126,108,117,125,123,107,115,116,121,105,
114,122,112,113,127, 96, 97,120, 7, 15, 23, 31, 39, 47, 55, 63,
71, 79, 86, 94, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 87,111,
19, 25, 57, 81, 83, 92, 95, 98, 99,100,101,103,104,106,109,110
};" tabindex="0" role="button">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div></div>
</details>
</div>
</div>
</div>
</div> </div>
</div>
</div>
</main>
</div>
</div>
<footer class="footer width-full container-xl p-responsive" role="contentinfo">
<div class="position-relative d-flex flex-items-center pb-2 f6 color-fg-muted border-top color-border-muted flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap mt-6 pt-6">
<ul class="list-style-none d-flex flex-wrap col-0 col-lg-2 flex-justify-start flex-lg-justify-between mb-2 mb-lg-0">
<li class="mt-2 mt-lg-0 d-flex flex-items-center">
<a aria-label="Homepage" title="GitHub" class="footer-octicon mr-2" href="https://github.com/">
<svg aria-hidden="true" height="24" viewBox="0 0 16 16" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github">
<path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path>
</svg>
</a> <span>
© 2022 GitHub, Inc.
</span>
</li>
</ul>
<ul class="list-style-none d-flex flex-wrap col-12 col-lg-8 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0">
<li class="mr-3 mr-lg-0"><a href="https://docs.github.com/en/github/site-policy/github-terms-of-service" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to terms&quot;,&quot;label&quot;:&quot;text:terms&quot;}">Terms</a></li>
<li class="mr-3 mr-lg-0"><a href="https://docs.github.com/en/github/site-policy/github-privacy-statement" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to privacy&quot;,&quot;label&quot;:&quot;text:privacy&quot;}">Privacy</a></li>
<li class="mr-3 mr-lg-0"><a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to security&quot;,&quot;label&quot;:&quot;text:security&quot;}" href="https://github.com/security">Security</a></li>
<li class="mr-3 mr-lg-0"><a href="https://www.githubstatus.com/" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to status&quot;,&quot;label&quot;:&quot;text:status&quot;}">Status</a></li>
<li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to help, text:Docs" href="https://docs.github.com/">Docs</a></li>
<li class="mr-3 mr-lg-0"><a href="https://support.github.com/?tags=dotcom-footer" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to contact&quot;,&quot;label&quot;:&quot;text:contact&quot;}">Contact GitHub</a></li>
<li class="mr-3 mr-lg-0"><a href="https://github.com/pricing" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Pricing&quot;,&quot;label&quot;:&quot;text:Pricing&quot;}">Pricing</a></li>
<li class="mr-3 mr-lg-0"><a href="https://docs.github.com/" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to api&quot;,&quot;label&quot;:&quot;text:api&quot;}">API</a></li>
<li class="mr-3 mr-lg-0"><a href="https://services.github.com/" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to training&quot;,&quot;label&quot;:&quot;text:training&quot;}">Training</a></li>
<li class="mr-3 mr-lg-0"><a href="https://github.blog/" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to blog&quot;,&quot;label&quot;:&quot;text:blog&quot;}">Blog</a></li>
<li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li>
</ul>
</div>
<div class="d-flex flex-justify-center pb-6">
<span class="f6 color-fg-muted"></span>
</div>
</footer>
<div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden="">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
<path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path>
</svg>
<button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path>
</svg>
</button>
You cant perform that action at this time.
</div>
<div class="js-stale-session-flash flash flash-warn flash-banner" hidden="">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
<path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path>
</svg>
<span class="js-stale-session-flash-signed-in" hidden="">You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
<span class="js-stale-session-flash-signed-out" hidden="">You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
</div>
<template id="site-details-dialog">
<details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open="">
<summary role="button" aria-label="Close dialog"></summary>
<details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
<button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog="">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path>
</svg>
</button>
<div class="octocat-spinner my-6 js-details-dialog-spinner"></div>
</details-dialog>
</details>
</template>
<div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0">
<div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;">
</div>
</div>
<template id="snippet-clipboard-copy-button">
<div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg>
</clipboard-copy>
</div>
</template>
<style>
.user-mention[href$="/dekuNukem"] {
color: var(--color-user-mention-fg);
background-color: var(--color-user-mention-bg);
border-radius: 2px;
margin-left: -2px;
margin-right: -2px;
padding: 0 2px;
}
</style>
<div aria-live="polite" class="sr-only"></div></body></html>