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.
                                    -♦-