Question

I need scan codes for arrows (right,left,down,up). I am making software in Assembler and I need to know the hex values for the scan codes of the keyboard arrows.

Was it helpful?

Solution

Those are the character codes for arrow characters in the lower portion of the ASCII codepage:

  • Up: 0x18
  • Down: 0x19
  • Right: 0x1A
  • Left: 0x1B

There are also arrow characters in Unicode.

And the scan codes for the arrow keys are:

  • Up: 0x48
  • Left: 0x4B
  • Right: 0x4D
  • Down: 0x50

Notice the different order.

The scan codes are returned, for example, from the BIOS interrupt 16h. In general, scan codes don't correspond to ASCII characters, because some keys legitimately don't represent a character - like Shift, or Caps Lock, or the arrow keys. Those don't produce a character in the input stream, but they do have scan codes, and programs are capable of retrieving those.

Even the alphanumeric keys that do correspond to characters may represent different characters at different time, depending on Shift and on the chosen keyboard layout.

Whatever Linux thinks, neither the keyboard nor the screen are byte streams.

OTHER TIPS

Great can obtain scan codes in linux with:

sudo showkey -s
  • Up: 0x48 (pressing) 0xc8 (release)
  • Down: 0x50 (press) 0xd0 (release)
  • Left: 0x4b (press) 0xcb (release)
  • Right: 0x4d (press) 0xcd (release)

Here are the codes you're looking for...

  • Left: AC
  • Up: AD
  • Right: AE
  • Down: AF
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top