PCIデバイスの拡張BIOS ROMイメージをファイル化するプログラム
[ PCIxROM ] Version 1.04
Copyright 2003-2006 まりも
1.【目的】
PCIデバイスにはブート用ROMを持つものがあります。たとえばSCSIやストレージ、ethernet、VGAデバイスなどです。そのROMイメージをファイル化するのが本プログラムです。ROMイメージはシステム起動時に拡張ROM空間にマップされてはいますが、これはイメージの全てではなく、またRAM上にコピーおよび改変されてマップされており、ROMチップ内のイメージデータとは同一でないことが普通です。本プログラムではROMから直接読み出します。一般に、PC/AT互換機用には、PCIの拡張ROM書き換えツールにバックアップ機能がありますが、PC-9821にほとんどの場合存在しないので作成しました。またPC/AT互換機用も用意しました(バージョン1.05から)。
2.【使い方】
まずアーカイブを解凍して PCIXROM.EXEを取り出してください。
HIMEM.SYSを組み込んであるリアルモードのMS-DOSコマンドラインから、PCIXROMと打って実行します。実行開始すると全PCIデバイスをスキャンし、拡張ROMを持つ可能性のあるデバイスのみのリストを作成します。リストの中から↑↓キーで選択してリターンキーで確定してください。そのデバイスのROMイメージを読みに行きます。PCIデバイスはベンダコード、デバイスコード、クラスコードというもので識別されます。本プログラムが知っているコードの場合は、名前で表示します。ベンダ名はチップ製造メーカの名前なので、ボードのベンダ会社名とは異なる場合があります。クラスコード(デバイスの種別)は、おおよその名前で表示します。たとえばATAカードであってもSCSIアダプタと表示する場合があります。
ROMを実装していなかったり不正なデータ構造になっているデバイスもあります。このときは実行を中止します。ただしコマンドオプション /F をつけている場合は、内容のいかんにかかわらずファイルを出力します。
作成されるファイルは、いつも PCIXROM.BINという名前になっていますので、どのデバイスのROMイメージファイルであるかは覚えているようにしてください。適当に名前を変えて置いたほうがよいでしょう。なお、カレントディレクトリにファイルは作成されます。
【応用的使い方】
ROMソケットがついたPCIボード(Ethernetボードに多い)に、何かのROMを載せると、そのROMの内容を読み出すことができます。ただしROM内容によっては、PCシステムの起動を阻害します。PCIとは完全に関係ない内容のROM(先頭が55h,AAhでないデータ)だと無視されるので、すんなり起動できます。
3.【諸注意】
・このプログラムはPC-9821専用版とPC/AT互換機専用版とがあります。ダウンロードも別個となっていますが、プログラム名が同一ですので混同しないように注意してください。HIMEM.SYSが組み込まれていない場合に対応していません。
・MS-DOSはWindows9xのでもかまいません。ただしEMM386を組み込んだ状態では仮想86モードとなり、本プログラムは実行できません。いっぽうHIMEM.SYSは必要です。
・出力されるファイルサイズは正しいとは限りません。イメージサイズはROMヘッダーの当該箇所から取得しているので、実際と異なる大きさが書かれている場合やデータがPCI ROMとして不正な場合には、本来のサイズではファイルが作成されません。 コマンドオプション /N をつけた場合は、拡張ROMベースアドレスレジスタで 要求するサイズで出力します。この場合実際のデータサイズ より大きくなる可能性があります。
・取得できる最大のサイズは、DOSプログラムの制限のため512KBとなっています。ネットワークブート用ROMでは不足するものが存在するかもしれません。
・PCI-PCIブリッジの下にあるデバイスのROMを読み出す場合、別のソフト「PCISET」が実行されていることが必要です。そうでないない環境ではROMアドレス空間にアクセスできないので、正しいデータは読み出せません。
・実行に際しMS-DOSのコンベンショナルメモリの空きが550KB程度必要です。
4.【お約束】(無保証・無責任)
このプログラムは、解析用、勉強用、個人的なROMイメージのバックアップ用に使ってください。BIOS ROMの不正な複製には絶対に使用しないでください。これを使用条件とします。このプログラムはフリーソフトウェアです。使用条件に反しない限りコピーフリーで使用できます。ただし不特定多数のダウンロードできる場所への転載はお断りします。使用した結果に関して、作者は一切責任を負いません。またここに書いた以上の説明責任も負いません。分からない点はご自身で調べてください。PCIデバイス関連の書籍を見れば、ある程度のことは理解できます。
PC-9821用 5.【改版履歴】
年月日 版 内容 2003- 6-25 1.00 新規作成 2003- 8-11 1.01 コマンドレジスタメモリアクセス不可の場合でも読み出す 2003-11-17 1.02 PCI-PCIブリッジを表示リストから除外 2004- 6-19 1.03 対象デバイスがひとつもないときは即終了するようにした 2006- 5-15 1.04 マルチファンクションも検索するようにした(IFC-PCI7ESAU2に対応)[戻る]