MYCPU80でCP/Mを!
超巨大基板の8080互換HCMOS・CPUでCP/Mを走らせてしまおうという、なんとも狂気なプロジェクトです!
[第6回]
●データ送受信方法の変更
MYCPU80はFTDI社のUSB・シリアル変換IC、FT232RLを使ってUSBをRS232Cに変換して通信を行ないます。
MYCPU80のCPU回路にはRS232C回路はありませんから、FT232RLとの間で行なわれるRS232C通信はPIC16F88が受け持っています。
ボーレートは2400bpsと余り速くありません。
通信方式もオーソドックスなASCIIキャラクタで行なっています。
送信側はバイナリデータを16進数に置き換えてそれをさらにASCIIコードに変換して送信し、受信側はそれを逆の手順でもとのバイナリデータに戻します。
たとえばC3,00,80というデータは43,33,30,30,38,30というようにASCIIコードに置き換えて送信します。
これはいかにも遅いです。
TK−80モニタのSAVE、LOADキーによる通信はこの程度でもよかったのですが、ZB3BASICの通信はこれではとても遅くて役に立ちません。
ホストとの間を頻繁に交信しなければなりませんし、大量のデータを送受信しなければなりません。
そこでまずは現行の通信方法を改めることから着手しました。
ASCIIコードで送受信していたところをバイナリデータのまま送るように変更しました。
ボーレートも9600bpsに変更しました。
ほんとうは19200bpsまで上げてテストを行ないましたが、とりあえずのデバッグに際しては、ほどほどのところで9600bpsでしばらくやってみることにしました。
9600bpsの場合、たとえば28KBのシステムプログラムをロードするには約30秒かかります。
まあ、でも、待てないほどの時間ではありませんから、とりあえずのところはこの速度でデバッグ作業を行なっています。
通信の信頼性を確かめたうえでできれば最終的には19200bps程度にはしたいと思っています。
さてこれで本当に準備が整いましたので、これからいよいよZB3BASICの移植作業にとりかかります。
実際ここまでの準備作業だけでもかなりの日数を費やしています。
詳しくは書きませんが、そもそもパソコン側のソフトウェアであるZB3.exeももとはND80Z3.5(ND80ZV)用に書いたものですが、これをMYCPU80用に書き直すことが大仕事でした。
このソフト自体はC++で書いたものですからZ80とも8080とも関係はありません。
ただ通信方式が異なります。
ND80Z3.5(ND80ZV)はPIC18F14K50を使ってUSBのHIDクラス通信を行なっています。
MYCPU80はすでに書きましたようにUSB通信ですが、ソフトウェアの側から見ればRS232C通信です。
通信の方式が違いますから、そこのところを全面的に変更しなければなりません。
とりあえずはなんとか大体のところは変更できたのですが、まだ細かいところではまずいところが出てきています。
一段落したら細部まで検証して手直しが必要です。
ということで、これからいよいよ本題にとりかかるところですが、本日も時間がなくなってしまいました。
これからいよいよMYCPU80にND80Z3.5(ND80ZV)のZB3BASICシステムプログラムを移植する作業にとりかかりますが、その作業につきましては、次回から少しずつ書いていくことにいたします。
MYCPU80でCP/Mを![第6回]
2014.7.28upload
前へ
次へ
ホームページトップへ戻る