DOS用のアプリケーションを開発しています。パラレルポート経由で通信する必要があります。
現在、どの PCI 関数の BAR (ベース アドレス レジスタ) にそのパラレル ポートのベース アドレス (つまり、データ ポート アドレス) が含まれているかを判断する方法に行き詰まっています。:?
正確には、特定の BAR にそのパラレル ポートのベース アドレスが常に含まれるという業界の慣習、標準、またはデファクト スタンダードはありますか?
そうでない場合、その PCI パラレル ポートのベース アドレスを特定するにはどうすればよいですか (PCI 拡張カードまたは mobo に統合されているかどうか)。
実は、私はPCI 拡張カードのパラレル ポートに関心があります。私の知る限り、BIOSはこれらについて知りません。BIOS はリソースを PCI カードにのみ割り当てます。それだけです。そのため、BDA にそのようなパラレル ポートのエントリがない可能性があります。BIOS の製造元は、モボが持つすべてのデバイスについてしか知らないからです。
たとえば、PC では、pci 拡張カードに 4 つのパラレル ポートをインストールしましたが、mobo には 1 つのパラレル ポートが統合されています。他の 2 つのパラレル ポートのエントリはどこに行くのでしょうか?
そのため、BIOS には、チップセットまたはマザーボードに統合された3 つのパラレル ポートのみのエントリがあるようです。したがって、mobo にインストールされている PCI 拡張カードのパラレル ポートのベース アドレスを取得するには、PCI BAR を読み取る必要があると思います。
ありがとう