8ビットマシン用ネットワークI/F
それは正月の森邸でのお話
ある正月、森%S-OSUC代表さんの新居(結婚前なので独り暮し)にて、S-OSUCのスタッフミーティングが開かれました。皆身辺が忙しくなっているものの、それでも何かやりたいという思いがありました。
「この前言ってた共通シリアルドライバも全然手をつけてないし」
(一同)グサッ。
のっけからこれでは心許ない。
いろいろな話の中で、やっぱり今はネットワーク時代であって、いくら古いマシンとはいえスタンドアロンというのは使いにくいではないか、以前会員からのお便りでMSXのジョイスティックI/Fを使ってLANみたいなことしてるという話もあったし、何か考えないかい?ということになりました。
実はそれ以来何も話し合ってなかったりしますが(ぉぃぉぃ)、個人的には折につけいろいろ考えたりしています。ここではその例会をきっかけにちょっと構想したネットワークI/Fを紹介します。
非力なマシンにシンプルなI/F
とりあえず8ビットマシンについているI/Fを考えてみましょう。
通信に使えるI/Fといえば、RS232Cが代表的です。その他、例えばジョイスティックI/Fはパラレル伝送に使用できることも比較的知られています。SASIとかGP-IBとかも装備しているマシンはないこともないですが、これはあまり普遍的ではないですね。普遍的といえばジョイスティックだってそうではありません。ないマシンの方が多いくらいです。
ではRS232Cを使用するとして、どのようなI/Fが実現できるのでしょう?RS232Cは元々一対一での通信に使用するように設計されているため、LANのような多対一の通信には新たな工夫が必要になります。そのひとつがHDLC通信ということになりますがすべてのシリアルLSIがこれに対応しているわけではありません。
また物理的な接続形態も問題になります。バス型につなぐとすれば10BASE-5のようなトランシーバとかが必要になりますし、スター型につなぐとすれば10BASE-Tのようなハブが必要になります。チェーン型ではケーブルの加工が必要になります。まぁトランシーバやハブよりは安く上がるんでしょうけど。
共有メモリMKY-28
ステップテクニカ製のデバイスMKY-28は、SRAMと同様の接続ながら離れた二つのデバイス間をシリアルで結び、自動的に一方の変更をもう一方に反映させます。一種のデュアルポートRAMとして扱うことができるのです。この間のプロトコルはMKY-28特有のものなのですが、それ同士しかつながないものなので気にしなくていいわけです。
デュアルポートRAMでは、(1)送信データを書きこむ
(2)特定アドレスにデータを書く (3)相手に割り込みがかかる
(4)割り込みを受けて、データを読み出す (5)読み終わったら特定アドレスにデータを書く
(6)相手に割り込みがかかる (7)割り込みを受けて、さらに送信するデータがあるなら繰り返す…という手順にてデータの転送を行います。デバイスに対する初期設定もいらないですし、メモリに対してのアクセスタイミング以外は取りこぼしとかオーバーランとかはありえません。
物理接続ですが、MacのPhoneNetみたいに電話線を使用します。都合上二芯ではなく四芯の線を使うのですが、これには理由があります。
見た目の接続は、あるマシンを起点にしてチェーン状につないでいきます。但し、終点のマシンにはターミネーターをつなぐか相当の処置を行います。この処置によって、終点では通信が折り返すようになっています。実は四芯のうち中二芯を送信、外二芯を受信として使用することで、リングネットワークとして構成されるようにしているのです。
長距離の伝送にはRS422のような差動I/Fが有効確実なのですが、GNDレベルぐらいはあわせないととなると5本必要になります。その点では10BASE-Tケーブルを使うほうがいいかもしれません。電話線ほどではないにしろ、安く入手しやすくなってますからね。
作られる日は来るのか
残念ながらボードだけは作らないといけません。ですがその他の費用はかなり安く抑えられるんではないかと思います。問題は需要。果たしてどれだけの人がこれを欲するのか、わかりませんです。昔NIFTYで話をふったら何人か欲しいという人がいましたが…。