シリアルケーブルで接続して、データの送受信を試してみます。
ケーブルを用意
以下の2つが必要です。
- シリアルUSB変換ケーブル
- D-sub9ピンと25ピンのクロスケーブル
Macにはシリアル端子がありませんので、シリアルUSB変換が可能なケーブルとして、RiteUpのシリアルUSB変換ケーブル RUUSRL1 を使用します。
なお、このケーブルのシリアル端子はD-sub9ピンですが、X1turboはD-sub25ピンです。
なので、9ピンと25ピンのクロスケーブルを探す必要があります。規格があっていれば何でもいいはずですが、ここではサンワサプライのKR-XD2を使います。
シリアルUSB変換ケーブルの認識
USB変換に使われているチップのメーカーによって必要なドライバが異なるようですが、RUUSRL1は何もせずとも認識されました。(OS X Mavericks,Yosemite で確認)
認識されているかどうかはこれで確認できます。
$ ls -l /dev/tty.*
crw-rw-rw- 1 root wheel 18, 0 9 21 07:58 /dev/tty.Bluetooth-Incoming-Port
crw-rw-rw- 1 root wheel 18, 2 9 21 07:58 /dev/tty.Bluetooth-Modem
crw-rw-rw- 1 root wheel 18, 4 10 8 21:36 /dev/tty.usbserial-142
名前からして tty.usbserial-142 がシリアルUSB変換ケーブルでしょう。
シリアルコンソール
screenコマンドを使用します。
$ screen /dev/tty.usbserial-142 9600
末尾の9600はボーレートです。X1turboのBASICで指定できる最大値に合わせています。
実行すると、ターミナルの表示内容が消えます。
これでMac側の準備は完了です。
なお、screenを終了させるには、Ctrl-a Ctrl-\ を押します。
するとこのようなプロンプトが出るので、y を押せば終了できます。
Really quit and kill all your windows [y/n]
X1turboからMacへ送信
BASICのプログラムを送信してみます。
まず、X1turboで適当なBASICプログラムを入力します。
10 PRINT "hello from x1"
20 END
送信するにはSAVEコマンドで行います。
SAVEはプログラムを保存するコマンドですが、デバイスに COM: を指定すれば、シリアルポートへ送信するようになります。
SAVE "COM:6N83NNLCND"
これで、MacのシリアルコンソールにBASICのソースが表示されれば、正常に送信できたことになります。
なお、COM: の後ろの呪文は通信パラメータで、以下の意味になります。
わりと適当ですが、なんとかなります。
文字位置 | パラメータ | 指定値 | 意味 |
---|---|---|---|
1 | ボーレート | 6 | 9600ボー |
2 | パリティ | N | パリティチェックなし |
3 | データビット長 | 8 | 8ビット |
4 | ストップビット長 | 3 | 2ビット |
5 | 通信制御指定 | N | フロー制御なし |
6 | カナの表現方法 | N | 7ビットモードでカナの送受信不可 |
7 | CR,LFコードの送信処理 | L | 送信改行コードはCRLF |
8 | CR,LFコードの受信処理 | C | CR受信で復帰+改行コードとして処理 |
9 | 日本語文字列の表現方法 | N | シフトJIS |
10 | エンドコード | D | Ctrl-D(&H04)で終了 |
MacからX1turboへの送信
逆にMacからBASICのプログラムを送信します。
まず、X1turboで受信の準備をします。
先ほどのSAVEとは逆のLOADコマンドを使用します。通信パラメータは同じです。
LOAD "COM:6N83NNLCND"
次に、Macでプログラムを入力し、最後に Ctrl-D を押します。
10 PRINT "hello from mac"
20 END
すると、X1turboではLOADコマンドが終了しているはずです。
LISTコマンドでソースを表示して確認します。
LIST
10 PRINT "hello from mac"
20 END
通信パラメータは、少なくとも以下の2つは正しく設定しないと正常に受信できませんでした。
文字位置 | パラメータ | 指定値 | 注意点 |
---|---|---|---|
8 | CR,LFコードの受信処理 | C | これでないと正しく改行されない |
10 | エンドコード | D | Macでこれを入力しないと、X1turboのLOADコマンドが終了しない |
というわけで、以外に簡単に送受信ができました。