Detailní popis registrů


     CPF         Current Pitch and Fractional Adress
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |Current Pitch                  |Fractional Adress              |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Current Pitch     Definuje aktuální rozladění/výšku oscilátoru.
                       Hodnota 4000h je nula = 44100 Hz

     Frac. Adress      Tento registr je stále obnovován aktuální hodnotou,
                       ale bohužel nevím jakou, protože jsem to nikdy
                       nezkoumal.


     PTRX        Pitch Target, Reverb Send, Aux Byte
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |Pitch Target                   |Reverb Send    |Aux Byte       |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Pitch Target      Tento registr je stále obnovován aktuální hodnotou
                       přicházející z generátoru obálky a LFO. Definuje
                       výšku / frekvenci oscilátoru

     Reverb Send       Udává velikost Reverb efektu

     Aux Byte          Nemá využití. Kdesi jsem ale viděl, že se do něj
                       zapisuje negovaná hodnota Pan


     CVCF        Current Volume and Filter Cutoff
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |Current Volume                 |Current Filter Cutoff          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Current Volume    Definuje aktuální hodnotu hlasitosti oscilátoru

     C. Filter Cutoff  Definuje aktuální hodnotu Cutoff filtru


     VTFT        Volume and Filter Cutoff Targets
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |Volume Target                  |Filter Cutoff Target           |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Volume Target     Registr je obnovován z generátoru obálky a LFO

     Filter Cutoff T.  Registr je obnovován z generátoru obálky a LFO


     PSST        Pan Send and Loop Start Adress
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |Pan            |Loop Start                                     |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Pan               Udává panning oscilátoru. 00h=vpravo, 0FFh=vlevo a
                       80h=doprostřed

     Loop Start        Definuje start opakování samplu


     CSL         Chorus Send and Loop End Adress
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |Chorus         |Loop End                                       |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Chorus            Udává velikost chorus efektu

     Loop End          Definuje konec opakování samplu


     CCCA        Q Factor, Control Bits, Current Adress
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |QFactor|0|D|W|R|Current Adress                                 |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     QFactor           Udává velikost rezonance u filtru. 0=bez rezonance,
                       0Fh=24dB rezonance. Jedná se ovšem o faktor rezo -
                       nance u cutoff filtru (normálně je to LowPass, ale
                       lze jej přeprogramovat na BandPass) a ne o rezoná-
                       tor. Nemyslete si, že by z toho byla nějaká 303.

     D (DMA)           Jestliže je jedničkový, oscilátor je v DMA režimu

     W (Write)         1 = Write (zápis), 0 = Read (čtení)

     R (Right)         1 = Right, 0 = Left; volí Left nebo Right DMA


     HWCF4       Configuration DoubleWord 4
     HWCF5       Configuration DoubleWord 5
     HWCF6       Configuration DoubleWord 6
     HWCF7       Configuration DoubleWord 7

     Používají se při inicializaci a programování efektového procesoru.
     HWCF7 je neoficiální a nedokumentovaný.


     SMALR       Sound Memory Adress for "Left" SM Reads
     SMARR       Sound Memory Adress for "Right" SM Reads
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |E|0|0|0|0|0|0|0|Sound Memory Adress                            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     E (Empty)         Pokud je nastaven na nulu, tak může být čtena další
                       data

     Sound Mem. Adress Určuje adresu pro čtení z paměti. Podle použitého
                       registru pro "Left" nebo "Right" DMA.


     SMALW       Sound Memory Adress for "Left" SM Writes
     SMARW       Sound Memory Adress for "Right" SM Writes
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |F|0|0|0|0|0|0|0|Sound Memory Adress                            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     F (Full)          Pokud je nastaven na nulu, mohou být zapisována
                       další data

     Sound Mem. Adress Určuje adresu pro zápis do paměti. Podle použitého
                       registru pro "Left" nebo "Right" DMA.


     SMLD        Sound Memory "Left" Data
     SMRD        Sound Memory "Right" Data

     Spolu s SMAxx slouží k přenosu dat do nebo z DRAM EMU. Více informací
     je v kapitole Paměťový interface.


     WC          Sample Counter

     Tento registr  je inkrementován 44100x  za sekundu. K  jeho přetečení
     dohází  každou  1.486  sekundy.   Používá  se  například  pro  přesné
     časování a synchronizaci.


     HWCF1       Configuration Word 1
     HWCF2       Configuration Word 2
     HWCF3       Configuration Word 3

     Používají se při detekci a inicializaci.


     INIT1       Initialization Array 1
     INIT2       Initialization Array 2
     INIT3       Initialization Array 3
     INIT4       Initialization Array 4

     Používají se k přesunu inicializačních polí do EMU a při programování
     efektového procesoru.


     ENVVOL      Volume Envelope Delay

     Určuje velikost Delay u hlasitostní obálky. Hodnota 8000h znamená, že
     delay není aktivní,  hodnoty menší než 8000h znamenají  délku delay v
     krocích po 725 mikrosekundách.

           ENVVOL = 32768 - (Delay*1000/725)   Delay [msec]


     DCYSUSV     Volume Envelope Sustain and Decay
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |P|Sustain      |O|Decay/Release|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     P                 Určuje, jestli je do registru zapisována hodnota
                       pro Decay (0) nebo pro Release (1).

     Sustain           Určuje velikost Sustain. 7Fh je bez útlumu,
                       00h reprezentuje maximální útlum - ticho. Jednotky
                       jsou v 3/4 dB.

     O (Off)           Pokud je jedničkový, jsou vypnuty generátory obálek
                       a LF oscilátory.

     Decay/Release     Určuje délku Decay nebo Release (podle bitu P).

                       DCY = 2*log(0.5)*log(23756/Decay) Decay [msec]
                       Vzorec platí také pro Release.


     ENVVAL            Modulation Envelope Delay

     Totéž co ENVVOL, avšak pro modulační obálku.


     DCYSUS            Modulation Envelope Sustain and Decay

     Totéž   co  DCYSUSV,   avšak  pro   modulační  obálku.   Bit  O  není
     implementován a je stále nastavený na nulu.


     ATKHLDV           Volume Envelope Hold and Attack

     Bity 14-8  určují délku Hold.  Bity 6-0 určují  délku Attack. Hodnoty
     registrů lze vypočítat podle následujících vzorců:

     HLD = 127-(Hold_ms/92)        Hold [msec]

     U Attacku je to trošku složitější:

        if Attack>=360 then ATK:= 11878/Attack - 1;
        if (Attack<360) and (Attack<>0) then
                             ATK:= 32 + (16/log(0.5)) * log(360/Attack);
        if Attack = 0 then ATK:=7Fh;


     LFO1VAL           LFO #1 Delay

     Totéž co ENVVOL, avšak pro LFO #1


     ATKHLD            Modulation Envelope Hold and Attack

     Podobně jako u ATKHLDV, ale pro modulační obálku.


     LFO2VAL           LFO #2 Delay

     Totéž co ENVVOL, avšak pro LFO #2


     IP                Initial Pitch

     Určuje  výšku  tónu  generovaného  oscilátorem  při použití modulace.
     Hodnota 0E000h  reprezentuje 44.1kHz.  Jedna  oktáva je 4096 = 1000h.
     Jak jste si asi všimli, tak  frekvence přehrávání je shora omezena na
     176kHz.


     IFATN             Initial Filter Cutoff and Attenuation

     Vyšší byte tohoto registru určuje frekvenci Cutoff  filtru v  rozsahu
     100Hz až 8kHz. Frekvence je udávána v krocích po 125Hz.
     Nižší byte  určuje útlum. 0 je  "plný výkon" (0dB), 255  je ticho (96
     dB). Útlum se udává v krocích po 3/8 dB.


     PEFE              Pitch and Filter Envelope Heights

     Vyšší byte  tohoto registru určuje  vliv modulační obálky  na výšku /
     frekvenci  oscilátoru. Hodnota  je v  rozsahu -128  až +127 (signed).
     Minimální  hodnota  reprezentuje  -1  oktávu  a  maximální hodnota +1
     oktávu.
     Nižší hodnota  určuje vliv obálky  na Cutoff filter.  Hodnota je opět
     8-bitový signed.


     FMMOD             Vibrato and Filter Modulation from LFO #1

     Podobně  jako u  PEFE, avšak  pro LFO  #1. LF  oscilátor má  sinusový
     průběh.  Záporná  hodnota  v  registru  určuje,  že  oscilátor začíná
     oscilovat do kladné záporné půlvlny.
     Vyšší byte určuje vibrato - vliv na výšku / frekvenci oscilátoru.
     Nižší byte určuje wah-wah - vliv na Cutoff filter.


     TREMFRQ           LFO #1 Tremolo Amount and Frequency

     Vyšší  byte registru  určuje tremolo   - vliv  LFO na  útlum signálu.
     Hodnota  je  opět  8-bit  signed  a tremolo  může pracovat  v rozsahu
     +/-12dB. Nižší  byte  udává  frekvenci  LF  oscilátoru.  Frekvence se
     zadává v krocích po 0.042Hz.


     FM2FRQ            LFO #2 Vibrato Amount and Frequency

     Vyšší byte  registru určuje vibrato -  vliv LFO na výšku  / frekvenci
     oscilátoru. Hodnota je 8-bit signed a vibrato může pracovat v rozsahu
     +/- 1 oktáva.
     Nižší byte je shodný jako u registru TREMFRQ.


            výheň