I have two questions about scancodes when implementing a keyboard driver.
While I was implementing a rudimentary keyboard driver, I noticed that two (maybe more, still about to find out) keys on my keyboard deliver the same scancode to my OS. Is there a way to distinguish them in this situation? (Additional informations: German keyboard layout, Laptop, the keys involved are the "3" from above the letters and the "Raute" (german), which is "#" (just left on the bottom half of the enter key)
-> Image to show: https://de.wikipedia.org/wiki/Datei:KB_Germany.svg
The second questions is: I have some keys on my keyboard which are considered to be "multi-character characters". Meaning I got keys that aren't represented in one, but two bytes (Ä, Ö, Ü, ß, ...). Now, if I were to press one of these keys, how do I read the bytes from such a character? Would I need to use something like
Code: Select all
/* Reads 2 bytes from port 0x60 */
uint16_t multichar = inw(0x60);
Code: Select all
/* Reads one byte from port 0x60 */
uint8_t singlechar = inb(0x60);
Hope you can help me.