--- /dev/null
+/*
+ * Keymap for russian keyboard.
+ * Modified by Roman V. Ignatov <ignatov@minix3.ru>
+ * Charset: cp1251
+ */
+
+
+/* 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('-'), A('-'), A('_'), C('_'),
+/* 13 - '=' */ '=', '+', A('='), A('='), A('+'), 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(233), A('q'), A(201), C('Q'),
+/* 17 - 'w' */ L('w'), 'W', A(246), A('w'), A(214), C('W'),
+/* 18 - 'e' */ L('e'), 'E', A(243), A('e'), A(211), C('E'),
+/* 19 - 'r' */ L('r'), 'R', A(234), A('r'), A(202), C('R'),
+/* 20 - 't' */ L('t'), 'T', A(229), A('t'), A(197), C('T'),
+/* 21 - 'y' */ L('y'), 'Y', A(237), A('y'), A(205), C('Y'),
+/* 22 - 'u' */ L('u'), 'U', A(227), A('u'), A(195), C('U'),
+/* 23 - 'i' */ L('i'), 'I', A(248), A('i'), A(216), C('I'),
+/* 24 - 'o' */ L('o'), 'O', A(249), A('o'), A(217), C('O'),
+/* 25 - 'p' */ L('p'), 'P', A(231), A('p'), A(199), C('P'),
+/* 26 - '[' */ '[', '{', A(245), A('['), A(213), C('['),
+/* 27 - ']' */ ']', '}', A(250), A(']'), A(218), 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(244), A('a'), A(212), C('A'),
+/* 31 - 's' */ L('s'), 'S', A(251), A('s'), A(219), C('S'),
+/* 32 - 'd' */ L('d'), 'D', A(226), A('d'), A(194), C('D'),
+/* 33 - 'f' */ L('f'), 'F', A(224), A('f'), A(192), C('F'),
+/* 34 - 'g' */ L('g'), 'G', A(239), A('g'), A(207), C('G'),
+/* 35 - 'h' */ L('h'), 'H', A(240), A('h'), A(208), C('H'),
+/* 36 - 'j' */ L('j'), 'J', A(238), A('j'), A(206), C('J'),
+/* 37 - 'k' */ L('k'), 'K', A(235), A('k'), A(203), C('K'),
+/* 38 - 'l' */ L('l'), 'L', A(228), A('l'), A(196), C('L'),
+/* 39 - ';' */ ';', ':', A(230), A(';'), A(198), C('@'),
+/* 40 - '\'' */ '\'', '"', A(253),A('\''),A(221), C('@'),
+/* 41 - '`' */ '`', '~', A('`'), A('`'), A('~'), C('@'),
+/* 42 - l. SHIFT*/ SHIFT, SHIFT, SHIFT, SHIFT, SHIFT, SHIFT,
+/* 43 - '\\' */ '\\', '|', A('\\'),A('\\'),A('|'), C('\\'),
+/* 44 - 'z' */ L('z'), 'Z', A(255), A('z'), A(223), C('Z'),
+/* 45 - 'x' */ L('x'), 'X', A(247), A('x'), A(215), C('X'),
+/* 46 - 'c' */ L('c'), 'C', A(241), A('c'), A(209), C('C'),
+/* 47 - 'v' */ L('v'), 'V', A(236), A('v'), A(204), C('V'),
+/* 48 - 'b' */ L('b'), 'B', A(232), A('b'), A(200), C('B'),
+/* 49 - 'n' */ L('n'), 'N', A(242), A('n'), A(210), C('N'),
+/* 50 - 'm' */ L('m'), 'M', A(252), A('m'), A(220), C('M'),
+/* 51 - ',' */ ',', '<', A(225), A(','), A(193), C('@'),
+/* 52 - '.' */ '.', '>', A(254), A('.'), A(222), C('@'),
+/* 53 - '/' */ '/', '?', A(46), A('/'), A(44), 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 - '-' */ NMIN, '-', ANMIN, ANMIN, A('-'), CNMIN,
+/* 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 - '+' */ PLUS, '+', APLUS, APLUS, A('+'), CPLUS,
+/* 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