International keyboard support (Developers)
So based on my experiments and what I'm reading here, I think I can summarize it as follows:
* Regardless of the physical keyboard layout, an application program reading the keyboard using the BIOS routines will see 8 bit values. (This can't change or the world would be broken.)
* KEYB.COM is used to provide alternate mappings of keys to values returned by the BIOS, but ultimately you still get the same type of output - an 8 bit value.
* Special key sequences such as F1, Alt-X, etc. still generate a 0x0 and an 8 bit value that remains unchanged regardless of the KEYB.COM changes.
* To convert an 8 bit character value to Unicode you need to know what codepage was specified with KEYB.COM. Then you can try to map the 8 bit value received from the BIOS call to a Unicode codepoint.
The test version of IRCjr I am writing is already mapping incoming Unicode to arbitrary values when it receives a message. I have a mapping table for CP437, but any mapping table can be provided. (I'll need to make up additional tables.) Once I figure it out for IRCjr I'll reuse the code in Telnet and finally have proper UTF-8 support, and hopefully my European friends will forgive me for being so late with this.
Complete thread:
- International keyboard support - mbbrutman, 21.01.2023, 21:44 (Developers)
- International keyboard support - marcov, 22.01.2023, 14:19
- International keyboard support - tom, 22.01.2023, 18:06
- International keyboard support - Laaca, 22.01.2023, 21:55
- International keyboard support - mbbrutman, 22.01.2023, 22:46
- International keyboard support - Laaca, 23.01.2023, 00:20
- International keyboard support - bretjohn, 23.01.2023, 18:12
- International keyboard support - mbbrutman, 23.01.2023, 23:51
- International keyboard support - bretjohn, 24.01.2023, 21:10
- International keyboard support - tom, 12.02.2023, 18:39
- International keyboard support - bretjohn, 13.02.2023, 15:35
- International keyboard support - tom, 13.02.2023, 18:36
- International keyboard support - bretjohn, 14.02.2023, 04:51
- International keyboard support - tkchia, 13.02.2023, 20:13
- International keyboard support - bretjohn, 14.02.2023, 05:05
- International keyboard support - tom, 13.02.2023, 18:36
- International keyboard support - bretjohn, 13.02.2023, 15:35
- International keyboard support - mbbrutman, 23.01.2023, 23:51
- International keyboard support - tom, 14.02.2023, 12:17
- International keyboard support - tom, 15.02.2023, 13:19
- International keyboard support - marcov, 15.02.2023, 18:14
- International keyboard support - tom, 15.02.2023, 21:31
- International keyboard support - mbbrutman, 18.02.2023, 03:17
- International keyboard support - Aitor, 06.03.2023, 01:09
- International keyboard support - mbbrutman, 18.02.2023, 03:17
- International keyboard support - tom, 15.02.2023, 21:31
- International keyboard support - marcov, 15.02.2023, 18:14
- International keyboard support - tom, 15.02.2023, 13:19
- International keyboard support - mbbrutman, 22.01.2023, 22:46