手元にFM TOWNS用のJISキーボード、FMT-KB107があるのでPCにUSB接続する為の変換アダプタを作ってみました。
例によって使っているのはPIC18F14K50です。キーボード側のコネクタがヒロセのHR12というあまり流通してないタイプなので入手に苦労するかも知れません。秋葉原なら西川電子の2Fで300円弱で購入出来ました。
FM TOWNS用キーボード、および互換性があるキーボード(FMR用とかOASYS用とか結構あるらしいです)の仕様は
- 9600bps
- スタートビット1、ストップビット1
- 偶数パリティ
というごく一般的なシリアル通信らしいので、PICのUSARTでお手軽に処理しています。この辺はX68000キーボードのUSB変換アダプタと同じです。
あくまでFM TOWNS用JISキーボード専用です。親指シフトキーボードは配列が異なる上に返すスキャンコードも異なるので対応していません。(HID キースキャンコードへのマッピングをどうするか、と言うだけの話ではありますが、手元に実機が無いので)
また、FM TOWNSは非常に多くの種類のキーボードが発売されたようで、この変換アダプタで対応可能なのは
- JISキーボード、テンキーあり、拡張キー(?)あり (FMT-KB107)
- JISキーボード、テンキーあり
- JISキーボード、テンキーなし
あたりではないかと思います。もしかしたらFMR用のJISキーボードやOASYS-100シリーズ用のJISキーボードも使えるかも知れません。
それにしてもカーソルキーが返すスキャンコードが独特で、赤本(アスキー出版局刊、テクニカルデータブック)が役に立ちませんでした。あと、赤本によればスキャンコード1byte目にはSHIFTキーやCTRLキーの押下状態が格納されているらしいのですが、ロジアナで見る限りそのような事はありませんでした。ちょっと意味不明です。
追記
プリント基板で作ってみました