ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ 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.