DSP.TXT Driver File Contents (disk2.ZIP)

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

How To Update Drivers Manually

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.

server: web4, load: 1.06