PC-9821 オンボードIDEハードディスクの 8063MB 容量制限を解除

( IPL版ソフト, IPLware )

 EXIDE32G Version 3.4a 

使用説明書 Copyright(C) 2001-2005 まりも

【1】このプログラムの目的

 PC-9821シリーズの比較的最近('97年秋以降)に登場した機種では、内蔵IDEハードディスクは4.3GBを超えるものをつなぐことができます。しかし、BIOSで返してくる容量は8063MBまでとなっています。このため FDISKで領域確保する際にも、8063MBまでしか認識されず、せっかく大容量のハードディスクを繋いでも、全容量使うことができません。そこで、BIOSの返す容量値をハードディスク本来の値に拡張し、FDISKで全容量認識できるようにするのが、本プログラムの仕事です。

 注意! 4351MB以上のハードディスクを繋ぐと起動できなくなる、'97年前期より前の機種では、本プログラムを導入しても無効です。

 8063MB以上に容量値を拡張するといっても、定義すべきヘッド数、セクタ数のパラメータをどのようにするかはいろいろあります。32GBまでのハードディスクは、NECによって決められた標準(15または16ヘッド、63セクタのハードディスクドライブのネイティブの値)に合わせておくのがよいといえます。

 しかし最近ではIDEドライブをSCSI変換ユニット経由で運用する例が増えており、これで使用しているハードディスクを内蔵IDEインターフェイスに繋いでもそのまま読み書きできると便利です。そこで本プログラムでは、本体内蔵やUIDE-xxと互換で使えるこれまでの「IDE拡張モード」に加えて、SCSI変換のときに便利な「SCSI互換モード」を用意しました(Version3.30から)。動作モードは組み込み時にどちらかの選択となりますが、後から臨時に変えることもできます。32GBを超えるハードディスクについては、いろいろなパラメータが乱立してしまっていますが、考えられるものすべてに対応させました。

 実行のさせ方については、DOS系以外のOSでも機能を使えるように、ハードディスクの起動IPL(正確には起動メニュー)埋め込み方式をとっています。この仕様を満たしたソフトのことを、"IPLware"と呼びます。

【2】組み込み方法

 まずは MS-DOS(5.0A以降)あるいは Windows9xの MS-DOSモードが起動できる環境を用意して下さい。普通にはシステム起動FDかコマンドプロンプト起動です。

 本ソフトのパッケージをLhaにて解凍すると、EXIDE32G.EXEというファイルが作成されます。これを、PATHの通ったディレクトリ(フォルダ)またはカレントディレクトリに格納して置いて下さい。そして、本プログラムの EXIDE32G をコマンドラインからオプション無しで実行して下さい(EXIDE32G とタイプしてリターンキーを押す)。

 本プログラムは、実行したマシン環境で最初に起動プログラム(IPL)が読み込まれるハードディスクに、組み込まれます(*2)。

 下記のような「動作モード」の問い合わせメニューが出現します。
---------------------------------------------------------------------
動作モードを次の2つから選択して下さい (↑↓キー)
0. 内蔵IDE HDDの BIOS認識容量を8063MB以上へ拡大する(従来からの互換)
1. 内蔵IDE HDDの BIOS CHSパラメータをSCSI互換にする(SCSI変換時に便利)
---------------------------------------------------------------------

この問いには、0か1かで応答します。通常は 0のほうを選択して下さい。
SCSI変換をしたときにそのまま認識できる状態で運用したい人は、1を選択しても構いません。ただしEXIDE32Gがシステム起動時に実行されていないと、領域の認識やOS起動ができなくなるという危険が生じますから、PC-9821の環境構築やハードディスクからのブートの仕組みにある程度詳しい方のみが選択して下さい。

 次に32GB以上のハードディスクドライブについて、下記のような「動作モード」の問い合わせメニューが出現します。

-----------------------------------------------------------------------
★ 32GBを超過したHDDに対するパラメータを次から選択し, その番号を入力して下さい.
0. 32GB以下と互換(超えた分を使わない)
1. IFC-USP で32GB?60GBの場合と互換          [ 15ヘッド/128セクタ ]
2. EXIDE32G V2.0までと同じ             [ 16 or 15ヘッド/252セクタ ]
3. SCSI互換で最大(120GBまでOK)             [ 15ヘッド/255セクタ ]
4. PK98-MISTRESS9ボードと互換(127GBまでOK) [ 16ヘッド/255セクタ ]
-----------------------------------------------------------------------

 0. を選択すると、32GBを超えたハードディスクドライブであっても、32GBまでしか使わない(使えない)ようにします(32GB以上無効モード)。1.から 4.までのいずれかを選択すると、32GB以上が使用できるようになります
(ただし、EXIDE32G が組み込まれていない環境では領域が認識できなくなります)。なおヘッド数、セクタ数は、IDE拡張モードの場合とSCSI互換モードの場合とでは異なっています。

 1. は、メルコ社の IFC-USP-M2 (およびCHANPON)というSCSIアダプタを使用した際に、32GBを超えているドライブに対して自動的に与えられるパラメータです。IFC-USP-M2のATA変換SCSIユニットに繋いだりする場合は、このモードを選択しておくのがよいでしょう。

 2. は、これまでのEXIDE32Gと互換性のあるモードです。BIOSのC/H/Sパラメータは、セクタ数 252、ヘッド数 16 または15(HDDに依る)という値を使います。これにより、約125GBのハードディスクを使用できます。Ver 2.0の頃からEXIDE32Gを使って運用してきたというハードディスクの場合は、これを選んで下さい。しかしこれからハードディスクを導入するという場合は、選択しないほうがよいでしょう。32GBオーバーの今後の主流はおそらく3. や4.になるであろうと予想されます。

 3. は、ATAドライブをそのままSCSI変換して使用することを考慮したモードです。一部のSCSIアダプタは、「マルチベンダパラメータ」機能を駆使することで、32GBを超えてSCSIとしては最大限の容量を使うことができます。このパラメータでは 約120GBまで使用することができます。SCSI変換接続でSCSIアダプタに繋ぎマルチベンダパラメータを指定する際は、BIOSヘッド数15、セクタ数 255を指定して下さい。

 4. は、玄人志向から発売された PK98-MISTRESS9ボードを搭載したマシンのオンボードIDEに接続したハードディスクを使用するときに使います。使える容量の限界が最も大きく、約127GBです。SCSI変換接続ではこのパラメータで使用することはできません。SCSIでは BIOSヘッド数は15が
最大です。

(*1)ハードディスクインターフェイスのDISK BIOSには、 シリンダ/ヘッド/セクタ数というものが定義されています。この パラメータ値が正しくないとシステムの起動ができなかったり領域の 認識ができなくなります。PC-98では、インターフェイスと容量帯に より、下記のように設定されます。これを変更するのが本プログラムの 機能です。IDE接続の場合でもSCSIと同一にして、異なるハードウェア 環境のマシンで読み書きできるようにするなどの用途が考えられます。 しかし変更のしかたを間違って、領域確保時と現在とで異なる パラメータにしてしまうと、起動や認識をできなくしてしまうことにもなります。

   容量帯            ヘッド数 セクタ数
   -------------------------------------------------
   IDE   4351MB未満    8         17
   IDE  32255MB未満   16         63
   SCSI  8192MB未満    8         32
   SCSI 32768MB未満    8        128
   IFC-USP 60GB未満   15        128  (メルコIFC-USP系1.20のみ)
   127GBまで使える値  16        255
 

(*2)  メモリスイッチの「BOOT装置」の指定に従います。通常は「標準」に なっています。この場合は、固定ディスク#1→固定ディスク#2→ SCSIディスクの順に検索されます。現在繋がっている最も優先順位先頭の ハードディスクにインストールされますので、接続環境が変わった場合 には、注意する必要があります。固定ディスク#1以外にもインストール しておきたい場合は、臨時にSWITCHコマンドを起動して、他の起動装置に 変更した後、本プログラムを起動しておいて下さい。またはEXIDE32Gの 組み込み時に最初に出てくる、「この装置でよろしいですか?」の 問いにNで応答して、組み込み先のメニューの中から選んでください。 ただしメモリスイッチで指定したBOOT装置以外からはIPLが起動しません ので、EXIDE32Gを組み込んだとしても、そこからは起動しません。

【3】取り外し方法

 コマンドラインから、

EXIDE32G -r

というよいうに、オプションを付けて下さい( /r -R /R いずれでもよい)。既にこのプログラムが作成したコードがある場合は、取り外します。組み込まれていないハードディスクに適用すると、組み込まれていないというエラーメッセージが出て終了します(とくに何もしません)。ただしこれで取り外されるのは、EXIDE32Gのプログラム本体だけです。本体のロード&実行をコントロールする「IPLware"ローダ」プログラムは残されます。これも取り外したいという場合は、EXIDE32G -x というオプションで起動して下さい。この場合、EXIDE32G以外の登録プログラムも、全て削除されます。

【4】組み込み後の運用についての注意

 EXIDE32Gが「インストール」されたハードディスクのIPLが読み込まれると、まずIPLwareのローダプログラムが起動します。EXIDE32Gが実行されると、内蔵IDE/ATAPIデバイスの接続状態が表示されます(組み込んであることに気づくようにするため)。8063MBを超えているハードディスクがあると、容量を拡張したという表示がなされます。HSBなどを用いて再起動した場合は既に拡張済みという表示になることがあります。

(重要) 組み込み時に32GB以上有効モード(1. から 4.)を選択した場合

 32GBを超える容量のハードディスクドライブに対しては、実は Windows9xのFDISK および FORMAT が誤動作することが判っています。FDISKは、容量表示が32GB以上で負の値になるだけなので、まだよいのですが、FORMATについては、実行の最後の段階で意味不明なエラーが出てしまって使えません。また、MS-DOS 6.20の FORMAT.EXE /H については、起動してすぐに0除算でエラーとなります。

 それでは32GB超えのハードディスクが使えず困ってしまうので、Windows9xのFORMAT.COM を改良した "FORMATX.EXE" というプログラムを用意しました。本アーカイブには同梱されていないので別途ダウンロードしてください。

 IDE拡張モードとSCSI互換モードとの間で設定を変更したり、32GB以上の動作モードを変更した場合、そのまま同じハードディスクを使うためには、本ソフトの組み込み直しをする前に全ての領域を開放して下さい。領域が残っている状態でモードを変更すると、ディスクドライブのC/H/Sパラメータが変わるため、以前の領域の開始位置やみかけの容量が変わります。これにより、当該のディスクドライブから起動できなくなるだけでなく、他のディスクドライブから Windowsや MS-DOSを起動した際も、認識失敗となり起動が途中で止まってしまうことがあります。

 こうなるとお手上げですので、組み込み時の設定と異なるパラメータのモードに臨時に変更する機能を持たせてあります。IPLwareの画面が出現したら(その少し前くらいから)[GRPH]キーを押し続けて下さい。EXIDE32G導入時と同様のメニューが出ますので、現在つながっているハードディスクに適合したモードを選んでください。そしてなんとかDOSまたはWin9xのDOSモードが起動できたら、モードを変えて組み込み直しをして下さい(または全領域の削除からフォーマットやりなおし)。SCSI互換モードの使用や、32GB以上のIDEハードディスクを使う可能性が、少しでもあるのであれば、IDEドライブを繋いでない場合でもEXIDE32Gは不用意に解除せず、組み込みっぱなしのほうが安全です。

(重要) フロッピー起動でもEXIDE32Gを有効にしたいとき

 本プログラムを有効(特に32GB以上モードを有効)にした状態でフロッピーディスクからDOS(Window98のDOSモード)などのOSブートディスクを起動させたい場合には、次の2通りの方法があります。

(1)起動可能な領域または起動ドライブが複数あるとき
(2)ディスクドライブが一台のみで、かつ起動可能な領域が一個しかないとき

どちらの場合も、メモリスイッチの[BOOT装置]が[標準]に設定されている必要があります。自動起動領域の設定は解除しておいて下さい(固定ディスク起動メニュースキャン時にTABキー押しで解除メニューが出ます)。そうでないとフロッピーからの起動ができません。
(1)の場合は、まずハードディスクからの本プログラムの起動を確認後、「固定ディスク起動メニュー」が出たらば、装置選択のメニューに絶対に行かずに、「メニュー終了」へ直行して下さい。そこで、システムが出す【システムディスクを入れて下さい】のメッセージを待って、フロッピーをドライブに入れます。最初からフロッピーを入れていてはいけません。(2)の場合は、NECの仕様(というより設計の悪さ)により、「固定ディスク起動メニュー」が出現しません。これでは困るため、EXIDE32G起動直前(IPLware実行開始時期)に [F] キーを押していると、フロッピー起動できるメニューが現れるようにしました。しかし、可能な限り(1)の使用をお勧めします。ともかく、EXIDE32Gが実行されないで、直接FD起動した場合は、ハードディスクは、正常な容量、領域サイズでは認識されないということを覚えておいて下さい。

(重要) EXIDE32Gを有効にして新規OSを新しいHDDにセットアップしたいとき

 ハードディスクに98用IPLが存在してない状態では、EXIDE32Gを組み込めませんので、まずDISKINITかMS-DOS 6.20のFORMAT.EXE /H の「装置初期化」を施して、IPLを形成しておく必要があります。EXIDE32GがIPLで実行されない状態でいくらフロッピーから起動しても、正しく領域確保することはできませんから注意してください(FDISKでみても容量が正しくない状態)。EXIDE32Gが動作していないのにOSインストール中に領域を確保しようとしても、容量を誤認識するので、結局失敗します。

 とにかくOSのための領域を確保する前、そしてOSのインストールフロッピーを起動させる以前に、EXIDE32Gをハードディスクに組み込む必要があります。組み込めたら次回起動時にはフロッピーを挿入せずに、上記(1)または(2)の方法で、ハードディスクからEXIDE32を起動させてから、OS起動用あるいはインストール用フロッピーを挿入して、起動して下さい。つまり一旦ハードディスクのIPLから起動して、次にフロッピーからOSを起動するという手順になります。オンボードIDE以外のブート装置があって、メモリスイッチでそこが優先にしてある場合は、そこにEXIDE32Gを組み込んでください。これからOSを組み込むハードディスクに98用IPLも領域もない状態で構いません。


*註2 IPLwareローダプログラムのキー制御
 本プログラムは、最初に起動する「IPLwareローダプログラム」から呼ばれる形で起動します。ローダプログラム起動直前にいくつかのキー操作を施すと、実行を制御できます。起動直前といっても起動してしまってからでは遅いので、メモリチェック後あるいは拡張ROM BIOS処理の後から押し始めると
考えて下さい。

★IPLwareローダのキー操作のまとめ
[HELP]キー押し続け  手動実行(実行するかどうかの問い合わせが出る)
[DEL] キー押し続け  IPLwareプログラムを全て実行しない
[F]   キー押し続け  EXIDE32Gの設定を有効にしてからフロッピー起動
[HELP]キー押しの場合は、IPLwareローダは、EXIDE32Gプログラムを実行するかどうかの問い合わせを出します。[Y]かそれ以外のキーで応答して下さい。ローダプログラムすらも実行させたくない場合は、[DEL]キーです。起動直前に[F]キーを押していた場合は、登録されているIPLwareプログラムを実行した後、フロッピーから起動します。これは[SHIFT]キー、[GRPH]キー、との併用(同時押し)が可能です。

★EXIDE32G 固有の操作
[SHIFT]キー押し続け  画面表示の保持(SHIFTキーを離すと続行)
[GRPH] キー押し続け  32GB超過ドライブの、臨時のモード(パラメータ)変更
            これは EXIDE32Gが起動する直前に押せば間に合います。

【5】全般的な注意事項

※ 本ソフトのプロフラムが作用するのは、8063MB対応の9821内蔵インターフェイスに接続されたIDEディスクドライブだけです。UIDE-xxやIDE-98、SCSIアダプタに接続されたものについては、何ら作用しません。また4351MB以上に対応していない旧機種の内蔵インターフェイスに接続されたディスクドライブに対しても、なにも作用しません(そもそもそれを超える容量のディスクドライブを接続すると、システムの起動ができなくなります)。

※ 本ソフトが組み込まれているハードディスクに対して、DISKINITあるいはMS-DOSの FORMAT /H の「装置初期化」を実行すると、本ソフトは消去されてしまいます。本ソフトに限らず、IPL起動メニュー組み込みソフトは全て消去されます。消去された場合は、最初から組み込み直して下さい。

※ 起動時に"EXIDE32G  CHECKSUM不正" と表示されてビープ音が鳴りっぱなしになったら、どれかのキーを押して下さい。EXIDE32Gはパスされて起動します。このエラーが出るのは EXIDE32G のプログラム本体が何かの理由で破壊されていることを示します(通常このようなことは起こりえません)。再度EXIDE32Gを組み込み直して下さい。

※ NEC 2.70 以外の起動メニュープログラムが使われているハードディスクには、適用できません。MS-DOS 以外のOSでも使う場合には、NEC 2.70の固定ディスク起動メニューが必須だと思われます。

※ Windows GUI稼働中の DOS窓からは、本ソフトは起動できません。 Windows2000やNTのcmdから起動すると、ハードディスクがないというエラーになりますが、これは仕様です(DISK BIOSが見えなくなっているため)。

※ 組み込まれているかどうかの確認には、 EXIDE32G /I というオプションが使用できます(表示内容についてはここでは解説しません)。

【6】技術的参考事項

 本ソフトに含まれるIPLwareローダのコードは、標準の起動メニューのコードの最後の部分、BIOSシリンダ0, ヘッド0,  セクタ14から15の空き領域に書き込まれます。起動メニューの最初のジャンプコードを書き換えて、埋め込んだコードに飛ぶように変更します。詳しくはIPLwareの技術説明書をごらん下さい。EXIDE32G.EXEは、"IPLware"という仕様に従って組み込みを行ないます。

 容量拡張の方法ですが、4351MB上限のない機種では、IDE BIOSのワークエリアに、IDEポートごとにBIOSヘッド数、セクタ数、シリンダ数を格納した場所があります(*)。ここを直接書き換えることで、BIOSが算出するディスクアドレスもうまく変わります。BIOSからハードディスクへはCHSアドレスでアクセスされているため、ハードディスクの振舞うヘッド数セクタ数のほうも変更する必要があります。EXIDE32Gでは、変更したパラメータでInitiaize device parameterコマンドをハードディスクに発行し、BIOSのワークエリアのほうと一致させます。なおバージョン3.33からは対応IDEBIOSかどうかのチェックの方式を改めました(機種IDによるチェックではなくBIOSの構造のチェック)。
 (*)D800:2100h(ノート機種では2700h)から32バイトおきに4ブロック存在する。

【7】お約束(無保証・無責任)

 本ソフトの著作権は、作者である「まりも」 が有します。基本的にコピーフリーなソフトとします。今のところは、不特定多数の人がダウンロードできる場所への転載は禁止としますが、個人的に配布する場合は、アーカイブを改変せずにそのまま配布して下さい。 動作の検証、特にフォーマット後のドライブのアクセス可能性のチェックは十分に行なっていいるつもりですが、作者は、本ソフトウェアの動作を完全に保証するものではありません。
 本ソフトを実行・適用した場合における、損害(データの損失・機器の故障・利益の損失・精神的苦痛など)に関する一切の責任をとりませんので、予めご了承下さい。それに同意できない方には、本ソフトの使用を禁止します。また、OSインストールの一般的な方法に関する質問を投げかけないで下さい。この説明書以上のことについての説明義務は負わないものとしますので、これを読んでも使い方や意義がわからなかった場合は、使用しないでください。
 

【8】改版履歴

年月日    版 内容
2001. 4. 1 1.00 新規作成
2001. 4.14 画面表示上のバグ修正.EXIDE??.BINはプログラムに内蔵.
2001. 4.25 1.10 将来にむけて、組み込み仕様(IPLware)を変更
2001. 4.26 1.11 1.10では旧バージョン(1.0x)の削除ができなかった点を修正
2001. 6. 1 2.00 組み込み方式を全面変更し、Windows2000による破壊を回避
2001. 8.13 2.10 32GBのドライブに対して、複数のCHSパラメータ対応とした
2001. 9.17 2.11 IPLwareローダプログラムの仕様変更(FDBOOT関係)
2001. 9.22 2.12 IPLwareローダプログラムの修正(IPLware.exeに合わす)
2001.10. 1 2.20 PK98-MISRESS9で使用する32G超ドライブに対応
2001.12. 8 3.00 IPLware バージョンアップに合わせてローダプログラム変更
2002. 2. 2 3.02 組込み先ハードディスクの容量が64GBを超えているときの表示修正
2003. 4. 1 3.30 SCSI互換パラメータで使用するモードを新たに設けた
2003. 7. 5 3.31 組込先装置リストの表示を変更
2004. 8.20 3.33 4.3GB以下のHDDがH=8,S=17になっていなかった!のを修正
2005. 4.13 3.40 SCSIブートROM置き換えソフト」に対応
2005. 9.20 3.4a IPLwareローダのみ更新