mobileFF's blog: [今更誰得] MSX本体のみでシリアル通信してみる(2) #MSX https://mobileff.blogspot.com/2022/01/msx2-msx.html
の続きです。
ご興味あるか分かりませんが、能書きだけしか書いていない(1)はこちらです。
ご興味あるか分かりませんが、能書きだけしか書いていない(1)はこちらです。
mobileFF's blog: [今更誰得] MSX本体のみでシリアル通信してみる(1) #MSX https://mobileff.blogspot.com/2022/01/msx1-msx.html
さて、(2)でPCへのデータ送信はできたわけですが、ポケコンへの送信がまだでした。
ポケコンとやりとりするには、レベルコンバータというものを介する必要があるようでして、別の道具が必要になります。
必要な道具
MSX側
- MSX1以降の本体
- ATARI仕様のジョイスティックケーブル(5番ピン、6番ピンと9番ピンに結線されているもの)
ポケコン側
- レベルコンバータ用のIC(ADM3202ANZ)
- 0.1μF以上のコンデンサ x 2個(今回は1μFのコンデンサを利用)
- 25ピンシリアル変換コネクタ オス-オス
MSX側はPCの時とほぼ同じですが、レベルコンバータ用のIC(ADM3202ANZ)に+5V電力を供給する必要があるので、ジョイスティックポートの5番ピンの5V出力が必要になります。
ADM3202の回路図・ピンアサインは以下の通りです。
レベルコンバータにコンデンサを接続
用意したコンデンサを一つは1番ピン(C1+)と3番ピン(C1-)、もう一つは4番ピン(C2+)と5番ピン(C2-)に接続します。
MSXとレベルコンバータを接続
MSXのジョイスティックポートの5番ピン(+5V)をADM3202の16番ピン(VCC+)に接続します。ジョイスティックポートの6番ピン(TxD)をADM3202の11番ピン(T1in)に、同じく9番ピン(GND)をADM3202の15番ピン(GND)に接続します。
レベルコンバータとポケコンを接続
レベルコンバータの14番ピン(T1out)を、D-sub25ピンコネクタの3番ピン(RxD)に、同じくレベルコンバータの15番ピン(GND)をD-Sub25ピンコネクタの7番ピン(GND)に接続します。
これで、PB-1000側で受信待ちにして、MSX側からLPRINTなどを使うとデータをポケコン側に転送することが出来ます。
実行の結果は↓です。
ですが、ポケコンとの通信はいくつか問題がありました。
これは、私ごときでは原因が分からないのですが、Joy232側の設定でボーレートは変更できるのですが、9600bps以外だとPB-1000側で受信できませんでした。
Joy232はおそらくフロー制御機能がないので、受信側が処理で手一杯になっても、送信側に送信を止めてもらう手立てがありません。なので、MSX側の送信ペースがPB-1000側の受信能力を上回ってしまうとエラーになってしまうものと思われます。
LPRINTで文字列を100回ループで送信するプログラムを書いて試したのですが、ループ内でさらに空ループを0~9の10回くらいでも回して待ちが入るようにすると、エラーにならず受信することができました。
MSXとポケコンでのシリアル通信は、昭和の当時であっても、もちろん設備を整えればできないわけではありませんでしたが、MSXではモデム用途以外での純粋なRS232Cインターフェースがほとんどなく、あったとしても高額だったのではないかと思います。
年明けから何をやっているんだ…
— MobileFF (@mobile_FF_) January 2, 2022
MSXからPB-1000へのデータ送信ww #カシオ #ポケコン pic.twitter.com/iPVawh0LOu
ですが、ポケコンとの通信はいくつか問題がありました。
①9600bps以外に設定すると通信ができない
これは、私ごときでは原因が分からないのですが、Joy232側の設定でボーレートは変更できるのですが、9600bps以外だとPB-1000側で受信できませんでした。
②一度に送るデータ量が多いとBV Error(Buffer overflow)になる
Joy232はおそらくフロー制御機能がないので、受信側が処理で手一杯になっても、送信側に送信を止めてもらう手立てがありません。なので、MSX側の送信ペースがPB-1000側の受信能力を上回ってしまうとエラーになってしまうものと思われます。
LPRINTで文字列を100回ループで送信するプログラムを書いて試したのですが、ループ内でさらに空ループを0~9の10回くらいでも回して待ちが入るようにすると、エラーにならず受信することができました。
所感
MSXとポケコンでのシリアル通信は、昭和の当時であっても、もちろん設備を整えればできないわけではありませんでしたが、MSXではモデム用途以外での純粋なRS232Cインターフェースがほとんどなく、あったとしても高額だったのではないかと思います。
令和の現代ではその実現ハードルはかなり下がりましたよね。良い時代です。
コメント
コメントを投稿