PC-98のHDDを直接AT互換機で読み書きできるようにするプログラム

Conv98AT Version 1.10

Copyright 2010 まりも

■ このプログラムの目的

 PC-98のシステム起動で使われるハードディスクは、パーティション テーブルやその管理方式、論理フォーマット形式など全ての点で、PC/AT 互換機とは異なっています。したがってPC-98で使っていたハードディスクを PC/AT互換機に接続しても(IDE,SATA,SCSI,USBなどインターフェイスを問わず) そのままでは全く認識できません。

 しかしPC-98方式のパーティションテーブルとPC/AT互換機のそれとは、 たまたまうまい具合に記録位置が異なっており、共存させることも可能と なっています(自動起動の設定情報を除く)。そこで本プログラムでは、 PC-98のハードディスクのパーティションテーブルからPC/AT互換機の パーティションテーブルを作成し、所定の位置に埋め込むことで、PC-98と PC/AT互換機とで相互に認識可能としました。

■ 基本的使い方

 まずアーカイブを解凍して、Conv98.exeを取り出してください。 MS-DOSのコマンドプロンプトあるいはWindows9xのコマンドプロンプト 起動の状態(DOS窓は対象外)で、カレントディレクトリにConv98AT.EXEを 置くか、それがあるフォルダにPATH通した状態で、

Conv98AT
とタイプして起動します。するとハードディスクが複数ある状態ではディスク 装置の選択メニューが出ますので、対象としたいディスクを選んでください。 なおここに出るディスクは、PC-98のブートBIOSの管理下にあるものだけです。 BIOS管理外のハードディスク装置(USB接続なども)は対象になりません。 1台しかディスク装置がない場合はそのまま選択してください。

 次に、PC-98で使用していた領域のリストが表示されます。 パーティションが4個以下の場合は、それらについてPC/AT互換機の パーティションテーブルが作成されます。

 PC/AT互換機のパーティションテーブルは、仕様上4個までしか記述 できませんので、PC-98側のパーティションが4個を超えている場合は、 先頭から4個までのアクティブなパーティションだけを対象とすることに しています。したがって、5個以上のパーティションがありその最後の パーティションをPC/AT互換機でアクセスできるようにしたいという ような場合は、手前にあるパーティションのどれかを「スリープ」の 状態にあらかじめしておいてください。ACTVPTNというソフトでそれを 行うことができます。 スクリーンショットの例

 パーティションリストが表示されると、変換した情報を書き込んで よいかのメッセージが出ます。yで応答すると書き込みますが、 nで応答した場合は中止します。

 その後、PC/AT互換機に接続してください。IDE,SATA,SCSI,のほか、 リムーバブルのUSB接続でも認識できるはずです。ディスクファイルの 読み込みだけでなく、書き込んでも問題ありません。またPC/AT互換機 で使用後に、PC-98に接続しても、起動・認識できます。

■ 注意

 このプログラムでできるのは、PC-98上で現在接続されている ハードディスクをPC/AT互換機で認識できるようにすることです。 PC/AT互換機に繋いでからPC/AT互換機上で使うソフトウェアでは ありません。また逆方向の使い方、つまりPC/AT互換機で使って いたハードディスクをPC-98で認識させることはできません。

 PC/AT互換機上では、このハードディスクに対して、領域の作成や 削除、検索、再フォーマットなどを行わないでください。 とくにDOSのFDISKの実行は絶対に避けて下さい。FDISK /MBRコマンドの 実行も絶対に行わないでください。PC-98側のIPLコードやパーティション テーブルが失われてしまいます。

 PC-98上でもIPLや起動メニューを書き直すようなことがあると、 本プログラムで作成したPC/AT互換機用パーティション情報は破壊または 消滅してしまいます。

 PC/AT互換機用パーティションテーブルと、PC-98の「固定ディスク 起動メニュー」による領域の「自動起動」の設定記憶とは、ディスク上 の記録場所が重複しています。したがって本プログラムを適用すると、 自動起動設定が無効になります。また逆に、本プログラムを適用してある ハードディスクに対してPC-98上で自動起動の設定をすると、本プログラム が作ったPC/AT互換機用のパーティション情報のうち、4番目領域の情報が 破壊されます。領域が4個ある場合は注意してください。

