ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ GOLDEN SOUND CARD DSP Command Description and Source Example ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Resetting DSP:
--------------
Before programming the DSP, you should initialize it first to ensure that you
are working with default values.
out 226h, 1
Wait for 5ms
out 226h, 0
Note : after a reset, the Golden Sound DSP will be set to Sound Blaster
compatible mode. To switch the DSP to Golden Sound mode, send command
0 to the DSP.
These functions are available only after DSP version 2.0.
Function base 00h (VERSION)
---------------------------
01h : Switch DSP to Golden Sound series mode
02h : Switch DSP to Golden Sound compatible mode (default after DSP reset)
03h : Get DSP capabilities. Check with this function to determine the
functions available with the current DSP.
returns :
devcaps
bit 0 - High performance
bit 1 - Stereo
bit 2 - Surround
bit 3 - Phillips mixer*
bit 4 - Echo
04h: Get DSP Version
returns:
major version
minor version
Function base 10h (CONTROL)
---------------------------
10h : Turn off speaker
11h : Turn on speaker
12h : Stop DMA
13h : Resume DMA
14h : Set time constant for DMA TRANSTER
parameters:
time constant
SP_TIME_CONSTANT = (65536-(256000000 / 8000)) / 256
HP_TIME_CONSTANT = (65536-(512000000 / 8000)) / 256
15h : Get speaker data (FFh = on; 00h = off)
returns:
byte data
00h = off
FFh = on
16h : Set auto-initialize mode on (except for high speed)
17h : Set auto-initialize mode off (except for high speed transfer)
Function base 20h (PCM)
-----------------------
20h : direct 8-bit DAC
parameters:
DAC data
21h : 8-bit DMA DAC
parameters:
high byte of block length
low byte of block length
22h : direct 8-bit ADC
returns:
23h : 8 bit DMA ADC
parameters:
high byte of block length
low byte of block length
24h : 8-bit DMA DAC (silence)
parameters:
high byte of block length
low byte of block length
25h : 8-bit high speed DMA DAC
parameters:
high byte of block length
low byte of block length
26h : 8-bit high speed DMA DAC (cycle)
parameters:
high byte of block length
low byte of block length
27h : 8-bit high speed DMA ADC
parameters:
high byte of block length
low byte of block length
28h : 8-bit high speed DMA ADC (cycle)
parameters:
high byte or block length
low byte of block length
Function base 30h (ADPCM)
-------------------------
30h : 2-bit DMA DAC
parameters:
high byte of block length
low byte of block length
31h : 2-bit DMA DAC (with reference byte)
parameters:
high byte of block length
low byte of block length
32h : 2.6-bit DMA DAC
parameters:
high byte of block length
low byte of block length
33h : 2.6-bit DMA DAC (with reference byte)
parameters:
high byte of block length
low byte of block length
34h : 4-bit DMA DAC
parameters:
high byte of block length
low byte of block length
35h : 4-bit DMA DAC (with reference byte)
parameters:
high byte of block length
low byte of block length
Function base 40h (MIDI)
------------------------
40h : Get MIDI data from DSP (for GS32 mode)
returns:
number of data to be returned
read specified number of data returned first
41h : Set DSP MIDI to MPU-401 compatibility mode
42h : Set DSP MIDI to GS32 mode
Function base 50h (SURROUND / MIXER / ECHO)
-------------------------------------------
( *** SURROUND *** )
50h : Set attenuation level
parameters:
target
attenuation level
51h : Set delay time
parameters:
tap number
delay time
( *** MIXER *** )
52h : Set sound level
53h : Set sound source
54h : Set stereo effect
55h : Set mute status
( *** ECHO *** )
56h : Set echo delay time constant
parameters:
high byte of delay time constant
low byte of delay time constant
EDT CONST = 8 * desired_edt (in ms; max 1000 ms)
57h : Set echo attenuation table
parameters:
table data (table is 256 bytes long and 256 bytes must be sent)
Function base 60h (CAPARILITIES SWITCH)
---------------------------------------
60h : Switch to mono mode
61H : Switch to stereo mode
62h : Switch to standard perfoumance
63h : Switch to high performance
Function base E0h (BIOS FUNCTIONS FOR RAM)
------------------------------------------
E0h : Direct RAM input
parameters:
high byte of address
low byte of address
data byte
E1h : Direct RAM input with decryption
parameters:
high byte of address
low byte of address
data byte
E2h : Set decryption string index
parameters:
index value
Function base F0h (DIAGNOSTICS)
-------------------------------
F0h : Complement byte
parameters:
data byte
returns:
complemented byte
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ "GOLDEN SOUND" Surround Control ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Syntax : SURR 0
---------------
This command will turn the surround processor off.
Syntax : SURR @data_file
------------------------
This command will read the data specified in the data file and progra
the processor according to the data read.
data_file is a text file that contains the specifications for the
surround processor. This text file contains thirty (30) lines and each
line should be a number corresponding to the parameter that the line
represents:
line 01: main volume ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
line 02: loopback volume ³
line 03: left channel volume ³
line 04: right channel volume ³
line 05: FIR coefficient 0 ³
line 06: FIR coefficient 1 ³
line 07: left channel 1 attenuation ³
line 08: left channel 2 attenuation ³
line 09: left channel 3 attenuation ³
line 10: left channel 4 attenuation ÃÄ max:31 min:0
line 11: left channel 5 attenuation ³
line 12: left channel 6 attenuation ³
line 13: left channel 7 attenuation ³
line 14: left channel 8 attenuation ³
line 15: right channel 1 attenuation ³
line 16: right channel 2 attenuation ³
line 17: right channel 3 attenuation ³
line 18: right channel 4 attenuation ³
line 19: right channel 5 attenuation ³
line 20: right channel 6 attenuation ³
line 21: right channel 7 attenuation ³
line 22: right channel 8 attenuation ÄÄÄÄÄÙ
line 23: combined channel 1 delay time ÄÄÄ¿
line 24: combined channel 2 delay time ³
line 25: combined channel 3 delay time ³
line 26: combined channel 4 delay time ÃÄ max:31 min:0
line 27: combined channel 5 delay time ³
line 28: combined channel 6 delay time ³
line 29: combined channel 7 delay time ³
line 30: combined channel 8 delay time ÄÄÄÙ
================================================================================
#include <stdio.h>
#include <dos.h>
#include <string.h>
#include <stdlib.h>
typedef unsigned char BYTE;
typedef unsigned int WORD;
BYTE dspRead (void);
void dspWrite (BYTE cmd);
void atten (BYTE channel, BYTE val);
void tap (BYTE channel, BYTE val);
int main (int arge, char *argv[])
{
int i,
j;
FILE *inf;
char str[10];
printf ("Golden Sound Surround Control version 0.9\n"
"(C) Copyright 1992 TOPTEK Systems, Inc. All rights reserved.\n");
if (arge ! = 2)
{
printf ("usage:spsurr 0|@data_file\n"
" 0 turns off surround effect\n"
" data_file - text file that contains control data\n");
return (1);
}
outportb (0x226, 1);
delay (500);
outportb (0x226, 0);
delay (500);
if (dspRead () != 0xAA)
{
printf ("Golden sound Pro not detected!\n");
return (1);
}
dspWrite (0x01);
if (!stremp (argv[1], "0"))
{
for (i = 0; i <= 0x15; 1++)
atten (i, 0);
return (0);
}
if (argv[1][0] !-'@')
{
printf ("unknown option.\n");
return (1);
}
if (NULL == (inf = fopen (&argv[1][1], "rt)))
{
printf ("cannot open data file %s.\n", &argv[1][1]);
retrun (1);
}
/*
VM, VC, VL, VR, CO, C1
L0, L1, L2, L3, L4, L5, L6, L7,
R0, R1, R2, R3, R4, R5, R6, R7,
T0, T1, T2, T3, T4, T5, T6, T7
*/
for (i = 0x10; i <= 0x15; i++)
{
j=atoi (fgets (str, 5, inf));
atten (i, j);
}
for (i=0x00; i <= 0x0F; i++)
{
j = atoi (fgets (str, 5, inf));
atten (i, j);
}
for (i = 0x00; i <= 0x07; i++)
{
j = atoi (fgets (str, 5, inf));
tap (i, j);
}
tclose (inf);
return (0);
}
BYTE dspRead (void)
{
WORD I= 0;
BYTE dspData;
while (i < 0xFFFF)
{
if (inportb (0x22E) & 0x80)
{
dspData = inportb (0x22A);
break;
}
i++;
}
if (i == 0xFFFF)
printf ("DSP ERROR!\n");
return (dspData);
}
void dspWrite (BYTE cmd)
{
WORD i - 0;
while (i < 0xFFFF)
{
if (!(inportb (0x22c) & 0x80))
{
outportb (0x22C, cmd);
break;
}
i++;
}
if (i == 0xFFFF)
printf ("DSP ERROR!\n");
}
void atten (BYTE channel, BYTE val)
{
dspWrite (0x50);
dspWrite (channel);
dspWrite (val);
}
void tap (BYTE channel, BYTE val)
{
dspWrite (0x51);
dspWrite (channel);
}
================================================================================
Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.