2015年01月25日

OneChip MSXのキーボード回路にパッチを当てました

One Chip MSXを持っていますが、この子は結構接続するキーボードを選ぶようです。
気になってはいましたが、とりあえず使えるキーボードがあったのでそれで使っていましたが
DE0バージョンを発見したため、これであればSignalTap IIが使えるので
これで原因を探ってみました。
どうも、原因を調べてみたところ、キーボードとの送受信のbit数が足りず、必要最低限のクロックだけ
送受信したらあとは無視するようです。(クロックを送るのはキーボード)
そうすると、たとえばCaps等LEDの切り替えコマンドを送信後、少し(タイムアウト時間より長く)
待ってからAckを送信するキーボードなら残りのクロックで受信回路モードに切り替わっても
タイムアウトが発生してAckを受ける時には最初から受信されるが、コマンド受信後即座に返信する
キーボードではコマンド送信の残りのクロックで受信モードに切り替わり、そのままAckを受けるので
コマンドのパリティやSTOPビットがAckの先頭についてしまうため正常にAckと認識されない
という問題のようです。
キーボードの仕様とおなじ11bit全て受信するまで送信モード・受信モードを続けるように
修正して手持ちの全てのキーボードで動作するようになることを確認しました。
eseps2.vhd.diff
で差分データをアップロードしますので同じ現象をもっている人は使ってみてください。
posted by プー at 20:42| Comment(4) | One Chip MSX | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。