2010年9月6日作成 2011年7月15日更新

完成図

X68000のキーボードを
PS/2ポートにつないでみる(C言語編)

ずいぶん前に作ったアダプタが、最近のマザーボードや USB PS/2 コンバータで使えないので、プログラムを書き直しました。

Microchip 社の無料で使える開発環境の MPLAB で C言語が使えるようになったので、C言語で書きました。アセンブラで書いた物より、いくらか読みやすくなったと思いますので、勝手に改良して使ってください。

プログラム

C言語で書きました。(HI-TECH C / PICC)

ASUS のマザーボード MA2-VM と SANWA SUPPLY の USB-PS2 CONVERTER USB-CVPS2 で、調子良く動くことを確認。旧COMPAC PROLIANT ML350(PCサーバー)では BIOS でキーボードエラーが出て立ち上がらないけど直すつもりは無い。

メモリ使用量はこんな感じ。PIC16C84 でも PIC16F84 でもどちらでも使用可能。

持っていないので試していないけど PIC16F88 でもハードウェアの設定を少し書き直せば使えると思う。PIC16F88 のほうが、安くてメモリも多いのでこれから買うなら、PIC16F84 よりも PIC16F88 のほうがよいでしょう。一個 200円くらいです。

前にアセンブラで書いたときには、ホストコマンドの F4:ReadID を処理していなかったので、PC起動時のテストでキーボードエラーとなっていたようです。通信タイミングもおかしかったかも?

PS/2の通信中に割り込みが掛かると、PS/2の通信タイミングがおかしくなるので、X68000キーボードとの歩調同期通信は割り込みを使わないで処理をした。この副作用で、プログラムサイズも縮んだ。

また、F3:Set Typematic Rate/Delay コマンドも無視していたので、キーのリピート間隔が X68000 キーボードの初期値から変えられなくて、リピートが遅かったんだけど、これをちゃんと処理するようにしたら、かなり軽快に入力できるようになった。

今回、全面的にC言語で書き直したんだけど、なかなか BIOS のテストを通過するところまで行かなかった。どうしても動かないので、マイコンで簡易ロジアナのようなものを作って、市販のキーボードが PC とどんなやり取りをしているのかを調べて、やっと動くようになった。波形を目で見られると、とてもわかりやすい。もう少しちゃんと動くロジアナを作りたくなった。

回路図

2001年の物と同じです。

X68PS2KEY回路図.PDF

製作例

完成図 完成図

参考にした資料


webmaster@kyoutan.jpn.org

('A`)