■ PC/AT互換機用のパーティション情報を消すには

 コマンドラインオプションで -r を付けて起動して下さい。 既にあるPC/AT互換機用のパーティション情報とWindiwsディスク 署名も削除されます(PC-98側のディスク署名には影響ありません)。

■ BIOSが認識しているパラメータを無視して認識させたいときは

 コマンドラインオプションで -m を付けて起動して下さい。 BIOSヘッド数、BIOSセクタ数のパラメータの問い合わせが出ますので、 そのハードディスクを論理フォーマットしたときの正しい値を入力して ください。なおWindows2000を使用していた場合は、パーティション テーブルの通常未使用箇所に、BIOSヘッド数、セクタ数が記録されています。 本プログラムではそれを表示しますので入力の際に参考にしてください。

 このオプションは上級者向けです。通常は使うことはないと考えら れます。誤った値を設定すると、AT互換機側で認識でなくなるほか、OSの 起動にも支障を来します。

 このオプションを使うことが想定される場合とは、たとえばIDEの ハードディスクをSCSI変換で使っていて、変換をやめて直接IDEに接続 しているような場合です。このときはもちろんPC-98側でも領域の認識が できません。しかしIDEのDISK BIOSが認識したパラメータではなく、SCSI のときのパラメータ(例えば8GB以上なら128セクタ、8ヘッド)を指定すれば、 PC/AT互換機で正しく認識されます。

■ PC-98に戻したときにOSの起動ができなくなっていたら

 注意のところで述べたように、PC/AT互換機上で不用意にディスク管理 関係の操作を行うと、PC-98にとって必要な情報が失われる場合があります。 PC-98側のパーティションテーブルが消えてしまった場合は、元に戻せません。 どうしても元に戻したいときは、別の拙作ソフトMkPtnTblを使って下さい。 PC-98用のIPLと起動メニュープログラムが損傷しているだけであれば、 別の拙作ソフトIPL_menu を使えば一発で復元できます。ただしこれを使うと、 PC/AT互換機側のパーティションテーブルも消えますので、必要ならば 本プログラムを再び実行して作成してください。

■ 動作の詳細

 このプログラムでは、PC-98のパーティションテーブルからBIOS シリンダ数を得て、現在のBIOSのヘッド数、セクタ数から、領域の LBA総セクタ数や、開始位置LBAセクタ番地を求めます。その値で PC/AT互換機のパーティションテーブルを、セクタ0のバイト位置1BEh から16×4バイトのところに作成します。これにより、ほとんどの PC/AT互換機とOSでは領域を認識できるようになります。

 PC-98でもPC/AT互換機でも認識できるファイルシステムは、 FAT16,FAT32,NTFS(Windows2000版)です。Windows NT 4.0のNTFSに ついては、違いはないと思いますが、確認していません。 それ以外のファイルシステム、たとえばOS/2のHPFS、FreeBSDや Linuxのextファイルシステムでは、PC-98側のファイルシステム種別IDが よくわからないため、PC/AT互換機のそれに変換していません (わからないものはFSIDを0に設定しています)。 また98とPC/ATとで同じOSのファイル システムで互換性があるかどうかも情報がないようです。 ※この件は情報提供いただければ対応します。

■ 免責事項など

 このプログラムは「フリーソフト」ですが、著作権は作者にあります。 著作権者の意向を無視したことはしないでください。たとえば不特定多数が ダウンロードできる場所への無断転載は禁止とします。転載に当たっては かならず許可を得て下さい。

 このプログラムを適用した結果については、とくに保証はしませんし、 パーティション情報やファイルシステムが壊れるなどの損害があったとしても、 作者は一切責任を負いません。それをご了解の上でご使用願います。

 連絡先メールアドレスはhomepage上にあります。

■ 改版履歴

2010. 4. 1  1.00版 【新規作成】
   対応file system FAT16,32,NTFS

2010. 4.20  1.10版 【機能追加】
   パラメータ任意設定を可能に、自動起動に関する注意記述追加