OSD Home

Code snippets

Detect PnP and PCI devices:
16-bit code (Turbo C, 16-bit Watcom C) 32-bit code (DJGPP, 32-bit Watcom C)
PCI; using 16- or 32-bit PCI BIOS pcibio16.zip pcibio32.zip
PCI; using I/O ports to access configuration mechanism 1 pci.c
PnP; using 16-bit PnP BIOS pnpbio16.c pnpbio32.c (thunking)
PnP; using I/O ports (no BIOS) (incomplete)

Links

Craig Hart's PnP pages: http://members.datafast.net.au/dft0802/. Pascal PnP code and a list of PnP IDs.

PCICODE list: http://www.yourvote.com/pci

PnP documents:

BIOS32 specification: http://members.datafast.net.au/dft0802/specs/bios32.pdf

The specification for PCI BIOS, which is a 'client' of BIOS32, is freely available only to members of the PCI SIG. However, you can find samizdat copies on the web by searching for the phrase "PCI BIOS Specification"

The PCI specification is also not freely available, but can be found by searching for "PCI Local Bus Specification" Avoid incomplete documents with similar titles (e.g. "PCI Local Bus Specification Revision 2.1 vs. 2.0") Only Chapter 6 (Configuration Space) of this document deals with the software aspects of PCI. Some of the material in this chapter is summarized in Ralf Brown's Interrupt List.

TO DO

- PnP code: lookup device code in PNPID.TXT and display description
- PnP code: get supported resources and list all possible combinations
- set hardware resources as well as reading them

REPORT BUGS OR ERRORS IN THIS DOCUMENT