User`s manual
DIGITAL-LOGIC AG MSLB-P5 Manual V0.3
PRELIMINARY 198
To find the PnP entry points, search for the PnP BIOS Support Installation Check structure by
searching for the "$PnP" signature in system memory staring from F0000h to FFFFFh at every 16-byte
boundary. Check the validity of the structure by adding the values of Length bytes, including the
Checksum field, into a 8-bit value. Zero indicates a valid checksum.
The following describes the support structure:
PnP Support Installation Check
Offset Size Description
00h 4 ASCII "$PnP" signature
04h 1 Version (10h)
05h 1 Length (21h)
06h 2 Control field
08h 1 Checksum
09h 4 Event-notification flag address
0Dh 2 Real Mode 16-bit offset to entry point
0Fh 2 Real Mode 16-bit code segment address
11h 2 16-bit Protected Mode offset to entry point
13h 4 16-bit Protected Mode code segment base
address
17h 4 OEM Device Identifier
1Bh 2 Real Mode 16-bit data segment address
1Dh 4 16-bit Protected Mode data segment base
address
Call each service by loading the function parameters on the stack and FAR calling the appropriate en-
try point. The following are the Runtime Services of PhoenixBIOS 4.0, in 'C' syntax.
PnP Runtime-Service Function Parameters
00h Get Number of Device Nodes
Entry:
int FAR (*entryPoint)(Function, NumNodes, NodeSize,
BiosSelector);
int Function;
unsigned char FAR *NumNodes;
unsigned int FAR *NodeSize;
unsigned int BiosSelector;
01h Get System Device Node
Entry:
int FAR (*entryPoint)(Function, Node, devNodeBuffer,
Control, BiosSelector);
int Function;
unsigned char FAR *Node;
struc DEV_NODE FAR *devNodeBuffer;
unsigned int Control;
unsigned int BiosSelector;
02h Set System Device Node
Entry:
int FAR (*entryPoint)(Function, Node, devNodeBuffer,
Control, BiosSelector);
int Function;
unsigned char Node;
struc DEV_NODE FAR *devNodeBuffer;
unsigned int Control;
unsigned int BiosSelector;
03h Get Event
Entry:
int FAR (*entryPoint)(Function, Message, BiosSelector);
int Function;
unsigned int FAR *Message;
unsigned int BiosSelector;
04h Send Message
Entry:
int FAR (*entryPoint)(Function, Message, BiosSelector);
int Function;
unsigned int Message:
unsigned int BiosSelector;
Continued