はじめに
8ビットCPUのZ80を搭載したMSXが販売された当時、MSXはシリアルポートに接続したモデムを使って通信をしていました。
現在のネットワークサービスを利用するには処理能力が低いため、最近のプラットフォームを介してサービスを利用する方法が提案されています。
MSXPiは、MSX用カートリッジ上に、CLPDとRaspberry pi zero wを搭載することで、MSXからの命令をカードスロットー>CPLDー>Raspberry pi zero wのGPIOと伝達して、Raspberry pi zero w上のLinuxで処理する仕組みを持っています。
本記事では、MSXPiを作製したので、紹介します。
MSXPiカートリッジ
基板上に搭載されるICはカートリッジバスから届いた信号をRaspberry pi zero wとSPI通信できるように変換するPLCC型のCPLDが重要な役割を演じています。
MSX側のシリアル通信とRaspberry pi側のパラレル通信の変換を行います。
もう一つのチップはROMで、MSXPi用にカスタマイズされたMSX-DOSが搭載されており、Raspberry pi zero wのSDカードに保存されているディスクイメージを使ってMSXを起動できるようです。
さらに、BASIC上でRaspberry pi zero w上のLinuxに操作可能にするCALLコマンドも含まれています。
このROMの書き換えは、MSX-DOS上で専用コマンドを使ってRaspberry pi zero wが行うようです。
Raspberry pi zero w上では、MSXとLinuxが通信できるようデータ変換を行うサーバーを起動します。
Raspberry pi zero wで使用するSDカードイメージは公開されています。
カートリッジ組み立ての注意点
基板の表面です。

基板右上にRaspberry pi zero wを接続します。
この部分に部品の足が見えています。
基板の裏面です。

左上にピンソケットがはんだ付けされています。
MSXPiでは、Raspberry pi zero wの部品面がカートリッジの前面を向くようにコネクトを取り付ける必要があります。
WHのようにすでにピンヘッダが部品面から飛び出すようにはんだ付けされている場合は、ピンソケットを基板裏面に取り付けることになります。
ファームウェアとSDカードの準備
CPLDへのファームウェア書き込みを行います。
このチップには、JTAGコネクタを介して、USB-ブラスターなどでファームウェアを書き込みます。
Raspberry piのGPIOを介してファームウェアを書き込むこともできますが、回路図を見るとJTAGに5 Vが印加されているので、5 Vと3.3 Vの電圧変換の基板を介して接続する必要があるようです。
Raspberry pi zero w起動用のSDカードとして用意されているものを始めに使い、カスタマイズが必要なったら、Raspberry pi osに機能を追加していくのがいいようです。
おわりに
MSXPiを組み立てました。
MSX側のクライアントプログラムとLinux側のサーバープログラムを用意することで、MSXがLinuxのリソースやインタネット接続が可能になります。
通信部分はROMに保存した専用BIOSが専従してくれるので、使用にあったプログラムを用意するだけでいいようです。
実機で作業するのは、大変なので、エミュレーター上でサポートしているサービスの確認を行っていきたいと思います。