if the QL Base is flashed with the German keyboard layout and the operating is SMSQ/E and the operating system keyboard and language is changed to another language with: LANG_USE and KBD_TABLE commands, to something like French, how does the QL Base react?
Most of the keys will work as expected some will not. They main reason is the difference between QL Keyboard layout and PS/2 Keyboard layout. Lets make an example: On the German QL Keyboard you have on a single Key "\" and "^". Where as on a PS/2 Keyboard these are 2 different keys. To generate these characters a PS/2 Keyboard will do the following for "^"
Send 0x0E to make = Press,
Send 0xF0, 0x0E to break the key = release
Very simple. But on the QL Keyboard you press shift and the "\" "^" Key you have to first "break" the shift by send
0xF0, 0x12
and then send the code for "^".
Even worse with the "\" what you have to do, here in decimal, directly from the source code:
keyboard.write(224); // send "up"
keyboard.write(17); // send "ALT" - up + ALT = Make "ALT GR" = (E011)
keyboard.write(78); // send "ß"
keyboard.write(240); // send break
keyboard.write(78); // send "ß"
keyboard.write(224); // send "up"
keyboard.write(240); // send break
keyboard.write(17); // send "ALT" Break ALT - GR = (E0F011)
German Keyboard is easy in this manner, it has only one key which needs special attention. UK Keyboard already 5. I have no idea how it is with the other keyboards. If there is a need of other drivers, I am willing to adapt them.
Hope this helps to better understand.
Stephan