▼ 2016/03/31(木) サイト更新 - XDISKWIN2, TransDisk80
【お知らせ】
本日の更新は「XDISKWIN2」「TransDisk80」のバージョンアップです。
約15~16年ぶりのバージョンアップとなりました。
追加されたのは主にPC-8001mkII/SRにおけるTransDiskの起動に関する機能で,基本的な機能は特に変更ありません。
今回追加された機能は以下の通りとなります。
■TransDisk起動ディスクのイメージファイルを追加
TransDisk80を起動可能なディスクイメージファイルを配布アーカイブに同梱しました。
PC-8001mkII/SRにPC-80S31などのディスクドライブを接続している方は,このイメージをディスクに書き戻すことにより,RS-232C経由でデータ転送を行わなくてもTransDisk80を起動することができます。
■初期ローダ転送機能を追加
PC-8001mkII/SRにはPC-8801におけるLOAD"COM:xxxx"のような,RS-232C経由でプログラムをロードする機能がありません。
そのため,従来ではその代用となる初期ローダとして150バイト程度のマシン語プログラムを入力する必要があり,非常に面倒でした。
今回のバージョンアップでは,その入力の手間を緩和するための機能を追加しています。
PC-8001/mkIIには,ターミナルモードというRS-232C経由でメッセージの送受信を行う機能が搭載されています。
TransDisk80開発時にもこの機能によるプログラム転送が行えないかと試したのですが,このターミナルモードでは通信速度600bpsが上限で,それ以上の速度では全ての文字を正常に受信できません。
TransDiskで行っているROMやディスクイメージの転送を600bpsで行ったら何時間もかかってしまうことになり,これではとても実用的にはならないだろうと思い,この方法による転送は諦めていました。
しかし,よく考えたらこの600bpsというのはハードウェアではなくソフトウェアの動作速度の問題なので,送信元で適当なウェイトを入れてあげれば文字を取りこぼすことなく正常に転送できるということに気づきました。
PC-8001mkII上で"TERM A,0,1,0"と入力して,送信側では1文字送信する度に17msのウェイトを入れると,9600bpsの設定でも以下のように正常にプログラムを転送できます。
この状態では文字が画面に表示されているだけなので,GRPH+Bを押してBASICに戻り,カーソルキーの上を9回押して受信したプログラムの先頭行に移動します。
この状態からRETURNキーを8回押すと,画面に表示されたプログラムが入力されます。LISTコマンドを実行すると,実際に入力されていることがわかります。
これで,初期ローダーが転送できました。PC-8801に比べれば面倒ですが,従来に比べたら簡単になっていると思います。
今回は,ウェイトを入れながらテキスト転送する機能をXDISKWIN2に追加しましたが,汎用の通信ソフトでもこのような機能を備えた物があります。
例えばTera Termでは,メニューから「Setup」「Serial port」を選択して表示されるダイアログの「Transmit Delay」で1文字毎/1行毎にウェイトを入れることができます。
この設定を行った状態で,メニューから「File」「Send File」でRSLOAD.BASを選択すれば,XDISKWIN2で送信するのと同様の動作となります。
この方法を使えば,1画面以内に収まる短いプログラムならPC上で作成したテキストファイルをPC-8001mkIIに転送できるので,簡単なテストプログラムを送信したい場合などに便利です。
■COMポートの5以降を選択可能に修正
XDISKWIN2は昔のPC/AT互換機の仕様に合わせてCOM1~4までしか選択できないようになっていました。
しかし,USB-RS232C変換アダプタを使うとCOM5以降に割り当てられることがあるので,COM5以降も選択できるように修正しました。
COM20まで選択できるようにしたので,多分問題ないでしょう。
約15~16年ぶりのバージョンアップとなりました。
追加されたのは主にPC-8001mkII/SRにおけるTransDiskの起動に関する機能で,基本的な機能は特に変更ありません。
今回追加された機能は以下の通りとなります。
■TransDisk起動ディスクのイメージファイルを追加
TransDisk80を起動可能なディスクイメージファイルを配布アーカイブに同梱しました。
PC-8001mkII/SRにPC-80S31などのディスクドライブを接続している方は,このイメージをディスクに書き戻すことにより,RS-232C経由でデータ転送を行わなくてもTransDisk80を起動することができます。
■初期ローダ転送機能を追加
PC-8001mkII/SRにはPC-8801におけるLOAD"COM:xxxx"のような,RS-232C経由でプログラムをロードする機能がありません。
そのため,従来ではその代用となる初期ローダとして150バイト程度のマシン語プログラムを入力する必要があり,非常に面倒でした。
今回のバージョンアップでは,その入力の手間を緩和するための機能を追加しています。
PC-8001/mkIIには,ターミナルモードというRS-232C経由でメッセージの送受信を行う機能が搭載されています。
TransDisk80開発時にもこの機能によるプログラム転送が行えないかと試したのですが,このターミナルモードでは通信速度600bpsが上限で,それ以上の速度では全ての文字を正常に受信できません。
TransDiskで行っているROMやディスクイメージの転送を600bpsで行ったら何時間もかかってしまうことになり,これではとても実用的にはならないだろうと思い,この方法による転送は諦めていました。
しかし,よく考えたらこの600bpsというのはハードウェアではなくソフトウェアの動作速度の問題なので,送信元で適当なウェイトを入れてあげれば文字を取りこぼすことなく正常に転送できるということに気づきました。
PC-8001mkII上で"TERM A,0,1,0"と入力して,送信側では1文字送信する度に17msのウェイトを入れると,9600bpsの設定でも以下のように正常にプログラムを転送できます。
この状態では文字が画面に表示されているだけなので,GRPH+Bを押してBASICに戻り,カーソルキーの上を9回押して受信したプログラムの先頭行に移動します。
この状態からRETURNキーを8回押すと,画面に表示されたプログラムが入力されます。LISTコマンドを実行すると,実際に入力されていることがわかります。
これで,初期ローダーが転送できました。PC-8801に比べれば面倒ですが,従来に比べたら簡単になっていると思います。
今回は,ウェイトを入れながらテキスト転送する機能をXDISKWIN2に追加しましたが,汎用の通信ソフトでもこのような機能を備えた物があります。
例えばTera Termでは,メニューから「Setup」「Serial port」を選択して表示されるダイアログの「Transmit Delay」で1文字毎/1行毎にウェイトを入れることができます。
この設定を行った状態で,メニューから「File」「Send File」でRSLOAD.BASを選択すれば,XDISKWIN2で送信するのと同様の動作となります。
この方法を使えば,1画面以内に収まる短いプログラムならPC上で作成したテキストファイルをPC-8001mkIIに転送できるので,簡単なテストプログラムを送信したい場合などに便利です。
■COMポートの5以降を選択可能に修正
XDISKWIN2は昔のPC/AT互換機の仕様に合わせてCOM1~4までしか選択できないようになっていました。
しかし,USB-RS232C変換アダプタを使うとCOM5以降に割り当てられることがあるので,COM5以降も選択できるように修正しました。
COM20まで選択できるようにしたので,多分問題ないでしょう。
- TB-URL(確認後に公開) http://www5f.biglobe.ne.jp/~apaslothy/cgi_bin/adiary/adiary.cgi/074/tb/
- ▼ サイト更新 - XDISKWIN2 80mkII愛友会 別館
- ▼ サイト更新 - XDISKWIN2 80mkII愛友会 別館
1: CD-R 2016年05月01日(日) 午前6時07分
便利な改良をありがとうございます。テンキーでのダンプ入力は慣れているのでリスト入力してましたが、これは楽ですね。
2: apaslothy 2016年05月01日(日) 午後9時26分
はい。今までに比べると格段に楽になると思います。
この方法を15年前に思い付いていれば,もっと良かったのですが。
3: @tsutsuii 2016年05月03日(火) 午後8時36分
5/1(日)に大阪で行われた電脳遊園00で Firecrackerさんが頒布していた MUSIC COLLECTION(D88形式)を実機で動かすべく XDISKWIN2 を使用させていただきました。20年以上ぶりに88実機で新しい音楽をしみじみと聞いています。どうもありがとうございます。
さて、 XDISKWIN2 でディスクイメージ送信をするにあたっていくつか気づき事項があったので一応報告です。
(1)「ファイル名」のダイアログ
ディスクイメージを指定するダイアログが「保存」のダイアログになっているせいか、「ディスクイメージ送信」の読み出し時のファイル指定でも CD-ROMのような読み取り専用になっているファイルはダイアログ上から選択できないようです。
「送信」と「受信」のときとでダイアログを変えるようなことができるのかどうかわかりませんが、「CDから実機へ転送」という操作はそれなりにありそうなので何かしら対処できるとよいかと思います。
(2)動作環境
VC2008ということで Windows98では動作しなくなっているようです。一方でWindows10での動作はOKでした。
オリジナルの xdisk2 の動作環境表記はその時代背景もあり Windows9x/NT しか書かれていないので、わざわざ Windows98のマシンを用意するという無駄なことをしてしまったのですが、オリジナルの xdisk2 も Windows10で動作するようなので、そのあたりの表記をしていただけるとよいかと思います。
エミュレータに慣れた方ならば誰でもわかっている話かもしれませんが、実機は持っていてもエミュレータは初めてというケースもあります、ということで……
4: apaslothy 2016年05月05日(木) 午前11時13分
保存ダイアログになっているのは,手抜きして処理を使い回しているのでしょうね。調べてみます。
修正できたら,動作環境の記載に関する不備も訂正したいと思います。
有用なご指摘,ありがとうございました。