Assembly Language Help (alang.hlp) (
Table of Contents;
Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
Extended Key Codes
◄Up► ◄Contents► ◄Index► ◄Back►
────────────────────────────────────────────────────────────────────────────
Key Scan Codes
┌───────┬────────┬──────────────┬──────────────┬──────────────┬─────────────┐
│Key │ Scan │ ASCII or │ ASCII or │ ASCII or │ ASCII or │
│ │ Code │ Extended ■ │ Extended │ Extended │ Extended │
│ │ │ │ with SHIFT ■ │ with CTRL ■ │ with ALT ■ │
├───────┼────────┼──────────────┼──────────────┼──────────────┼─────────────┤
│ ── │ Dec Hex│ Dec Hex Char │ Dec Hex Char │ Dec Hex Char │ Dec Hex Char│
├───────┼────────┼──────────────┼──────────────┼──────────────┼─────────────┤
│ESC │ 1 01 │ 27 1B ESC │ 27 1B ESC │ 27 1B ESC │ 1 01 NUL°│
│1 ! │ 2 02 │ 49 31 '1' │ 33 21 '!' │ │ 120 78 NUL │
│2 @ │ 3 03 │ 50 32 '2' │ 64 40 '@' │ 3 03 NUL │ 121 79 NUL │
│3 # │ 4 04 │ 51 33 '3' │ 35 23 '#' │ │ 122 7A NUL │
│4 $ │ 5 05 │ 52 34 '4' │ 36 24 '$' │ │ 123 7B NUL │
│5 % │ 6 06 │ 53 35 '5' │ 37 25 '%' │ │ 124 7C NUL │
│6 ^ │ 7 07 │ 54 36 '6' │ 94 5E '^' │ 30 1E RS │ 125 7D NUL │
│7 & │ 8 08 │ 55 37 '7' │ 38 26 '&' │ │ 126 7E NUL │
│8 * │ 9 09 │ 56 38 '8' │ 42 2A '*' │ │ 127 7F NUL │
│9 ( │ 10 0A │ 57 39 '9' │ 40 28 '(' │ │ 128 80 NUL │
│0 ) │ 11 0B │ 48 30 '0' │ 41 29 ')' │ │ 129 81 NUL │
│- _ │ 12 0C │ 45 2D '-' │ 95 5F '-' │ 31 1F US │ 130 82 NUL │
│= + │ 13 0D │ 61 3D '=' │ 43 2B '+' │ │ 131 83 NUL │
│ │ │ │ │ │ │
│BKSP │ 14 0E │ 8 08 │ 8 08 │ 127 7F │ 14 0E NUL°│
│TAB │ 15 0F │ 9 09 │ 15 0F NUL │ 148 94 NUL°│ 15 A5 NUL°│
│Q │ 16 10 │ 113 71 'q' │ 81 51 'Q' │ 17 11 DC1 │ 16 10 NUL │
│W │ 17 11 │ 119 77 'w' │ 87 57 'W' │ 23 17 ETB │ 17 11 NUL │
│E │ 18 12 │ 101 65 'e' │ 69 45 'E' │ 5 05 ENQ │ 18 12 NUL │
│R │ 19 13 │ 114 72 'r' │ 82 52 'R' │ 18 12 DC2 │ 19 13 NUL │
│T │ 20 14 │ 116 74 't' │ 84 54 'T' │ 20 14 SO │ 20 14 NUL │
│Y │ 21 15 │ 121 79 'y' │ 89 59 'Y' │ 25 19 EM │ 21 15 NUL │
│U │ 22 16 │ 117 75 'u' │ 85 55 'U' │ 21 15 NAK │ 22 16 NUL │
│I │ 23 17 │ 105 69 'i' │ 73 49 'I' │ 9 09 TAB │ 23 17 NUL │
│O │ 24 18 │ 111 6F 'o' │ 79 4F 'O' │ 15 0F SI │ 24 18 NUL │
│P │ 25 19 │ 112 70 'p' │ 80 50 'P' │ 16 10 DLE │ 25 19 NUL │
│[ { │ 26 1A │ 91 5B '[' │ 123 7B '{' │ 27 1B ESC │ 26 1A NUL°│
│] } │ 27 1B │ 93 5D ']' │ 125 7D '}' │ 29 1D GS │ 27 1B NUL°│
│ │ │ │ │ │ │
│ENTER │ 28 1C │ 13 0D CR │ 13 0D CR │ 10 0A LF │ 28 1C NUL°│
│ENTER §│ 28 1C │ 13 0D CR │ 13 0D CR │ 10 0A LF │ 166 A6 NUL°│
│L CTRL │ 29 1D │ │ │ │ │
│R CTRL§│ 29 1D │ │ │ │ │
│ │ │ │ │ │ │
│A │ 30 1E │ 97 61 'a' │ 65 41 'A' │ 1 01 SOH │ 30 1E NUL │
│S │ 31 1F │ 115 73 's' │ 83 53 'S' │ 19 13 DC3 │ 31 1F NUL │
│D │ 32 20 │ 100 64 'd' │ 68 44 'D' │ 4 04 EOT │ 32 20 NUL │
│F │ 33 21 │ 102 66 'f' │ 70 46 'F' │ 6 06 ACK │ 33 21 NUL │
│G │ 34 22 │ 103 67 'g' │ 71 47 'G' │ 7 07 BEL │ 34 22 NUL │
│H │ 35 23 │ 104 68 'h' │ 72 48 'H' │ 8 08 BS │ 35 23 NUL │
│J │ 36 24 │ 106 6A 'j' │ 74 4A 'J' │ 10 0A LF │ 36 24 NUL │
│K │ 37 25 │ 107 6B 'k' │ 75 4B 'K' │ 11 0B VT │ 37 25 NUL │
│L │ 38 26 │ 108 6C 'l' │ 76 4C 'L' │ 12 0C FF │ 38 26 NUL │
│; : │ 39 27 │ 59 3B ';' │ 58 3A ':' │ │ 39 27 NUL°│
│' " │ 40 28 │ 39 27 ''' │ 34 22 '"' │ │ 40 28 NUL°│
│` ~ │ 41 29 │ 96 60 '`' │ 126 7E '~' │ │ 41 29 NUL°│
│ │ │ │ │ │ │
│L SHIFT│ 42 2A │ │ │ │ │
│\ | │ 43 2B │ 92 5C '\' │ 124 7C '|' │ 28 1C FS │ │
│Z │ 44 2C │ 122 7A 'z' │ 90 5A 'Z' │ 26 1A SUB │ 44 2C NUL │
│X │ 45 2D │ 120 78 'x' │ 88 58 'X' │ 24 18 CAN │ 45 2D NUL │
│C │ 46 2E │ 99 63 'c' │ 67 43 'C' │ 3 03 ETX │ 46 2E NUL │
│V │ 47 2F │ 118 76 'v' │ 86 56 'V' │ 22 16 SYN │ 47 2F NUL │
│B │ 48 30 │ 98 62 'b' │ 66 42 'B' │ 2 02 STX │ 48 30 NUL │
│N │ 49 31 │ 110 6E 'n' │ 78 4E 'N' │ 14 0E SO │ 49 31 NUL │
│M │ 50 32 │ 109 6D 'm' │ 77 4D 'M' │ 13 0D CR │ 50 32 NUL │
│, < │ 51 33 │ 44 2C ',' │ 60 3C '<' │ │ 51 33 NUL°│
│. > │ 52 34 │ 46 2E '.' │ 62 3E '>' │ │ 52 34 NUL°│
│/ ? │ 53 35 │ 47 2F '/' │ 63 3F '?' │ │ 53 35 NUL°│
│GRAY /§│ 53 35 │ 47 2F '/' │ 63 3F '?' │ 149 95 NUL │ 164 A4 NUL │
│ │ │ │ │ │ │
│R SHIFT│ 54 36 │ │ │ │ │
│* PRTSC│ 55 37 │ 42 2A '*' │ PRTSC ♦│ 114 72 0 │ │
│L ALT │ 56 38 │ │ │ │ │
│R ALT §│ 56 38 │ │ │ │ │
│SPACE │ 57 39 │ 32 20 ' ' │ 32 20 ' ' │ 32 20 ' ' │ 32 20 ' ' │
│CAPS │ 58 3A │ │ │ │ │
│ │ │ │ │ │ │
│F1 │ 59 3B │ 59 3B NUL │ 84 54 NUL │ 94 5E NUL │ 104 68 NUL │
│F2 │ 60 3C │ 60 3C NUL │ 85 55 NUL │ 95 5F NUL │ 105 69 NUL │
│F3 │ 61 3D │ 61 3D NUL │ 86 56 NUL │ 96 60 NUL │ 106 6A NUL │
│F4 │ 62 3E │ 62 3E NUL │ 87 57 NUL │ 97 61 NUL │ 107 6B NUL │
│F5 │ 63 3F │ 63 3F NUL │ 88 58 NUL │ 98 62 NUL │ 108 6C NUL │
│F6 │ 64 40 │ 64 40 NUL │ 89 59 NUL │ 99 63 NUL │ 109 6D NUL │
│F7 │ 65 41 │ 65 41 NUL │ 90 5A NUL │ 100 64 NUL │ 110 6E NUL │
│F8 │ 66 42 │ 66 42 NUL │ 91 5B NUL │ 101 65 NUL │ 111 6F NUL │
│F9 │ 67 43 │ 67 43 NUL │ 92 5C NUL │ 102 66 NUL │ 112 70 NUL │
│F10 │ 68 44 │ 68 44 NUL │ 93 5D NUL │ 103 67 NUL │ 113 71 NUL │
│F11 §│ 87 57 │ 133 85 E0 │ 135 87 E0 │ 137 89 E0 │ 139 8B E0 │
│F12 §│ 88 58 │ 134 86 E0 │ 136 88 E0 │ 138 8A E0 │ 140 8C E0 │
│ │ │ │ │ │ │
│NUM │ 69 45 │ │ │ │ │
│SCROLL │ 70 46 │ │ │ │ │
│ │ │ │ │ │ │
│HOME │ 71 47 │ 71 47 NUL │ 55 37 '7' │ 119 77 NUL │ │
│HOME §│ 71 47 │ 71 47 E0 │ 71 47 E0 │ 119 77 E0 │ 151 97 NUL │
│UP │ 72 48 │ 72 48 NUL │ 56 38 '8' │ 141 8D NUL°│ │
│UP §│ 72 48 │ 72 48 E0 │ 72 48 E0 │ 141 8D E0 │ 152 98 NUL │
│PGUP │ 73 49 │ 73 49 NUL │ 57 39 '9' │ 132 84 NUL │ │
│PGUP §│ 73 49 │ 73 49 E0 │ 73 49 E0 │ 132 84 E0 │ 153 99 NUL │
│GRAY - │ 74 4A │ │ 45 2D '-' │ │ │
│LEFT │ 75 4B │ 75 4B NUL │ 52 34 '4' │ 115 73 NUL │ │
│LEFT §│ 75 4B │ 75 4B E0 │ 75 4B E0 │ 115 73 E0 │ 155 9B NUL │
│CENTER │ 76 4C │ │ 53 35 '5' │ │ │
│RIGHT │ 77 4D │ 77 4D NUL │ 54 36 '6' │ 116 74 NUL │ │
│RIGHT §│ 77 4D │ 77 4D E0 │ 77 4D E0 │ 116 74 E0 │ 157 9D NUL │
│GRAY + │ 78 4E │ │ 43 2B '+' │ │ │
│END │ 79 4F │ 79 4F NUL │ 49 31 '1' │ 117 75 NUL │ │
│END §│ 79 4F │ 79 4F E0 │ 79 4F E0 │ 117 75 E0 │ 159 9F NUL │
│DOWN │ 80 50 │ 80 50 NUL │ 50 32 '2' │ 145 91 NUL°│ │
│DOWN §│ 80 50 │ 80 50 E0 │ 80 50 E0 │ 145 91 E0 │ 160 A0 NUL │
│PGDN │ 81 51 │ 81 51 NUL │ 51 33 '3' │ 118 76 NUL │ │
│PGDN §│ 81 51 │ 81 51 E0 │ 81 51 E0 │ 118 76 E0 │ 161 A1 NUL │
│ │ │ │ │ │ │
│INS │ 82 52 │ 82 52 NUL │ 48 30 '0' │ 146 92 NUL°│ │
│INS §│ 82 52 │ 82 52 E0 │ 82 52 E0 │ 146 92 E0 │ 162 A2 NUL │
│DEL │ 83 53 │ 83 53 NUL │ 46 2E '.' │ 147 93 NUL°│ │
│DEL §│ 83 53 │ 83 53 E0 │ 83 53 E0 │ 147 93 E0 │ 163 A3 NUL │
└───────┴────────┴──────────────┴──────────────┴──────────────┴─────────────┘
■ Extended codes return 0 (NUL) or E0 (decimal 224) as the initial
character. This is a signal that a second (extended) code is available
in the keystroke buffer.
♦ Under DOS, SHIFT+PRTSCR causes interrupt 5, which prints the screen.
§ These keys are available only on extended keyboards. Most of them are
in the Cursor/Control cluster, which does not exist on old keyboards. If
the raw scan code is read from the keyboard port (60h), it appears as
two bytes──E0h followed by the normal scan code. However, when the
keypad ENTER and / keys are read through the BIOS interrupt 16h, only
E0h is seen, since the interrupt gives only one-byte scan codes.
° These key combinations are recognized only on extended keyboards.
These codes are returned by Int 21h Functions 01h, 06h, 07h, and 08h
under MS-DOS.
-♦-