/***
   Keymap for Latin American keyboard. v1.02
   Victor A. Rodriguez - El bit Fantasma - Bit-Man@Tasa.Com.AR

   The Latin American keyboard makes differences between the left and
   right ALT keys (the right one is so called ALT GR), and uses accent.

   Release History 
   ===============
   v1.00     Initial version 
   v1.01     Extended ASCII characters replaced by hex. equivalents
   v1.02     NR_SCAN_CODES has grown to 0x80, required by Toshiya Ogawa
             (ogw@shizuokanet.or.jp) and added by Kees J.Bot (kjb@cs.vu.nl)
             in MINIX 1.7.2
***/

#if (NR_SCAN_CODES != 0x80) 
#error NR_SCAN_CODES mis-match
#endif

u16_t keymap[NR_SCAN_CODES * MAP_COLS] = {

/* scan-code            !Shift  Shift   Alt1    Alt2    Alt+Sh  Ctrl    */
/* ==================================================================== */
/* 00 - none    */      0,      0,      0,      0,      0,      0,      
/* 01 - ESC     */      C('['), C('['), CA('['),CA('['),CA('['),C('['),
/* 02 - '1'     */      '1',    '!',    A('1'), A('1'), A('!'), C('A'),
/* 03 - '2'     */      '2',    '"',    A('2'), A('2'), A('"'), C('@'),
/* 04 - '3'     */      '3',    '#',    A('3'), A('3'), A('#'), C('C'),
/* 05 - '4'     */      '4',    '$',    A('4'), A('4'), A('$'), C('D'),
/* 06 - '5'     */      '5',    '%',    A('5'), A('5'), A('%'), C('E'),
/* 07 - '6'     */      '6',    '&',    A('6'), A('6'), A('$'), C('^'),
/* 08 - '7'     */      '7',    '/',    A('7'), A('7'), A('/'), C('G'),
/* 09 - '8'     */      '8',    '(',    A('8'), A('8'), A('('), C('H'),
/* 10 - '9'     */      '9',    ')',    A('9'), A('9'), A(')'), C('I'),
/* 11 - '0'     */      '0',    '=',    A('0'), A('0'), A('='), C('@'),
/* 12 - '-'     */      '\'',   '?',    A('\''), 0x5c,   A('?'), C('?'),
/* 13 - 'š'     */      0xa8,   0xad,   A(0xa8),A(0xa8),A(0xad), C('@'),
/* 14 - BS      */      C('H'), C('H'), CA('H'),CA('H'),CA('H'),0177,   
/* 15 - TAB     */      C('I'), C('I'), CA('I'),CA('I'),CA('I'),C('I'),
/* 16 - 'q'     */      L('q'), 'Q',    A('q'), 0x40,   A('Q'), C('Q'),
/* 17 - 'w'     */      L('w'), 'W',    A('w'), A('w'), A('W'), C('W'),
/* 18 - 'e'     */      L('e'), 'E',    A('e'), A('e'), A('E'), C('E'),
/* 19 - 'r'     */      L('r'), 'R',    A('r'), A('r'), A('R'), C('R'),
/* 20 - 't'     */      L('t'), 'T',    A('t'), A('t'), A('T'), C('T'),
/* 21 - 'y'     */      L('y'), 'Y',    A('y'), A('y'), A('Y'), C('Y'),
/* 22 - 'u'     */      L('u'), 'U',    A('u'), A('u'), A('U'), C('U'),
/* 23 - 'i'     */      L('i'), 'I',    A('i'), A('i'), A('I'), C('I'),
/* 24 - 'o'     */      L('o'), 'O',    A('o'), A('o'), A('O'), C('O'),
/* 25 - 'p'     */      L('p'), 'P',    A('p'), A('p'), A('P'), C('P'),
/* 26 - 'ï'     */      0xef,   0xf9,   A(0xef),A(0xef),A(0xf9),C(0xef),
/* 27 - '+'     */      '+',    '*',    A('+'), 0x7e,   A('*'), C('+'),
/* 28 - CR/LF   */      C('M'), C('M'), CA('M'),CA('M'),CA('M'),C('J'),
/* 29 - Ctrl    */      CTRL,   CTRL,   CTRL,   CTRL,   CTRL,   CTRL,
/* 30 - 'a'     */      L('a'), 'A',    A('a'), A('a'), A('A'), C('A'),
/* 31 - 's'     */      L('s'), 'S',    A('s'), A('s'), A('S'), C('S'),
/* 32 - 'd'     */      L('d'), 'D',    A('d'), A('d'), A('D'), C('D'),
/* 33 - 'f'     */      L('f'), 'F',    A('f'), A('f'), A('F'), C('F'),
/* 34 - 'g'     */      L('g'), 'G',    A('g'), A('g'), A('G'), C('G'),
/* 35 - 'h'     */      L('h'), 'H',    A('h'), A('h'), A('H'), C('H'),
/* 36 - 'j'     */      L('j'), 'J',    A('j'), A('j'), A('J'), C('J'),
/* 37 - 'k'     */      L('k'), 'K',    A('k'), A('k'), A('K'), C('K'),
/* 38 - 'l'     */      L('l'), 'L',    A('l'), A('l'), A('L'), C('L'),
/* 39 - '€'     */      L(0xa4),0xa5,   A(0xa4),A(0xa4),A(0xa5),C('@'),
/* 40 - '{'     */      '{',    '[',    A('{'), 0x5e,   A('['), C('@'),
/* 41 - '|'     */      '|',    0xf8,   A('|'), 0xaa,   A('\''),C('@'),
/* 42 - l. SHIFT*/      SHIFT,  SHIFT,  SHIFT,  SHIFT,  SHIFT,  SHIFT,
/* 43 - '}'     */      0x7d,   0x5d,   A('<'), 0x60,   A('>'), C('<'),
/* 44 - 'z'     */      L('z'), 'Z',    A('z'), A('z'), A('Z'), C('Z'),
/* 45 - 'x'     */      L('x'), 'X',    A('x'), A('x'), A('X'), C('X'),
/* 46 - 'c'     */      L('c'), 'C',    A('c'), A('c'), A('C'), C('C'),
/* 47 - 'v'     */      L('v'), 'V',    A('v'), A('v'), A('V'), C('V'),
/* 48 - 'b'     */      L('b'), 'B',    A('b'), A('b'), A('B'), C('B'),
/* 49 - 'n'     */      L('n'), 'N',    A('n'), A('n'), A('N'), C('N'),
/* 50 - 'm'     */      L('m'), 'M',    A('m'), A('m'), A('M'), C('M'),
/* 51 - ','     */      ',',    ';',    A(','), A(','), A(';'), C('@'),
/* 52 - '.'     */      '.',    ':',    A('.'), A('.'), A(':'), C('@'),
/* 53 - '/'     */      '-',    '_',    A('-'), A('-'), A('_'), C('@'),
/* 54 - r. SHIFT*/      SHIFT,  SHIFT,  SHIFT,  SHIFT,  SHIFT,  SHIFT,
/* 55 - '*'     */      '*',    '*',    A('*'), A('*'), A('*'), C('@'),
/* 56 - ALT     */      ALT,    ALT,    ALT,    ALT,    ALT,    ALT,
/* 57 - ' '     */      ' ',    ' ',    A(' '), A(' '), A(' '), C('@'),
/* 58 - CapsLck */      CALOCK, CALOCK, CALOCK, CALOCK, CALOCK, CALOCK,
/* 59 - F1      */      F1,     SF1,    AF1,    AF1,    ASF1,   CF1,
/* 60 - F2      */      F2,     SF2,    AF2,    AF2,    ASF2,   CF2,
/* 61 - F3      */      F3,     SF3,    AF3,    AF3,    ASF3,   CF3,
/* 62 - F4      */      F4,     SF4,    AF4,    AF4,    ASF4,   CF4,
/* 63 - F5      */      F5,     SF5,    AF5,    AF5,    ASF5,   CF5,
/* 64 - F6      */      F6,     SF6,    AF6,    AF6,    ASF6,   CF6,
/* 65 - F7      */      F7,     SF7,    AF7,    AF7,    ASF7,   CF7,
/* 66 - F8      */      F8,     SF8,    AF8,    AF8,    ASF8,   CF8,
/* 67 - F9      */      F9,     SF9,    AF9,    AF9,    ASF9,   CF9,
/* 68 - F10     */      F10,    SF10,   AF10,   AF10,   ASF10,  CF10,
/* 69 - NumLock */      NLOCK,  NLOCK,  NLOCK,  NLOCK,  NLOCK,  NLOCK,
/* 70 - ScrLock */      SLOCK,  SLOCK,  SLOCK,  SLOCK,  SLOCK,  SLOCK,
/* 71 - Home    */      HOME,   '7',    AHOME,  AHOME,  A('7'), CHOME,  
/* 72 - CurUp   */      UP,     '8',    AUP,    AUP,    A('8'), CUP,
/* 73 - PgUp    */      PGUP,   '9',    APGUP,  APGUP,  A('9'), CPGUP,
/* 74 - '-'     */      '-',    '-',    '-',    '-',    '-',    '-',
/* 75 - Left    */      LEFT,   '4',    ALEFT,  ALEFT,  A('4'), CLEFT,
/* 76 - MID     */      MID,    '5',    AMID,   AMID,   A('5'), CMID,
/* 77 - Right   */      RIGHT,  '6',    ARIGHT, ARIGHT, A('6'), CRIGHT,
/* 78 - '+'     */      '+',    '+',    '+',    '+',    '+',    '+',
/* 79 - End     */      END,    '1',    AEND,   AEND,   A('1'), CEND,
/* 80 - Down    */      DOWN,   '2',    ADOWN,  ADOWN,  A('2'), CDOWN,
/* 81 - PgDown  */      PGDN,   '3',    APGDN,  APGDN,  A('3'), CPGDN,
/* 82 - Insert  */      INSRT,  '0',    AINSRT, AINSRT, A('0'), CINSRT,
/* 83 - Delete  */      0177,   '.',    A(0177),A(0177),A('.'), 0177,
/* 84 - Enter   */      C('M'), C('M'), CA('M'),CA('M'),CA('M'),C('J'),
/* 85 - ???     */      0,      0,      0,      0,      0,      0,
/* 86 - ???     */      '<',    '>',   A('<'),  A('>'), A('>'), C('@'),
/* 87 - F11     */      F11,    SF11,   AF11,   AF11,   ASF11,  CF11,
/* 88 - F12     */      F12,    SF12,   AF12,   AF12,   ASF12,  CF12,
/* 89 - ???     */      0,      0,      0,      0,      0,      0,
/* 90 - ???     */      0,      0,      0,      0,      0,      0,
/* 91 - ???     */      0,      0,      0,      0,      0,      0,
/* 92 - ???     */      0,      0,      0,      0,      0,      0,
/* 93 - ???     */      0,      0,      0,      0,      0,      0,
/* 94 - ???     */      0,      0,      0,      0,      0,      0,
/* 95 - ???     */      0,      0,      0,      0,      0,      0,
/* 96 - EXT_KEY */      EXTKEY, EXTKEY, EXTKEY, EXTKEY, EXTKEY, EXTKEY,
/* 97 - ???     */      0,      0,      0,      0,      0,      0,
/* 98 - ???     */      0,      0,      0,      0,      0,      0,
/* 99 - ???     */      0,      0,      0,      0,      0,      0,
/*100 - ???     */      0,      0,      0,      0,      0,      0,
/*101 - ???     */      0,      0,      0,      0,      0,      0,
/*102 - ???     */      0,      0,      0,      0,      0,      0,
/*103 - ???     */      0,      0,      0,      0,      0,      0,
/*104 - ???     */      0,      0,      0,      0,      0,      0,
/*105 - ???     */      0,      0,      0,      0,      0,      0,
/*106 - ???     */      0,      0,      0,      0,      0,      0,
/*107 - ???     */      0,      0,      0,      0,      0,      0,
/*108 - ???     */      0,      0,      0,      0,      0,      0,
/*109 - ???     */      0,      0,      0,      0,      0,      0,
/*110 - ???     */      0,      0,      0,      0,      0,      0,
/*111 - ???     */      0,      0,      0,      0,      0,      0,
/*112 - ???     */      0,      0,      0,      0,      0,      0,
/*113 - ???     */      0,      0,      0,      0,      0,      0,
/*114 - ???     */      0,      0,      0,      0,      0,      0,
/*115 - ???     */      0,      0,      0,      0,      0,      0,
/*116 - ???     */      0,      0,      0,      0,      0,      0,
/*117 - ???     */      0,      0,      0,      0,      0,      0,
/*118 - ???     */      0,      0,      0,      0,      0,      0,
/*119 - ???     */      0,      0,      0,      0,      0,      0,
/*120 - ???     */      0,      0,      0,      0,      0,      0,
/*121 - ???     */      0,      0,      0,      0,      0,      0,
/*122 - ???     */      0,      0,      0,      0,      0,      0,
/*123 - ???     */      0,      0,      0,      0,      0,      0,
/*124 - ???     */      0,      0,      0,      0,      0,      0,
/*125 - ???     */      0,      0,      0,      0,      0,      0,
/*126 - ???     */      0,      0,      0,      0,      0,      0,
/*127 - ???     */      0,      0,      0,      0,      0,      0
};
