Having the German hardware, I wanted to have the German keys with the emulator. I wrote an mail to David. He directed me to Knut Roll-Lund who adapted the emulator to the Norwegian language.

Thank you to David Keil. Since version 6.10 the emulator supports the whole international keyboard. My TRS-80 keyboard files are made to use the TRS-80 emulator V6.20 from David Keil on a German PC with a German Keyboard as a German TRS-80 Model III. The commandline goes like this:

TRS_KBD.EXE /M DE.KBD TRS80.EXE

An additional parameter for the config file is permitted. Because I don't know how to type in the AltGr characters [\]{|}~²³µ and the normal characters on my real German TRS-80 Model III, the PC83.KEY file don't assigns these to any TRS-80 keys. If anyone can help, I will change this in the future. Any other character on the German keyboard is used within the emulator.

My TRS-80 keyboard files are for free. I don't want any payment for them. But I'm not responsible for any damage that may occur with the included software.

On my way to that I had to gather the following information and want to share them here on the internet.

The German Model III keys have this layout ...

... and are mapped this way.

Address\Bit 0 1 2 3 4 5 6 7 column
3801H > a b c d e f g 0
3802H h i j k l m n o 1
3804H p q r s t u v w 2
3808H x z y ü + ö ä # 3
3810H 0 1 2 3 4 5 6 7 4
3820H 8 9 ß ´ @ , . - 5
3840H Enter Clear Break Space 6
3880H L-Shift R-Shift             7

The German PC keyboard has this layout ...

And here is some additional information about my German PC keyboard (496KB). The characters ² ³ { [ ] } \ @ € ~ | µ I get holding down the AltGr as a special shift state. The characters ˆ´` are typed before space or other characters to get international characters like â é ì.

And now something about the character set. The emulator uses 8x12 pixel per character. The FNT file starts with 12 bytes for character 0. Then 12 bytes for character 1 and so on. Each character starts with the highest line. The part behind byte 3072 (12x256) is an inverse set plus 64 special characters. I don't know if the emulator uses that part at all, but the length of the file is checked for full size.

That's it for now. Special thanks to David Keil and Knut Roll-Lund.