FUJI, generalnie się zgadzam. Zastanawiałem się nad tym, i rzeczywiście, możliwość obsługi nowych formatów turbo bez modyfikacji kodu jest zaletą, która ostatecznie mnie przekonała do takiego rozwiązania.
Parę uwag:
1. Patrząc po źródłach Turgena, widzę że Czesi wymyślili system turbo do odczytu z płyt CD, gdzie długość sekwencji "niski-wysoki" wynosi dokładnie 2/44100 s, czyli po prostu 1 próbka < 0 i 1 próbka > 0. Zatem może należałoby nie ustalać odgórnie, że jednostką są setne ms, tylko dodać do bloku "pwms" parametr określający "częstotliwość próbkowania".
Np. mamy Blizzard, gdzie są sygnały 0.5 ms, 0.25 ms i 0.166 ms. Ustalasz "częstotliwość" na 12000 (czyli 1/12 ms) i potem defniniujesz wszystkie długości sygnałów na podstawie tej wartości. Sygnały w Blizzardzie wtedy mają długość odpowiednio 6, 3 i 2 próbek.
A Czesi ustawiają dla tej swojej płyty CD "częstotliwość" 44100 i wszyscy są zadowoleni.
2. Czy w nagraniach turbo występują bity startu i stopu? Jeśli nie zawsze, to przydałby się typ bloku analogiczny do "pwmd", reprezentujący dane bez tych bitów.
3. Wstrzymałbym się z wprowadzaniem do formatu hacków specyficznych dla Turbo ROM (aux1=00 i 11), póki nie rozgryziemy software'u do jego obsługi. Może te nieregularne długości impulsów są wynikiem błędu w procedurze nagrywającej, a software radzi sobie z odczytem nawet gdy zapoda mu się plik ze sztucznie wyrównanymi długościami impulsów?
4. Skoro blok "pwms" będzie występował w obrazie taśmy raczej tylko raz, to może nie warto ograniczać długości pola "liczba impulsów pomiędzy pilotem i danymi" do 2 bitów?
5. Co to znaczy IRG w przypadku bloków "pwmd" i "pwmi"? Chcesz tam trzymać długość ciszy przed rekordem?
6. Długości sygnałów w bloku "pwmi" też trzymałbym nie w setnych milisekund, ale w jednostkach definiowanych przez jakąś liczbę umieszczoną na początku bloku - analogicznie do uwagi nr 1.
A'propos wersjonowania CAS-ów - numer wersji zwiększałbym tylko gdy zachodzi zmiana w formacie bloku. Dotychczas wprowadzamy tylko nowe typy bloków, więc wersja może pozostać 0 - istniejące implementacje obsługi formatu CAS i tak powinny domyślnie ignorować bloki, których typu nie rozpoznają.
Podrzucę inne nagrania AST jak będę miał czas, za parę tygodni - ale generalnie nie należy się spodziewać rewelacji; bloki w AST-owskich formatach AST, BUT i BOT mają taką samą strukturę jak w dostępnym przykładzie.
Mam też kasetę w formacie "jakiegoś" Turbo 2000, to też się podzielę.