MSX PS/2 Keyboard Interfacing

If you want to use an external keyboard on an MSX, you really only have a few options; either hack something up with an Arduino, or buy a pre-made cartridge from Leonardo Padial Ortiz in Spain:

The cost of the cartridge in 2020 is 60 Euro.

Some basic good points:

  • Fits in a standard cartridge slot, no need to open the system
  • Supplied without a case (but can easily be fit into a Konami style cart case)
  • Works without any configuration
  • No issues when directly connected to a PS/2 keyboard

Some negatives:

  • Doesn't initially work through my Belkin Omniview KVM, but if unplugged/plugged in again, is picked up
  • Is designed to use a specific keyboard layout (broadly a Spanish 101 key layout)
  • Some unmapped keys, when pressed caused the interface to lockup and require a reboot of the system

Keyboard Layout Issues

I've tried several keyboards with the interface; existing 'standard' UK layouts, a dedicated Japanese layout (as used on my NEC PC-9821) and had issues with both of them - keys that lockup the interface (and require a reset/power off of the MSX), or that do not print the expected characters.

I've tried to summarise my findings here.

This is the keyboard around which Leonardo designed the keyboard interface. It does mean that if your layout differs significantly, then your keys will be in completely the wrong place.

Unfortunately it's quite an old and rare keyboard (and not one to be found in the UK), although it is based on a popular Mitsumi OEM design I couldn't track down an exact match in the correct language layout.

The only hints to how keys are mapped are the following images from Leonardo's website:

A standard 104 key UK layout PS/2 keyboard. I use this successfully with an Amiga 500, Atari STe and a ZX Spectrum (as well as a 486 PC) through the appropriate adapter interfaces. Nothing special about it, and it generally 'just works'.

The following graphic indicates the problem with this layout:

  • Red indicates keys which cause the keyboard interface to lockup.
  • Blue indicates primary key codes which do not print the correct character.
  • Purple indicates the secondary key codes which do not print the correct character.

There's too many differences in key layout for this to be a practical option - you'd either have to redraw lots of key caps, or remove the offending 'system freeze' keys for it to be worthwhile, and since this is a shared keyboard with other systems, I can't really do that.

Result? Not workable either; too many missing keys (e.g. a working backslash).

A Japanese 109-key layout that is used on my NEC PC-9821 via an appropriate NEC to PS/2 adapter. I would have assumed that the Japanese layout would have been closer to the MSX Japanese keyboard…

  • Red is a key that freezes the cartridge
  • Blue is a primary key that doesn't produce the character/symbol indicated
  • Purple is a secondary key that doesn't produce the character or symbol indicated

Here is the output of the actual keys on the MSX screen:

Using the Japanese keyboard layout is even worse than the the UK layout as the shift keys do not work as expected (variation of caps effects and symbol-shift type effects). There are also still variations in characters produced (for example, the Yen or bar|pipe key doesn't work). Again, it would work to a certain extent with rewritten keycaps, but since the current keycaps are fine for the NEC PC-98, that's not an option.

Result? This one isn't usable either, so I'll keep it purely for the PC-9821.

I bought this keyboard from Amazon UK as it was the closest Spanish keyboard layout to the Unisys keyboard that Leonardo based the keymapping on. The only apparent difference is that this has the modern Windows keys and an Alt-Gr key, all the other keycaps being the same.

Actual key layout:

All except one of the entirely black key caps are keys which will lock up the cartridge interface. Do NOT press them!

There are still some rather obvious problems with missing keys, this is despite trying all combinations of caps, shift, control and code/graph key modifiers. These are the most obvious ones:

  • [ - Left square bracket
  • { - Left curly bracket
  • ' - Single quote
  • ¥ - Yen/Yuan sign
  • <, > - Less-than and greater-than sign
  • @ - At-sign
  • \ - backslash character

Result? Waste of time. This one goes in the bin.

The MSX forum reccomended the Microsoft RT9443 as a working model on the LP PS/2 interface. Next task is to try and track down one of them to test.

It turns out that most people who are using the RT9443 keyboard have it in US layout. Rather than buy another keyboard and find I'm the first to try it (and it not work - since at a minimum the backslash key is in a different location!), I'm skipping the UK model and going straight to the US layout

As above, a reccomended keyboard from the forum, the recommendation being:

This one (Microsoft RT9443) works flawless. It even passes the infamous Gradius test (flying to the left top of the screen while still being able to shoot).

This keyboard is in US layout, as used by most others. There's a video of the RT9443 keyboard in action with the keyboard interface here:

  • Update: June 25th, 2020 - Found a cheap RT9443 on (shipping around ten times the price of the keyboard!).
  • Update: July 7th, 2020 - Keyboard arrived

Result: It doesn't work. Same issues as the previous keyboards - no backslash/Yen key, missing bracket keys etc. This is getting ridiculous!!!


Although it does work, unless you can find a keyboard that can absolutely produce all needed characters (with the problem being that there isn't any data anywhere about what works and what doesn't), I think there are too many quirks with the interface.

Honestly, I can't recommend this as a replacement keyboard for someone who will be doing a lot of typing (programming, for example) on the MSX. I guess it's good enough for occasional use or gaming (my intended use), but the hardcoded layout of the keys and the behaviour of the cartridge when you press an unmapped key(!) is a real issue in my opinion.

If there was the ability to reflash the cartridge with an alternate keyboard scancode configuration it would go a long way to resolving the above problems.

  • blog/msx_padial_kb.txt
  • Last modified: 2020/07/07 16:22
  • by john