PC Keyboard Support
It’s been an issue since PC keyboard interfaces appeared, and has prolonged with emulators. It has always been a real pain to get PC keyboards to work properly on the Atari ST and its successors.
PC Keyboards and Atari machines
In most cases - and this is what zeST does - keyboard management is a 1:1 mapping of keys, which is sufficient for alphabetic keys, but causes problems when trying to produce other characters, as they are on different keys between PC and ST keyboards. Some emulators, such as Hatari, offer symbolic mapping, which tries to generate the correct keystroke(s) corresponding to the characters typed by the user. This is better in simple cases, but still far from perfect.
Since my goal is to make zeST a full replacement for an Atari ST, that means it should be possible to use it as a working computer, allowing the user to type text, write code, etc. So it needs perfect support for the PC keyboard.
Redefining keys on TOS
The Atari operating system (TOS) running in ROM has a rather simplified keyboard management. It only supports three sets of keys to character maps: plain, shift and caps lock. On some locales, such as French, special code in the ROM is used to add combinations with the Alternate key to produce additional characters. The OS does provide a means to replace the character maps, but only the mentioned three, with no simple way to redefine Alt combos.
Another important point was about dead keys: they simply are not supported by TOS, and required language-specific drivers to add support for those necessary key combos.
Also, AltGr, an important key on (non-US) PC keyboards, is not supported by TOS. This makes it necessary to fully rewrite keyboard management as a separate driver.
Introducing zkbd
zkbd is a full rewrite of the keyboard management of TOS, and completely replaces the keyboard interrupt manager.
It has complete support for AltGr, and proposes complete and extensive dead key combos. This makes it a perfect driver for zeST, as well as other systems with AltGr support such as the Milan or Aranym.
Such as zeST, zkbd is distributed under the GPL v3 free software license.
zkbd binary driver files are now provided in the zeST archive in the download section.
Conclusion
As a free/open source project, zkbd is open to suggestions, comments, bug fixes ^^’ etc.
If you have comments about this article, please reply to the dedicated Fediverse post.