![]() |
The 9 byte record provided by both serial isolation and at the start of a wake up to a specific card (see below) is encoded as follows
<four byte encoded id> <four byte serial number> checksum byte.
All values in PNP are presented to the interface least significant byte first (little endian)
struct serial_id
{
struct encoded_id
{
short
encoded_model_name; // encoded ascii
short
product_number;
// nnn.rev
}encoded_id;
long serial_number; //
0xFFFFFFFF is permissible as a generic
number
char checksum;
};
the product number consist of a 3 field product it and rev level
the word 00E4 means
vendor product 00E revision 4
The encoded_model_name is compressed ascii using 15 bits to encode 3 ascii characters as follows
43210 98765 43210
xxxxx : xxxxx : xxxxx
Bit 15 is not used.
1:1:1 in this field indicates a card by the name of AAA
26:26:26 in this field indicates ZZZ
Output from a typical soundblaster pnp device is as follows
0E8C 00E4 D6E31B00 48
and is decoded as
"CTL 00E rev4, Serial Number 1827798, checksum 0x48"
The four byte encoded_id structure defined above, is also used in other information records as described below. Note, not the data, the structure is used for similar purpose in other information records recieved from the interface.