blob: 5b1d4ab8d3bad1a6a8589189e1e35be4c91ebbef [file] [log] [blame]
/*
* Copyright 2018, Data61
* Commonwealth Scientific and Industrial Research Organisation (CSIRO)
* ABN 41 687 119 230.
*
* This software may be distributed and modified according to the terms of
* the BSD 2-Clause license. Note that NO WARRANTY is provided.
* See "LICENSE_BSD2.txt" for details.
*
* @TAG(DATA61_BSD)
*/
#include <keyboard/codes.h>
/* Mapping from scan codes to characters. Anything that is not a definitive
* character is mapped to 0. Note that this assumes set 2 scan codes.
*/
static char codes[255] = {
[0x16] = '1', // or !
[0x1e] = '2', // or @
[0x26] = '3', // or #
[0x25] = '4', // or $
[0x2e] = '5', // or %
[0x36] = '6', // or ^
[0x3d] = '7', // or &
[0x3e] = '8', // or *
[0x46] = '9', // or (
[0x45] = '0', // or )
[0x66] = '\b',
[0x0d] = '\t',
[0x15] = 'Q',
[0x1d] = 'W',
[0x24] = 'E',
[0x2d] = 'R',
[0x2c] = 'T',
[0x35] = 'Y',
[0x3c] = 'U',
[0x43] = 'I',
[0x44] = 'O',
[0x4d] = 'P',
[0x54] = '[', // or {
[0x5b] = ']', // or }
[0x5d] = '\\', //or |
[0x1c] = 'A',
[0x1b] = 'S',
[0x23] = 'D',
[0x2b] = 'F',
[0x34] = 'G',
[0x33] = 'H',
[0x3b] = 'J',
[0x42] = 'K',
[0x4b] = 'L',
[0x4c] = ';', // or :
[0x52] = '\'', // or "
[0x5a] = '\n', // enter
[0x1a] = 'Z',
[0x22] = 'X',
[0x21] = 'C',
[0x2a] = 'V',
[0x32] = 'B',
[0x31] = 'N',
[0x3a] = 'M',
[0x41] = ',', // or <
[0x49] = '.', // or >
[0x4a] = '/', // or ?
[0x29] = ' ', // space
[0x76] = 033, // esc
};
char sel4keyboard_code_to_char(int index)
{
if (index > sizeof(codes) || index < 0) {
return 0;
}
return codes[index];
}