diff --git a/src/keyboard.c b/src/keyboard.c index 09120daa9aee5213bb21717538546479313ceb89..a24ceaf2f2fc9adfbceca3e4a23a27fa9744d23f 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -8,6 +8,7 @@ void init_keymapping() shift_pressed = FALSE; + // alphabetics letters and space KEY_MAPPING[0x1E] = (key_t){'a', 'A'}; KEY_MAPPING[0x30] = (key_t){'b', 'B'}; KEY_MAPPING[0x2E] = (key_t){'c', 'C'}; @@ -35,6 +36,32 @@ void init_keymapping() KEY_MAPPING[0x15] = (key_t){'y', 'Y'}; KEY_MAPPING[0x2C] = (key_t){'z', 'Z'}; KEY_MAPPING[0x39] = (key_t){' ', ' '}; + + // Numeric row + KEY_MAPPING[0x02] = (key_t){'1', '!'}; + KEY_MAPPING[0x03] = (key_t){'2', '@'}; + KEY_MAPPING[0x04] = (key_t){'3', '#'}; + KEY_MAPPING[0x05] = (key_t){'4', 0}; + KEY_MAPPING[0x06] = (key_t){'5', 0}; + KEY_MAPPING[0x07] = (key_t){'6', 0}; + KEY_MAPPING[0x08] = (key_t){'7', '&'}; + KEY_MAPPING[0x09] = (key_t){'8', 0}; + KEY_MAPPING[0x0A] = (key_t){'9', '('}; + KEY_MAPPING[0x0B] = (key_t){'0', ')'}; + KEY_MAPPING[0x0C] = (key_t){'-', '_'}; + KEY_MAPPING[0x28] = (key_t){'\'', '"'}; + + // KEY_MAPPING[0x2E] = (key_t){'e', '2'}; // é + // KEY_MAPPING[0x20] = (key_t){'"', '3'}; + // KEY_MAPPING[0x12] = (key_t){'\'', '4'}; + // KEY_MAPPING[0x21] = (key_t){'(', '5'}; + // KEY_MAPPING[0x22] = (key_t){0, '6'}; // § + // KEY_MAPPING[0x23] = (key_t){'e', '7'}; // è + // KEY_MAPPING[0x17] = (key_t){'!', '8'}; + // KEY_MAPPING[0x24] = (key_t){'c', '9'}; // ç + // KEY_MAPPING[0x32] = (key_t){'a', '0'}; // à + // KEY_MAPPING[0x25] = (key_t){')', 0}; // ° + // KEY_MAPPING[0x26] = (key_t){'-', '_'}; } char keyboard_map(unsigned char code) diff --git a/src/main.c b/src/main.c index bbe2e7e106fffe7802750d6e2b5ab7b129255984..bda70a6d3f47c31baab69ab1e9a5bcdcd1d01e6a 100644 --- a/src/main.c +++ b/src/main.c @@ -40,18 +40,15 @@ void main(unsigned int *mboot_info) init_keymapping(); while (1) { - // puthex(_inb(0x64)); - if (_inb(0x64) == (0x1D)) { _outb(0x64, 0x1C); - char c = keyboard_map(_inb(0x60)); + unsigned char s = _inb(0x60); + char c = keyboard_map(s); if (c) putc(c); - // puthex(_inb(0x60)); + // puthex(s); } - - // puthex(_inb(0x60)); } for (;;)