Plug and Play BIOS Specification
Plug and Play BIOS Specification 1.0A Page 49
ISA Read Data Port:
The ISA Read Data Port is used to read information from the Plug and Play registers. The value
represented here is the I/O port that was determined by the system BIOS to not conflict with another ISA
I/O port. Refer to the ISA Plug and Play Specification for more information on the ISA Read Data Port.
The BiosSelector parameter enables the system BIOS, if necessary, to update system variables that are
contained in the system BIOS memory space. If this function is called from protected mode, the caller
must create a data segment descriptor using the 16-bit Protected Mode data segment base address
specified in the Plug and Play Installation Check data structure, a limit of 64KB, and the descriptor must
be read/write capable. If this function is called from real mode, BiosSelector should be set to the Real
Mode 16-bit data segment address as specified in the Plug and Play Installation Check structure. Refer to
section 4.4 above for more information on the Plug and Play Installation Check Structure and the
elements that make up the structure.
This function is available in real mode and 16-bit protected mode.
Returns:
0 if successful - SUCCESS
!0 if an error (Bit 7 set) or a warning occurred - error code (The function return codes are described in
Appendix C)
The FLAGS and registers will be preserved, except for AX which contains the return code.
Example:
The following example illustrates how the 'C' style call interface could be made from an assembly
language module:
push Bios Selector
push segment/selector of Config. structure buffer ; pointer to configuration data buffer
push offset of Configuration structure buffer
push GET_ISA_CONFIG_STRUC ; Function 40h
call FAR PTR entryPoint
add sp,8 ; Clean up stack
cmp ax,SUCCESS ; Function completed successfully?
jne error ; No-handle error condition
.
.
4.7.4 Function 41h - Get Extended System Configuration Data (ESCD) Info
Synopsis:
int FAR (*entryPoint)(Function, MinESCDWriteSize, ESCDSize, NVStorageBase,
BiosSelector);
int Function; /* PnP BIOS Function 041h */
unsiged int FAR *MinESCDWriteSize; /* Minimum buffer size in bytes for writing to NVS */
unsigned int FAR *ESCDSize; /* Size allocated for the ESCD... */
/* ...within the nonvolatile storage block */
unsigned long FAR *NVStorageBase; /* 32-bit physical base address for.*/
/* .mem mapped nonvolatile storage media */
unsigned int BiosSelector; /* PnP BIOS readable/writable selector */
Description:
Optional. This function provides information about the nonvolatile storage on the system that contains
the Extended System Configuration Data (ESCD). It returns the size, in bytes, of the minimum buffer
required for writing to NVS in MinESCDWriteSize, the maximum size, in bytes, of the block within the
nonvolatile storage area allocated specifically to the ESCD in ESCDSize, and if the nonvolatile storage is
memory mapped, the 32-bit absolute physical base address will be returned in NVStorageBase. The
physical base address of the memory mapped nonvolatile storage will allow the caller to construct a 16-bit