PCIデバイスにはブート用ROMを持つものがあります.たとえばSCSIやストレージ,ethernet,VGAデバイスなどです.そのROMイメージをファイル化するのが本プログラムです.ROMイメージはシステム起動時に拡張ROM空間にマップされてはいますが,これはイメージの全てではなく,またRAM上にコピーおよび改変されてマップされており,ROMチップ内のイメージデータとは同一でないことが普通です.本プログラムではROMから直接読み出します.多くのPCIの拡張ROM書き換えツールにはバックアップ機能がありますが,汎用のものは存在しないので作成しました.
リアルモードの日本語MS-DOS(DOS/V)のコマンドラインから,PCIXROMと打って実行します.実行開始すると全PCIデバイスをスキャンし,拡張ROMを持つ可能性のあるデバイスのみのリストを作成します.リストの中から↑↓キーで選択してリターンキーで確定してください.そのデバイスのROMイメージを読みに行きます.PCIデバイスはベンダコード,デバイスコード,クラスコードというもので識別されます.本プログラムが知っているコードの場合は,名前で表示します.ベンダ名はチップ製造メーカの名前なので,ボードのベンダ会社名とは異なる場合があります.クラスコード(デバイスの種別)は,おおよその名前で表示します.たとえばATAカードであってもSCSIアダプタと表示する場合があります.
ROMを実装していなかったり不正なデータ構造になっているデバイスもあります.このときは実行を中止します.ただしコマンドオプション /F をつけている場合は,内容のいかんにかかわらずファイルを出力します.
作成されるファイルは,いつも PCIXROM.BINという名前になっていますので,どのデバイスのROMイメージファイルであるかは覚えているようにしてください.適当に名前を変えて置いたほうがよいでしょう.なお,カレントディレクトリにファイルは作成されます.
【応用的使い方】
ROMソケットがついたPCIボード(Ethernetボードに多い)に,何かのROMを載せると,そのROMの内容を読み出すことができます.ただしROM内容によっては,PCシステムの起動を阻害します.PCIとは完全に関係ない内容のROM(先頭が55h,AAhでないデータ)ならば起動に支障を来しません.
・このプログラムはPC/AT互換機専用版ですが,別途PC-9821専用版も存在しています.ダウンロードは別個となっていますが,プログラム名が同一ですので混同しないように注意してください.
・MS-DOSはWindows9xのでもかまいません.ただしEMM386を組み込んだ状態では仮想86モードとなり,本プログラムは実行できません.しかしHIMEM.SYSを組み込んだ状態で使用することはできます.DOSの言語モードについては,日本語モード,英語モードどちらでも使用できます.
・出力されるファイルサイズは正しいとは限りません.イメージサイズはROMヘッダーの当該箇所から取得しているので,実際と異なる大きさが書かれている場合やデータがPCI ROMとして不正な場合には,本来のサイズではファイルが作成されません. コマンドオプション /N をつけた場合は,拡張ROMベースアドレスレジスタで 要求するサイズで出力します.この場合実際のデータサイズ より大きくなる可能性があります.
・PCI,PCI-X,PCIexpressバススロット上のボードではない,マザーボードのオンボードデバイスのROMデータは本プログラムでは取得できません.
・取得できる最大のサイズは,DOSプログラムの制限のため512KBとなっています.ネットワークブート用ROMでは不足するものが存在するかもしれません.
・非常に古い機種(1999年以前)のマザーボードでは,PCI-PCIブリッジの下にあるデバイスのROMを読み出せない場合があります.これは,システムBIOSが正しくリソースを割り当てていないためです.
・GIGABYTE製のほとんどのマザーボードでは実行できません.これは,GIGABYTEのBIOSでは,PCIデバイスに割り当てられるべきROMのメモリアドレスを,起動(POST)完了後に解放してしまうためです.
・実行に際しMS-DOSのコンベンショナルメモリの空きが550KB程度必要です.
このプログラムは,解析用,勉強用,個人的なROMイメージのバックアップ用に使ってください.BIOS ROMの不正な複製品の製造には絶対に使用しないでください.これを使用条件とします.このプログラムはフリーソフトウェアです.使用条件に反しない限りコピーフリーで使用できます.ただし不特定多数のダウンロードできる場所への転載はお断りします.使用した結果に関して,作者は一切責任を負いません.
年月日 版 内容 2010- 4-15 1.05 PC/AT互換機版を新規公開 2010-12- 1 1.06 一部のデバイスクラス名が正しくない表示になるのを修正