PC-8801シリーズ シリアルポート経由でのディスクイメージ吸い出し/書き戻し環境構築方法 ▼用意するもの(ケーブル、吸い出しに使うツール) ・PC-8801シリーズ(PC-88VAシリーズ可) または PC-8001mkII/PC-8001mkIISR ※最低1台のFDDが必要です。 PC-8801初代の場合は外付けFDD(PC-80S31など)が必要です。 PC-8801mkII/SR/FR/FH model10ではFDDの増設が必要です。 ※PC-98DO/DO+は88モードからシリアルポートが使用できませんので シリアルポート経由での吸い出しはできません。 ※PC-8001mkII/PC-8001mkIISRは外付けディスクドライブ(PC-80S31など)が 必要です。 ・シリアルクロスケーブル(DSUB9P --- DSUB25P) サンワサプライ KR-XD2 など ※RTS信号が自身のCTS信号に折り返されていて、かつDTR/DSR信号が クロスしているケーブルが必要です。 ・適当なUSB-シリアル変換ケーブル サンワサプライ USB-CVRS9H など ※PC側にCOMポートがある場合は不要です。 USB-シリアル変換系は偽物チップが出回った関係でx64系OSで使えなくなったものが あるようです。ご注意ください。 ・2D, 2DD, または2HDの5インチブランクフロッピーディスク 1枚 xdisk2.d88のイメージを書き込んで、2回め以降の起動用ディスクにします。 Mシリーズなどで、メディアの入手性の関係で5"2HDディスクを使う場合は、 xdisk2hd.d88のイメージを書き戻してお使いください。 機能自体には2D,2HDの差はありません。 ・N88-DiskBASICが起動できるシステムディスク(PC-88VA2/VA3のみ) システムディスクなしにN88-BASIC(V1/V2)を起動する方法がないPC-88VA2/VA3で 使用する場合のみ必要です。それ以外の機種ではさしあたりなくても構いません。 ・ソフトウェア - xdisk2(TransDisk2) http://www.retropc.net/cisc/m88/dl/xdisk207.lzh - xdiskwin2 http://www5f.biglobe.ne.jp/~apaslothy/tool.html - TransDisk80 (PC-8001mkII/SRで使用する場合) http://www5f.biglobe.ne.jp/~apaslothy/ M88の作者のciscさんが作成したもので、シリアル経由でPC88のBIOS ROMの吸い出しや ディスクイメージを読み書きするツールです。 xdisk2はコマンドラインでの操作ですが、普段使うにはやはりGUIの方が便利ですので apaslothyさん作のxdiskwin2を併用します。 (88側のプログラムであるxdisk2.bas は XDISK207.LZH にのみ収録されていますので xdiskwin2だけでは使用できず、両方必要になります。) ▼シリアルポート経由の吸い出し手順 (Windows側準備) 1. USB-シリアル変換ケーブルのドライバをインストールし、デバイスマネージャで 割り当てられたCOMポート番号を確認しておきます。 2. XDISKWIN2.LZH を適当なディレクトリに解凍します。 また、XDISK207.LZHも同じところに解凍しておきます。 3. PC-8801のRS232CポートとWindowsマシンを、USB-シリアル変換を介して シリアルクロスケーブルで接続します。 (PC88側準備) 4. 8MHz機の場合はPCキーを押しながら起動して、セットアップメニューに 入り、RS232Cの通信速度を9600ボーに合わせておきます。 (初回はBASICでの転送なので、9600ボーでないと追いつきません) 他のシリアルポートの通信パラメータはそのままでかまいません。 システムディスクをお持ちの場合、システムの立ち上げは「ディスク」に 内蔵FDD I/Fは「使用」にします。 システムディスクをお持ちでない場合で、起動可能なディスクを入れずに 放置したときに「タダシイディスクヲイレテクダサイ」のように表示される PC-8801MA2/FE/MC/FE2の場合は、N88BASICを起動するために「ROM」に 設定します。 PC-88VA2/VA3ではV1/V2モードのROM BASICを起動する方法がありませんので、 V1/V2モード用のシステムディスクが必須となります。 PC-8801mkII/SR/TR/FR/MRの4MHz機の場合は、ディスクブートをする場合は ディップスイッチの 2-7 をON, 2-8 OFFにし(通常はこうなっていると思います) RS232Cボーレートジャンパを8番(9600bps)にセットします。 PC-8801無印の場合は、ジャンパを8番(9600bps)に合わせるだけでよいかと 思います。 (PC88へBASICプログラムの転送 (初回のみ)) 5. PC88で普通にN88BASICを起動します。 このとき、システムディスクをお持ちであれば、Disk BASICを起動します。 How many files? はそのままRETURN入力で構いません。 この場合は入力したら 6. へ進みます。 システムディスクがない場合は、ディスクを入れずにしばらく放置して How many files? が表示された場合は、RETURNを入力後に適当なディスクを ドライブ1に入れて、アクセスランプを消灯させておきます。 システムディスクを入れずに放置した場合、およびROM BASICを指定して 起動した場合は、How many files? でRETURN入力後、 OUT &HFF,&H91 を実行します。 これでディスクサブシステムとの接続に使用されている8255が初期化され、 ディスクが使用できるようになります。 6. Windows側で XDISKWIN2.EXE を実行します。ファイルから「設定」を選び、 「通信ポート」にUSB-シリアル変換が認識されたCOMポート番号を指定します。 通信速度は 9600 に、高速転送はチェックを外しておきます。 (最初はBASICの機能で転送するので、19200bpsでは転送に失敗します。) メニューの 動作モード から、88用システム送信 を選択し、 準備ができたら、「実行」を押します。 「88にプログラムを転送します。 88で load "COM:N81X" というコマンドを実行してください。」 と表示されたら、PC88側で上記のコマンドを入力します。 OKを押してダイアログを閉じると転送が開始されます。 数十秒ほどでPC88側が「Direct statement in file」 (PC-8801/mkIIでは ?DS Error)のエラーで停止すれば成功です。 PC88側で list コマンドで表示させてみると、転送できていることが確認できると 思います。 PC-8801/mkIIなどの旧機種で、?BO Error (Buffer Overrunエラー)が出る場合は、 XDISKWIN2の新しいバージョンに追加された 「ファイル」→「設定」→「送信ウェイト」 を 1以上の設定にすると、うまく 転送できると思います。 当方の環境では、PC-8801mkIIで 1 の設定でも安定して送信できることは 確認しましたが、うまく転送できるまで数値を少しずつ大きくして試してみて ください。 7. PC88側で受信したプログラムを run します。(F.5を押す) しばらくすると TransDisk/88 2.07 Copyright (C) 2000 cisc. Push [STOP] key to terminate. の表示が出て、待ち受け状態になります。 8. (PC-8801mkIISR/TR以前の機種のみ) xdisk2 2.07の場合、4MHz機の旧機種の一部(PC-8801mkIISR,TR以前)では 不具合があり、そのままでは何度やってもホストとの同期が取れません。 xdisk2.basを一旦起動した後で STOP キーを押してBASICに戻り、以下の コマンドを入力して対策パッチを当てます。 POKE &HC068,0 POKE &HC069,0 POKE &HC06A,0 POKE &HC06F,7 PC-8801/mkIIの場合は、さらに以下も入力ください。 POKE &HBC9F,&H3E POKE &HBCA5,&H3E POKE &HBCB8,&H3E この後、A=USR(0) と入力してRETURNを押すと再度xdisk2が起動します。 ※このパッチを適用してもなかなか同期が取れない場合がありますが、何度かトライして みてください。 9. XDISKWIN2 の「動作モード」を「ディスクイメージ送信」にし、 ファイル名で、添付の xdisk2.d88 を指定します。 ドライブは「2」、 メディアは「自動」を指定します。 PC88のドライブ2に上書きしてもよい2Dまたは2DDのフロッピー ディスクを入れ、実行ボタンを押します。 ※PC88の機種がMシリーズやVAシリーズで、かつお手持ちのフロッピーディスクが 2HDしかない場合は、xdisk2.d88 の代わりに xdisk2hd.d88 をお使いください。 しばらくするとPC88との同期が取れ、確認ボタンを押すと書き込みが開始されます。 次回以降、PC88側ではこのディスクでブートするだけでxdisk2が起動し、 待ち受け状態になりますので、PC88側での一切の操作は不要となります。 (全ての操作がWindows側からコントロールできます。) 書き戻しがうまくいったら、PC88が8MHz機の場合は一旦PCキーを押しながら リセットし、シリアルポートの速度設定を 19200bps に変更します。 また、Windows側でも、設定画面から通信速度を 19200 に変更します。 高速転送は外しておいた方が無難です。 (書き出しはできても、読み込みに失敗することがあります。) 詳細出力はお好みで... 以降はこのままの設定でOKです。 ▼XDISKWIN2の使い方 動作モードの指定でいろいろできます。 「ROMファイル受信」 ... M88で使用可能な形式でBIOS ROMの吸い出しを行ないます。 PC88側に第二水準漢字ROMや辞書ROM、CD-ROM BIOSが実装されている場合は それらも吸い出しますので、それらのない機種に比べると時間がかかります。 「ディスクイメージ受信」 ... PC88の5インチフロッピーからD88イメージに吸い出しを行ないます。 受信時は必ずメディアを「自動」から 2D/2DD/2HDの個別指定に変更してください。 そのメディアとして吸い出しを行ないます。 ドライブは 吸い出し対象のPC88のドライブの指定です。ドライブ2を使うと便利です。 「ディスク名」はD88イメージのヘッダ内に書き込まれるディスク名称です。 (半角16文字以内) 「プロテクト」の所にチェックを入れると、D88イメージのヘッダに ライトプロテクト属性をつけます。 ディスク名とプロテクトは、別途D88編集ツールを使用してあとで変更する こともできます。 「ディスクイメージ送信」 ... PC88の5インチFDDを使って、D88イメージをディスクに書き出します。 メディアを「自動」にしておくと、D88のイメージの形式に応じたメディアとして 書き出しを行ないます。同じ種類のメディアを用意ください。 書き出しの際に自動的にフォーマットもしますので、予めフォーマットしておく 必要はありません。 また、ゲームのディスクなど、特殊なフォーマットのイメージは 書き戻せない場合があります。 シリアル経由の転送は19200bpsなら、2D 1枚あたり2〜3分程度くらいだと思います。 4MHz機の場合は19200bpsだと転送が間に合いませんので、イメージ転送時も 9600bpsで使用してください。 PC88の2D機で書き戻しを行なう場合、PC-98等の2HD機で書き戻すのと違い、 FDDのヘッド幅の問題が発生しませんので、他の2D系のPC88で動かしても 読み込みエラーが発生する心配がありません。 ▼BASICファイルの転送がうまくいかないとき ・まったくファイルの転送が行われている気配がないとき (88側で中断してLISTを実行しても、何も表示されない) → 以下を確認してみてください。 - シリアルケーブルに適切なクロスケーブルを使用していない - Win側のCOMポート番号が間違っている - 通信速度設定がPC88とWindowsで一致していない - ディスク装置を切り離した状態でROM BASICを起動している Disk BASICか、フロッピーを入れずに放置して起動したROM BASICを使用してください。 - Windows側シリアルポートの送信バッファが大きいと失敗する例があるようです。 コントロールパネルのデバイスマネージャからCOMポートのプロパティを出し、 送信バッファの設定があれば小さい値に変更して試してみてください。 ・PC-8801mkIISR,TRで何度やってもホストとの接続ができない - 上記手順にも記述していますが、xdisk2.bas内のルーチンでPC-8801FH/MH以降に 実装された未実装のI/Oポートの読み出しの値が違うことが原因で、 PC-8801mkIISR/TR以前の機種の場合にホストとの連携が何度やっても取れない 場合があります。 当時のM88のサポート掲示板にユーザの方が投稿された対策パッチを適用する 必要があります。 - このIPL版 xdisk2.d88 では機種判定を行なってパッチを当てるようにしましたので、 これを書き戻したディスクで起動する場合は、パッチの適用は不要です。 初回の転送時のみ、上記手順8.のとおり、手動でパッチを当ててください。 ・xdisk2.bas を転送してrun後、PC8801 is waiting for connection. の表示のまま変わらない - FDDサブシステムとの通信ができていないと、Push [STOP] key to terminate. の表示に進みません。 ROM BASICで起動して xdisk2.bas を転送した場合は、OUT &HFF,&H91 で 8255を初期化するのを忘れずに...。 フロッピーを入れずに放置してROM BASICを起動した場合は、適当なフロッピーを 入れてアクセスランプを消してください。 ・Windows側のUSBシリアル変換で使われているチップによっては、小型化で ピン数を省略しているためか、DTR/DSR信号ピンがでていないものもあるようです。 (CH340N, CH340K, CH340Eなど) 普通のUSBシリアル変換ケーブルでこれらの信号線が出ていないものは少ないかも しれませんが、xdisk2では 自身のRSが自身のCSに折り返ってすぐに送信可能に なること、かつDTR/DSRがクロスしていること、が必要になるようです。 DTR/DSR信号がクロス接続されていない状態だと、PC88側のReady状態が Windows側に伝わらず、ずっと初期化が終了しない状態になる模様です。 USB変換ケーブルやシリアルクロスケーブルを用意する場合はご注意ください。 吸い出したD88イメージのライトプロテクト状態やディスクラベルの変更、複数枚のディスクの編集に ついては、D88Edit などの編集ツールを使うと便利です。 http://moochos.nobody.jp/jp/software/d88edit/ --- UME-3 ume-3@5inch.floppy.jp