Chapter 8 System BIOS
To support Windows NT an additional table to the BIOS32 table has been defined to contain 32- bit pointers for the DDC locations. The Windows NT extension table is as follows:
; Extension to BIOS SERVICE directory table (next paragraph)
db | “32OS” | ; sig |
db | 2 | ; number of entries in table |
db | “$DDC” | ; DDC POST buffer sig |
dd | ? | ; |
dw | ? | ; byte size |
db | “$ERB” | ; ESCD sig |
dd | ? | ; |
dw | ? | ; bytes size |
The service identifier for client management functions is “$CLM.” Once the service identifier is found and the checksum verified, a FAR call is invoked using the value specified at offset 04h to retrieve the CM services entry point. The following entry conditions are used for calling the Desktop Management service directory:
INPUT:
EAX | = Service Identifier [$CLM] |
EBX (31..8) | = Reserved |
EBX (7..0) | = Must be set to 00h |
CS | = Code selector set to encompass the physical page holding |
| entry point as well as the immediately following physical page. |
| It must have the same base. CS is execute/read. |
DS | = Data selector set to encompass the physical page holding |
| entry point as well as the immediately following physical page. |
| It must have the same base. DS is read only. |
SS= Stack selector must provide at least 1K of stack space and be
OUTPUT:
AL | = Return code: |
| 00h, requested service is present |
| 80h, requested service is not present |
| 81h, |
| 86h and CF=1, function not supported |
EBX | = Physical address to use as the selector BASE for the service |
ECX | = Value to use as the selector LIMIT for the service |
EDX | = Entry point for the service relative to the BASE returned in EBX |
The following subsections provide a brief description of key Client Management functions.
Featuring the AMD Athlon XP Processor
Second Edition - April 2003