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.)
Right.
> * 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.
Right.
> * 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.
Right.
> * To convert an 8 bit character value to Unicode you need to know what
> codepage was specified
Right.
> with KEYB.COM.
wrong. codepage is a DISPLAY/VGA Bios thing, not related to the KEYB option.
example: as a german, I always used CP 437 (actually 850 now because €).
however I use the standard BIOS when using a US ASCII keyboard, but KEB GR when using a german keyboard.
Similarly when hitting CtrlAltF1/CtrlAltF2 to enable/disable KEYB, the codepage remains the same.
> Then you can try to map the 8 bit
> value received from the BIOS call to a Unicode codepoint.
Right. only in the context of the current codepage can you know if
0x9A is Ü (CP437) or ³ (CP869) and translate it to the correct UTF value.
> The test version of IRCjr I am writing is already mapping incoming Unicode
> to arbitrary values when it receives a message.
btw UNI2ASCI by Bret has done a really heroic effort to map dozens of UNICODE values that 'look similar to T' to the available 'T' (and the rest of a-zA-Z).
it's probably better to display 'A' when 'Ä' is not available in the current codepage then to display '?'.
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