User`s manual
DIGITAL-LOGIC AG MSLB-P5 Manual V0.3
PRELIMINARY 165
Programs calling the 32-bit BIOS services should scan 0E0000h to 0FFFF0h on the 16-byte bounda-
ries for the contiguous 16-byte data structure beginning with the ASCII signature "_32_".
If they do not find this data structure, then the platform does not support the BIOS32 Service Directory.
The following chart describes the data structure.
Offset Size Description
0h 4 bytes
ASCII signature "_32_"
Offset 0 = underscore
Offset 1 = "3"
Offset 2 = "2"
Offset 3 = underscore
4h 4 bytes Entry point for the BIOS32 Service Direc-
tory, a 32-bit physical address
8h 1 byte Revision level. Currently 00h.
9h 1 byte
Length of this structure in 16-byte units. This
structure is 16 bytes long, so the field = 01h.
0Ah 1 byte Checksum of whole data structure. Result
must be 0.
0Bh 5 bytes Reserved. Must be zero.
Once the data structure is found and verified, the program can do a FAR CALL to the entry point
specified in the above structure. The calling environment requires:
1. The CS code segment selector and the DS data segment selector must encompass the
physical page of the entry point as well as the following page.
2. The SS stack segment selector must have available 1 kB of stack space.
3. Access to I/O space.
The BIOS32 Service Directory provides a single call that:
1. Determines if the called 32-bit service is available, and, if it is available,
2. Returns three values:
a) Physical address of the base of the BIOS service.
b) Length of the BIOS service.
c) Entry point into the BIOS service (offset of the base).
BIOS32 Service Directory
Entry:
EAX Service Identifier. Four-character string
identifying the 32-bit service requested (e.g.,
"$PCI").
EBX Low-order byte [BL] is the BIOS32 Service
Directory Function Selector. Currently, zero
supplies the values described below. Upper three
bytes are reserved and must be zero on entry.
Exit:
AL Return code:
00h = Service corresponding to the Service
Identifier is present.
80h = Service corresponding to the Service
Identifier is not present.
81h = Function Selector specified not supported.
EBX Physical address of base of 32-bit service.
ECX Length of BIOS service.
EDX Entry point of BIOS service (offset to base in EBX).