DSP command

0xE3

Supported on

Creative Sound Blaster Pro, some clones

Description

Ask the DSP for an ASCII copyright string

How to use

/* NOTE: DSP_Read() in this example returns DSP data byte read OR
         returns -1 if DSP never signalled any data to read within
         a timeout */

char tmp[128];
int i=0,c;

DSP_Write(0xE3);
do {
    c = DSP_Read();
    if (c < 0) break; /* out of data, nothing more to read */
    tmp[i++] = c; /* else store the char */
} while (i < 127);
tmp[i] = 0;
printf("DSP copyright string is '%s'\n",tmp);

Write command 0xE3, then keep reading data until the DSP no longer returns any bytes. The bytes you did read should be stored sequentially in a char[] array, they form an ASCII string with the DSP copyright string. Cards prior to the Sound Blaster Pro do not seem to return a copyright string. Most clones do not return a string, though some instead return their own copyright string or model name.

On clone cards the copyright string can be used to more accurately identify the chip/model of the card.

External references