Erről a 6 bites lejátszásról szeretnék bővebb infót kapni, ha lehet, bevonva a regisztereket is, mit hova, hogyan.
Ja és az sndplay megoldása is érdekel.
A DTM lejátszó 6 bitesre módosítva (az eredeti verzió
itt található):
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]
Az első változat az egyszerűbb megoldást (nagy frekvenciájú négyszögjel) használja. Itt az A7h portra 18h (DAC mód a bal és jobb csatornán) helyett 0-t kell írni, a lejátszó kódot pedig így változtattam meg:
ld a, (de)
out (0a8h), a
ld a, (hl)
out (0aah), a
...
ld a, (de)
out (0ach), a
ld a, (hl)
out (0aeh), a
Eredetileg ilyen volt:
ld a, (de)
add a, (hl)
out (0a8h), a
out (0a8h), a
...
ld a, (de)
add a, (hl)
out (0ach), a
out (0ach), a
Tehát nem összeadja a két csatornát, hanem külön írja ki a 0. és a 2. hanggenerátor hangerő portjára.
Természetesen az 5 bites formátumra konvertáló részt (1950-1960 sor körül) átírtam, hogy ne 3, hanem csak 2 bittel léptesse jobbra a hangmintákat
A második verzió hasonló, csak a 0. és a 3. hanggenerátort használja, amelyek az SNDPLAY 'initDAC' rutinját (173. sor) felhasználva nem 125 kHz-es négyszögjelet, hanem folyamatos '1' kimenetet állítanak elő.