結局、BASIC では、サブCPUの割り込みを使う方法以外は使えないので、プログラムを組んでみました。
一応、今回作成したボードでは 38400bps、正規ボードでも 19200bps までデータ転送できるはずです。
rs232c.zip プログラムは手抜き箇所があります。送受信時は、指定したバイト数になるまで制御が返ってきません。
○使い方
mk2以降で、MODE5、PAGE4 にして下さい。本来はmk2でなくてもいいのですが、大量のデータの受信テストにするためにmk2を使っています。
Windows 側は、何らかのターミナルプログラムを使って下さい。
私は、MORIYAさんの所で紹介されていた、acknowrich を使っています。
http://www.vector.co.jp/soft/win95/prog/se089304.htmlhttp://p6ers.net/mm/pc-6001/dev/joy2rs232c/ リバースケーブルでWindowsパソコンと繋いだら、acknowrich を立ち上げて下さい。その後、P6側でプログラムをRUNさせます。
すると、acknowrich の下のステータスバーの「CTS」「DSR」が点いているはずです。点いていない場合はリバースケーブルがおかしいか、RS-232Cボードがおかしいと思われます。
また、Windows側 にRS-232Cポートがなくて、USB-RS232C変換コネクタを使っている場合は、変換コネクタが悪い可能性があるので注意が必要です(USB-RS232C変換はいろいろとトラブルが多いようです...)。
・パラメータ設定
立ち上げたら、まずP6側で p を押して、パラメータを設定します。
設定できるパラメータは次の通りです。
・ストップビット 1bit / 1.5bit / 2bit
・パリティ なし / 奇数 / 偶数
・データ長 5bit / 6bit / 7bit / 8bit
・ボーレート倍率 通常 / 4倍
それぞれ [ ] で囲まれた文字を押して下さい。
BASIC のデフォルトは、ストップビット 1bit、パリティなし、データ長 8bit、ボーレート倍率 通常、です。
とりあえず、デフォルトの通りに各パラメータを設定して、さらに RS-232Cボード上のジャンパを4800bps にして下さい。
また、acknowrich の通信設定もこれに合わせるようにして下さい。
さらに、acknowrich のフロー制御の設定も行って下さい。設定−デバイス設定で出てくるウインドウの、通信パラメータタブにある、フロー制御の項目で設定します。
CTS、DSR、RTS、DTR、にチェックを入れて下さい。
・データ送信
P6側 で s を押して、データを送信します。
s を押すと、開始アドレス、送信サイズを聞いてきます。入力はhex です。
例えば、開始アドレス=0、送信サイズ=10 とすると、ROM領域のアドレス0x0000〜0x000F までが、acknowrich のコンソールに表示されます。
バイナリデータなので、acknowrich のメニューから、編集−BINARYモードを選んでバイナリにしておくと、画面に16進で表示されます。
また、ファイルの転送も可能です。acknowrich のメニューから、編集−ファイル転送を選び、新しく出てきたウインドウの「受信」を選びます。すると、受信したファイルがどこに格納するかを聞いてきますので、適当に答えます。
次に、P6側で s を押して、開始アドレス、送信サイズを入れると、ファイルが転送されます。
例えば、開始アドレス=0、送信サイズ=8000 とすると、mk2のROMデータが転送されます。
手持ちのROMファイルと比較してみて下さい。一致しない場合は、どこかがおかしいと思われます。
・データ受信
P6側 で r を押して、データを送信します。
s を押すと、開始アドレス、送信サイズを聞いてきます。入力はhex です。入力が終わると、ページ4が表示されます。
その後に、Windows側の acknowrich のメニューから、編集−ファイル転送を選び、新しく出てきたウインドウの「送信」を選びます。すると、送信するファイルを聞いてきますので、適当に答えます。
開始アドレス=0、送信サイズ=4000 とすると、ページ4の画面にデータが表示されますので、Windows側で画面データを作って、P6に簡単に表示させるができます。
パラメータ設定にある「ボーレート倍率」ですが、これは、8251の分周比を変更するオプションです。正規のRS-232Cボードでは、このパラメータが 1/64 で使うようになっています。
例えば4800bpsの場合、RS-232Cのボード上で、P6から入力される8MHz クロックを26分周して、8251に入力しています。
8251 はさらにそのクロックを1/64 して、送受信クロック(4800Hz)を作っています。
で、この 1/64 の分周比が、1/16 にする事も可能です。この設定をすると、送受信クロックが4倍になるため、転送速度も4倍になります。
ですので、「ボーレート倍率」を4倍に設定した場合は、単純にボーレートが4倍になります。ジャンパで4800bps にした場合は、19200bps 、9600bps の場合は、38400bps でデータを転送できます。
ちなみに、私の環境では、問題なく38400bps の送信、受信が出来ました。1画面分が数秒の速度です。