Hello, welcome to the C128 Mystery Keyboards!

The purpose to create this page was to seek help in identification of  the first two keyboards shown here, but it will hopefully develop into a collection of all international C128 keyboards ever released. Just a good picture of the Swedish/Finnish version seems to be missing now!

About the history of the two keyboards: I aquired both as Spanish keyboards from TKS-Computer, and I believe this is true for one of them. The other one looks like a French keyboard, but according to Martijn van Buul, a real French keyboard has the AZERTY layout, and not the QZERTY one as found here. The existence of the "Í" character seems to indicate that it is an Italian keyboard. This has been confirmed by Guiseppe Liuzzo, who owns an Italian C128D with such a keyboard.

Most of the language specific firmware can be found in the Funet archive. Each keyboard layout needs the proper Kernal ROM chip to produce the correct codes, and a character ROM that contains the character images. It turned out that the Italian and French/Belgian localizations use the same character ROM, but a different keyboard layout and Kernal ROM. Each localized ROM set exists in two versions, the original version from 1985 and the updated version from 1986 (this date is displayed on the C128 start screen). The 1985 version is usually found in C128 and plastic C128D computers, while the updated version came preinstalled in the metal C128DCR computer. If you own a computer with a ROM set that is not available for download yet, please contact me if you want to contribute these to the archive. Of course you need a way to transfer the files you saved on your machine to me via email. Here are instructions how to create a file with all the necessary data.

One last note about the pictures: Most were taken by simply putting the keyboard onto a flatbed scanner, therefore the function key and numeric keypad area is missing, but it is the same on all keyboards anyways.

So here is the Spanish keyboard: (click to enlarge)

Spanish C128D keyboard

And here the Italian one: (click to enlarge)

Italian C128D keyboard

The most recent addition is the Norwegian keyboard, owned by Erlend Pettersen, who also kindly sent me this picture:

Norwegian C128D keyboard

Here is a German keyboard, owned by myself. I have plenty of them :-)

German keyboard

US Keyboard. It is from my own NTSC C128 machine.

US Keyboard

Belgian/French keyboard: This picture was sent to me by Raf Hofmans from Belgium. Thank you very much!

Belgian/French keyboard

And as a last minute addition, here is a link to Peter Karlsson's C128DCR picture page. There is a good close-up picture of a Swedish keyboard. He kindly allowed me to include his pictures on my page. Thanks Peter!

Swedish keyboard

Here is something that I never thought would exist: A Swiss-German keyboard for the C128D! The pictures were taken from a plastic 128D by Klaus Mandelatz. Some people might remember his name, because he designed IEEE488 interfaces for the C64 and C128. His articles with plans got published in German c't and 64'er magazines. Actually I ordered one of those PCBs back in 1986 :-)

Swiss Keyboard
more pictures: keyboard complete view (300kB) C128D inside view (288kB)

Instructions for dumping a localized ROM set to disk

Only a few commands are needed to create a file with the language specific firmware. You can either save the whole ROM in one file, or make separate files for each functional component of the ROM.

One file method:

Enter the built in machine language monitor with the MONITOR command. Now press the CAPS LOCK (or ASCII/DIN, ASCII/CC) key on your keyboard to activate the language specific character set and save the whole ROM with this command (use a string with up to 12 characters instead of NAME to describe your machine, e.g. SPAIN1985):
and then exit the monitor with the X command.

Separate file method:

Enter the built in machine language monitor with the MONITOR command. Now press the CAPS LOCK (or ASCII/DIN, ASCII/CC) key on your keyboard to activate the language specific character set and save the ROM parts with these commands:
and then exit the monitor with the X command.

Both methods have one drawback in common: They will not save the last byte of the kernal, which contains the high byte of the interrupt vector. But since this is the same on all C128 versions ($FF), I can add it easily when preparing the files for upload to funet. The BASIC part is actually not language specific, but it makes it easy for me to verify if the version is from 1985 or 1986. If you want to open up your machine, I'd be very interested in the part numbers that are written on the ROM chips (U18, U32-U35 in the C128/C128D, the C128DCR doesn't have U33 and U34).