On Sun, Feb 18, 2024 at 1:52 PM Eero Tamminen <
oak@xxxxxxxxxxxxxx> wrote:
>
> Modifiers are going to be a problem:
>
> * Many of the characters on Atari keyboard can be entered only by
> providing modifier. For example on Italian TOS, to get "é" character,
> one needs to press Shift-"è". Are you going to synthetize the required
> modifier, if entering the key "é" on host keyboard did not require Shift
> (and *only* then)?
>
> * Shift needs to be passed to emulation from host, as it's one of the
> standard keys, but that can cause on Atari side TOS to modify the
> symbolic->ST-scancode mapped character. Most likely this is much less
> of a problem than above one, and can probably be ignored...
Shift does get passed from the host. It is not a problem, as far as I can tell?
The Italian keymap is implemented, and the è/é key works exactly as expected in my testing. This is not a problem either.
> I'm not sure whether it makes sense to add mappings from other key
> mappings to US one. For example accented versions of a, e and o letters
> are on different scancodes in different ST keymaps (e.g. "ö" on fi/no/se
> vs. de one). IMHO better just to leave those extra ones out.
The reason for this I left as a comment in the code, but it's only because the US map is a default fallback. For received keys that have no other conflict, I feel it is better to add to the default map than have them do nothing. Even if the mapping is not ideal, a key that does something is better for a user than one that does nothing. It also provides a concise summary of the international keys for reference in the code.
For all the other mappings I do not include any of these, because they will never be assigned by default.
So far there are no conflicting overlaps between SDL codes, but if this does arise, I would just try to choose the most useful one, and leave a comment about the other.
-- Brad Smith