Closed megagrump closed 2 years ago
Well, it seems like the keyboard mapping names are not strictly following any ISO or IETF standards, but are more "inspired by" standards like ISO 3166-1 and IETF BCP 47, preferring to use an ISO or IETF tag/sub-tag that seems appropriate. Since there isn't such a tag for "international" or "dvorak" (since the standards refer to languages, not keyboard layouts), I'm personally okay with these non-standard labels, especially since trying to invent our own sub-tags might result in us directly conflicting with an ISO or IETF standard.
For the record, it seems like the kernal is identifying keyboard layouts through KLIDs (see also: http://kbdlayout.info/), which are pretty much just abstract hexadecimal numbers and not meaningful names, hence the attempt to map languages to them.
What might be a good idea in the future, though, is to change these labels to exactly match the keyboard type labels from the kernal itself:
(I wonder if en-ca
, immediately after fr-be
, is a typo. It might come from https://github.com/commanderx16/x16-rom/blob/master/keymap/klc/1009%20Canadian%20French.klc)
Now that there is the KEYMAP
basic statement, there is no need any more for this secret API between the emulator and the ROM to set a numeric keymap index. Instead, the emulator should inject the BASIC statement with the string passed from the command line and not know about the set of legal strings.
Oh hey, that's a good point, too. Let's make an issue to track that piece of work.
Solves #402. Unsure if
en-us-int
anden-us-dvo
are correctly named like this, please review.