Spécification | Description |
---|---|
Fabricant | Creative Labs |
Date de conception | 1989 |
Modèle | CT1320A |
Nombre de transistors | 100 000 |
Sortie | 8 bits mono |
Architecture | ISA |
Introduction
La carte de son Sound Blaster du fabricant Creative Labs est une carte de son ayant été la référence durant la fin des années 1980 et du début des années 1990 en matière de micro-ordinateurs IBM PC. Les programmeurs peuvent utilisé le DSP (abréviation de Digital Signal Processing) pour effectuer sa programmation à partir des ports d'entrées/sorties.
Remarque
- La détection de carte réseau avec une carte de son sont souvent à problème sur les systèmes d'exploitations DOS, ainsi, les deux types de cartes utilisent les mêmes ports d'entrée/sortie et l'un risque de faire planter l'autre. Pour cette raison, il préférable d'utiliser la variable d'environnement «BLASTER» du système d'exploitation DOS pour contourner le problème.
Programmation
Pour détecter une carte de son Sound Blaster en Turbo Pascal, il est nécessaire d'interagir avec le matériel en accédant directement aux ports d'entrée/sortie du système. La Sound Blaster utilise des adresses de ports spécifiques et envoie des réponses caractéristiques permettant de la détecter.
Voici une approche courante pour détecter une Sound Blaster :
- Trouver l'adresse de base de la Sound Blaster : la carte utilise un ensemble spécifique de ports d'entrée/sortie, généralement configurés à une adresse de base comme 220h, 240h, ou 260h.
- Vérifier la présence de la Sound Blaster en lisant des registres spécifiques associés à ces adresses de ports.
- Interroger le port de version pour confirmer que la carte répond correctement.
Voici un exemple vérifiant la présence d'une carte Sound Balster en interrogeant l'adresse de base 220h, ce qui est typique pour les cartes Sound Blaster :
- Program IsSB;
-
- Uses Crt;
-
- Const
- SB_BASE=$220; { Adresse de base typique de la Sound Blaster }
-
- { Vérifie si une Sound Blaster est présente à l'adresse de base spécifiée }
- Function DetectSoundBlaster(Base:Word):Boolean;
- Var
- Status:Byte;
- Begin
- { Écriture d'une commande de reset à la carte Sound Blaster }
- Port[Base+$06]:=1; { Réinitialise }
- Delay(10); { Petit délai }
- Port[Base+$06]:=0; { Fin de la réinitialisation }
- Delay(10);
- { Lecture du port de statut pour voir si la carte répond }
- Status:=Port[Base+$0E];
- If Status=$AA Then { $AA est la réponse typique après un reset réussi }
- DetectSoundBlaster:=True
- Else
- DetectSoundBlaster:=False;
- End;
-
- BEGIN
- If DetectSoundBlaster(SB_BASE)Then WriteLn('Sound Blaster détectée à l''adresse de base 220h')
- Else WriteLn('Sound Blaster non détectée.');
- END.
Voir également
Programmation - Sound Blaster - Accueil