LONG Devconnect(WORD source, WORD dest, WORD clk, WORD prescale, WORD protocol)

Description:  Connecte une source sonore à un ou plusieurs récépteurs de son à l'aide de la matrice.

Opcode:  139  (0x008b)

Availability:  Présent si le bit 2 du cookie '_SND' est à 1 (0x04).

Parameters:  
    source indique la source sonore parmis les sources suivantes :
    Nom       source  Description
    DMAPLAY   0       Restitution sonore DMA
    DSPXMIT   1       Emission DSP
    EXTINP    2       Entrée externe (connecteur DSP)
    ADC       3       Microphone/Générateur de son Yamaha

    dest est un champ de bits qui permet de choisir un ou plusieurs récépteurs de 
    son auxquels connecter la source parmis les récépteurs suivants :
    Nom      Masque  Description
    DMAREC   0x01    Enregistrement sonore DMA
    DSPRECV  0x02    Récéption DSP
    EXTOUT   0x04    Sortie externe (connecteur DSP)
    DAC      0x08    Sortie casque ou haut parleur interne

    clk désigne l'horloge utilisée pour générer les fréquences de transfert :
    Nom      clk  Description
    CLK_25M  0    Horloge interne 25.175 MHz
    CLK_EXT  1    Horloge externe (voir bug ci-dessous)
    CLK_32M  2    Horloge interne 32 MHz

    prescale permet de choisir le diviseur de fréquence à appliquer. La fréquence 
    de transfert est déterminée selon la formule suivante 
    frequence = (freqence_horloge/256)/(diviseur+1)

    Les diviseur valides pour l'horloge 25.175 MHz sont les suivants :
    Nom         prescale   Description/Frequence
    CLK_COMPAT  0          mode compatible TT030/STe. Permet d'utiliser le diviseur 
                           positionné à l'aide de Soundcmd(). 
    CLK_50K     1          49170 Hz
    CLK_33K     2          32780 Hz
    CLK_25K     3          24585 Hz
    CLK_20K     4          19668 Hz
    CLK_16K     5          16390 Hz
    CLK_12K     7          12292 Hz
    CLK_10K     9          9834 Hz
    CLK_8K      11         8195 Hz


    protocol permet d'effectuer des transferts sans perte de donnée. La valeur 
    HANDSHAKE (0) met en place un système de rendez-vous pour transférer les 
    données sans perte, tandis que la valeur NO_SHAKE (1) désactive ce système. 
    Lorsque vous transférez des données sonores à travers la matrice vers la 
    sortie casque ou depuis le microphone, il est recommandé de désactiver le 
    système de rendez-vous et de transférer les données avec perte. Au contraire 
    si vous transférer des données qui ne doivent pas être altérées, utilisez 
    ce système pour transférer sans perte.


Binding:  
    move.w  protocol,-(sp)
    move.w  prescale,-(sp)
    move.w  clk,-(sp)
    move.w  dest,-(sp)
    move.w  source,-(sp)
    move.w  #$8B,-(sp)
    trap    #14
    lea     12(sp),sp
Return value:  Devconnect() renvoie 0 en cas de succès et une valeur non nulle sinon.

Definition:
    Si vous utilisez un diviseur de fréquence invalide, aucun son ne sera émis, 
    le système restera muet.

    Devconnect() est buggé en ce qui concerne l'utilisation d'une horloge 
    externe. En effet, après avoir appelé Devconnect() avec le paramètre clk 
    égal à CLK_EXT (1), il faut positionner les bits 13 et 14 de l'addesse 
    $FF8930 comme suit :

            or.w    #$6000,$ff8930

    Pour utiliser de nouveau l'horloge interne à 25 MHz, après avoir appelé 
    Devconnect() avec le paramètre clk égal à CLK_25M (0) vous devez remettre 
    les bits en question à zéro comme ceci :

            and.w   #$9fff,$ff8930

    Pour l'ordinateur, les hauts parleurs sont des récépteurs de son et non des 
    sources. En parlant de source sonore et de récépteur de son, nous considérons 
    donc ici le point de vue de l'ordinateur.



mailto: Stabylo
HTTP: http://removers.atari.org


See Also:   Soundcmd()


Merci de votre visite sur GEMTOS!!!

(C) 2000 Gemtos.free.fr. All rights reserved by the authors.