Sorry za podwójny post, ale: od dłuższej chwili nie mogłem się doliczyć, gdzie się podziewa ok. 40 cykli czasu w procedurze przerwania, która wg obliczeń powinna się wyrabiać, a się nie wyrabia. No i cóż: miałem błąd w przeliczaniu częstotliwości na wartość licznika Pokeya, dzięki czemu program grał za szybko (tzn. częstotliwość odtwarzania była większa niż powinna być). Po skorygowaniu tego wyniki się od razu polepszyły, tzn. np. max. częstotliwość odtwarzania na Pokeyu podskoczyła z 16 do 18,5 kHz.
Zapomniałem też napisać, że program przyjmuje parametry przez linię komend. UI jest wtedy nieaktywne. Parametry:
d2d [-m] fname.wav [fname2.wav fname3.wav ...] [addr]
gdzie:
* 'm' ma wartości z zakresu od 1 do 5 i wybiera "Replay mode" (takie jak pokazuje program przy uruchomieniu bez parametrów)
* 'fname*.wav' to pliki do odtwarzania. Jak widać można podać więcej niż jeden, powinny się wtedy odtworzyć po kolei.
* 'addr' to adres rejestru Covoxa (dla trybu -5)
Adres poprawionej binarki ten co powyżej.
EDIT: i dwa przykładowe wave'y, na 12 i na 16 kHz:
http://drac030.krap.pl/elitawav.zip
EDIT2: i wersja 0.8 pod tym adresem co powyżej. Chyba wyrabia 22 kHz na Covoksie (ale nie mam jak sprawdzić, czy rzeczywiście, w każdym razie się nie wiesza ani nie wylatuje komunikat, że disk too slow).
KMK
? HEX$(6670358)