Hejka!
Dziś będzie dość nietypowy post, dlaczego nietypowy... ponieważ tym razem trochę będę się rozpisywał, ale nie tak jak zwykle o systemie turbo, a o kasecie. O kasecie znalezionej w wannie! stop... stop... to nie ten wątek! ;)
Zaczęło się prozaicznie... podczas zgrywania kaset od Uicr0Bee, trafiłem na coś takiego:
Wyglądało na kolejny zestaw programów nagrany w Turbo Blizzard. Tym razem etykieta wskazywała że będzie to zestaw #37 od firmy Atares z Chorzowa. Chociaż kolejny rzut oka na zawartość pudełka spowodował, że nie byłem już taki pewny zawartości kasety:
Po wyjęciu kasety z resztek pudełka w którym została umieszczona, widzimy wkładkę na której możemy podziwiać odręcznie wykonany spis programów, wykonany charakterem pisma wskazującym że pisała to dość młoda osoba:
Mamy zatem do czynienia z totalnym miksem :) resztka pudełka zawierająca etykietę zestawu Atares Blizzard #37, wkładka od kasety Stilon Gorzów, z ręcznie wykonanym spisem, a kaseta nieznanej marki z nieznaną zawartością.
Jako że miałem inne kasety do zgrania, to tę sztukę odłożyłem na bok, aby później się nią zająć, a czas płynął i płynął, a ja zgrałem już wszystkie inne kasety z zawartością których nie było takiego problemu, bo zawartość zgadzała się z etykietami.
Gdy zbliżałem się do "końca zapasów" magnetofonowych, postanowiłem celem relaksu i odpoczęcia od serwisu zaawansowanych pamięci taśmowych wrócić do tych kaset które zostały do przejrzenia i ew. zgrania. Na części kaset zamiast programów trafiłem na jakąś muzykę nagraną w kiepskiej jakości, parę kaset z niezidentyfikowanymi nagraniami, no i 3 kasety którym postanowiłem poświęcić większą uwagę.
W oczy ponownie rzuciła mi się powyższa kaseta, a to oznaczało że przyszła na nią w końcu pora. Kasetę szybko wrzuciłem w decka aby posłuchać co tam jest nagrane... odpalam... słucham... no cisza.... totalna i kompletna cisza... bleeeeh! No ale jak to!?! a ja liczyłem na jakieś ciekawe znalezisko... i co znalazłem? zapis szumu cząstek materiału ferro-magnetycznego których domeny magnetyczne osiągnęły maksymalną entropię?!? no co za lipa!
Ale zraz, przecież jest jeszcze strona B, a w zasadzie to druga strona, bo kaseta nie miała opisanych stron. Zasugerowałem się tym że strona A musi być tą stroną na której umieszczono naklejkę z resztkami napisów "ATARI ATARI".
Odpalam drugą stronę... czekam i nagle słyszę pisk, dość znajomy... a że łeb mam już nieźle zryty tą całą analizą systemów turbo i metodami różnego zapisu na taśmie, to od razu wiem że zapis bazujący na PWM, i że ślad dźwiękowy jest charakterystyczny na systemu Blizzard.
No to pomyślałem sobie że jednak zestaw Blizzard #37 od Atares (bo niestety zrycie beretu jeszcze nie jest na takim poziomie że mózg dekoduje mi automatycznie wybrany system turbo :P). Zatem zgrywamy... 30 minut z głowy, trzeba się zająć czymś innym.
Zapuściłem zgrywanie, podsłuch w głośnikach... domownicy grożą mi eksmisją... zupełnie nie rozumieją że owe piski które wystraszyły wszystkie zwierzęta z okolicy, a psy spacerujące za oknem nagle dały dyla, tylko właściciele wołali... "Pimpuś wracaj! Wracaj! Niech ja cię tylko dorwę... Pimpuś! Lojalnie ostrzegam! Do nogi!!!!"...
... no więc te piski mogą nieść super ważną informację z zamierzchłych dziejów i mogą przyczynić się do lepszego poznania historii informatyzacji naszego kraju ;]
Zlitowałem się nad okolicznymi zwierzątkami, domownikami i sąsiadami... i wyłączyłem "odsłuch". Pomyślałem że później podejrzę w jakim stanie jest kaseta, analizując plik który powstanie po zgraniu zawartości tejże.
Jakież było moje rozczarowanie gdy wczytałem plik zawierający zgrany materiał do edytora audio:
Mimo iż średni poziom wzmocnienia karty dźwiękowej ustawiłem tak aby poziom sygnału oscylował na poziomie 0dB, w wskaźnik poziomu wysterowania pokazywał poziom bliski 0dB, to okazało się że wskaźnik pokazuje uśrednioną wartość, a zapis na taśmie zdegradowany jest do tego stopnia że wysokie częstotliwości praktycznie giną w szumie.
W systemie Blizzard wyróżniamy trzy szerokości impulsów (a zarazem 3 częstotliwości sygnału):
impuls trwający 0.50ms (2000Hz) ---> ton synchronizujący (tzw. pilot)
impuls trwający 0.25ms (4000Hz) ---> oznacza logiczne "1" (1/2 czasu trwania imp. synchro)
impuls trwający 0.16ms (6250Hz) ---> oznacza logiczne "0" (1/3 czasu trwania imp. synchro)
Jak widać na powyższym obrazku, częstotliwości kodujące logiczne "0", praktycznie nie przetrwały, ich amplituda spadła tak bardzo że nie ma szans na poprawny odczyt/dekodowanie sygnału z tak zapisanej kasety.
Próbowałem oczywiście wczytać to co się zgrało na realnym sprzęcie (czy to nagrywając zgrany plik na kasetę, czy też używając adaptera kasetowego). Efekt był zawsze taki sam... nawet rekord zawierający nazwę nie dawał się odczytać, a jak się udało, to następny rekord danych był przekłamany na tyle że system blizzard meldował błąd 143 (błędna suma kontrolna) lub błąd 140. Jednym słowem kompletna katastrofa.
Ale nie postanowiłem się nie poddawać tak łatwo. Ciekawość mnie zżerała, bo nie wiedziałem co za pliki umieszczono na kasecie, a nazwy które udało się odczytać, albo zdekodować brzmiały:
"1", "6", "7", "8", "9"
... tak więc ktoś postanowił nadać kolejnym plikom nie nazwy mówiące co za program jest nagrany, a kolejne numery. Plik nr 1 miał nazwę "1", plik numer 30 nazwę "30". Bardzo śmieszne, nieprawdaż? :)
Zacząłem się bawić w cyfrową obróbkę tegoż sygnału, jednak po wieczorze spędzony na filtrowaniu, podbijaniu, korekcji tego sygnału okazał się wieczorem kompletnie straconym. Patrząc na "wykres" dźwięku sam nie byłem pewien czy sygnał przedstawia kodowane "0" czy też "1". Po pewnym czasie patrzenia się w to zdałem sobie sprawę że mogę napisać własny software-owy dekoder tego sygnału, lub kod który podciągnie "kondycję" tegoż do poziomu który będzie bez problemu dekodowany przez Blizzarda. Zacząłem klepać kod, któremu musiałem koniecznie nadać jakąś nazwę kodową, no bo jak taki "rewolucyjny" projekt nie będzie miał nazwy kodowej? :) i tak powstał "wave shaper". Zacząłem kombinować z kodem i przetwarzaniem tego zdegradowanego sygnału w jakąś strawną postać, jednak nie dawało to sensownych rezultatów.
Zgrałem tą taśmę jeszcze kilka razy w różnych konfiguracjach filtrów, korekcji i ustawień przedwzmacniacza (nawet z przesterami). Zmieniłem nawet deck-a na inny sądząc że sobie lepiej poradzi. Wszystko na marne, wszystko powyżej 5KHz na taśmie wydawało się nie istnieć, więc "0" kodowane przez 6250Hz, miały poziom przysłowiowego "kreta na Żuławach".
Już prawie pogodziłem się porażką... gdy mnie oświeciło... pomyślałem sobie... durniu jeden! a może magnetofon na którym było na nagrywane miał inaczej ustawioną głowicę? może gdyby użyć magnetofonu XC12 i spróbować dostosować ustawienie głowicy do tego na czym to było nagrywana, będziemy można liczyć na coś więcej, chociaż odrobinę więcej pasma! to już by się dało ogarnąć, potrzebuję naprawdę niewiele...
Wytargałem mojego starego XC12, w którym od dawna nie ma już "klapki", ale w tym wypadku to zaleta bo będę miał łatwy dostęp do głowicy i jej śruby regulacyjnej. Po odpaleniu tego wszystkiego, podczas odsłuchu szybko okazało się że faktycznie regulacja głowicą odrobinę poprawia "kondycję" sygnału, ale nie jest to znacząca poprawa... może jednak te parę % poprawy wystarczy aby dało się odzyskać dane z tej taśmy?
^^^ "Kurka wodna! Nie jest źle! są szanse!". Pomyślałem sobie że co prawda jesteśmy na granicy, ale w porównaniu z tym co było wcześniej to i tak różnica jest diametralna!
Zacząłem znowu zabawę z obróbką tego sygnału po stronie PC, udawało się nawet wczytać jakieś jedno-blokowe programy... jednak te pliki zawierające więcej bloków nadal miały cholerne przekłamania (błędy CRC)... poprawiłem parę rekordów ręcznie, domyślając się co może być w tym miejscu... ale to robota na długie godziny dla jakiegoś szaleńca... jeszcze nie teraz pomyślałem sobie :) To przecież kompletne wariactwo.
Patrząc na te serie zer i jedynek które były kodowane za pomocą różnej szerokości impulsów zacząłem pomstować na twórców Blizzarda... czy oni sobie nie zdawali sprawy że jakiś człowiek po 30 latach będzie próbował odtworzyć ten zapis?!?! Przecież Turbo2000 trochę wolniejsze i od razu znikają problemy z tak wysokimi częstotliwościami, tam wszystko się czyta nawet po 30 latach, gdy zostało nagrane na kiepskiej jakości taśmie!!! Do cholery... co ich podkusiło aby próbować wyciągać te 6.25KHz z magnetofonów Atari, mało tego.. to wszystko było nagrywane na "parchatych" taśmach które z założenia nie potrafiły dobrze przenieść wyższych częstotliwości...
... patrząc jak "skorka w gnat" w te ciągi próbek na ekranie... doznałem małego oświecenia... do cholery jasnej! czemu ja się z tym bawię w domenie cyfrowej! Przecież od dawna wiadomo że gdzie cyfra nie może tam analoga pośle, wyciągnijmy zatem z tej taśmy co się da na poziomie analogowym! W domenie cyfrowej przy obróbce tego sygnału to błądzę trochę po omacku... każdy zastosowany filtr wprowadza mi zniekształcenia fazy zależne od częstotliwości impulsów, a to już powoduje kompletny rozjazd wszystkiego.
Zacząłem bawić się podkręcaniem mojego XC12 tak aby osiągnął szczyty swoich możliwości, zatem pogmerałem trochę przy wzmacniaczu wejściowym (pasmo, ciut większe wzmocnienie)... potem podłączyłem sobie do niego płytkę Blizzard i zacząłem się przyglądać całej ścieżce sygnału za pomocą oscyloskopu, widząc te przebiegi w poszczególnych punktach interfejsu Blizzard wiedziałem już że mam jednak szansę na odczyt tej taśmy, potrzebuję naprawdę niewiele większe wzmocnienie i dam radę to odczytać.
Konkretne "oświecenie" nastąpiło w chwili gdy spojrzałem na ekran oscyloskopu na którym na kanale "A" miałem widok sygnału pochodzący z kolektora Q6, a na kanale "B" sygnał z ogranicznika (8 pin LM324). Zdałem sobie sprawę że ten ogranicznik działa w identyczny sposób jak mój kawałek kodu z "wave shaper", to już musiało się udać, szybki mod w XC12: zrobiłem dwa dodatkowe wzmacniacze buforujące i zacząłem zgrywać sygnał bezpośrednio z bebechów XC12 (col.Q6 - kanał lewy, wyjście ogranicznika - kanał prawy), gdy obejrzałem nagranie wiedziałem że jestem już "w domu":
^^^ YES! YES! YES! Coś co nazwałem "delta shaping" w swoim kodzie i nie radziło sobie z niskiej jakości sygnałem w domenie cyfrowej idealnie zadziałało w domenie analogowej! Na powyższym obrazku widać też że faza sygnału na wyjściu ogranicznika jest odwrócona o 180° względem tego co pojawia się na kolektorze Q6, ale "dekodowanie" takiego sygnału to już "pikuś". Analog POWER! :)
Nagle okazało się że większość plików udaje się poprawnie odczytać! Były oczywiście problemy z niektórymi plikami, bo taśma dodatkowo była mocno zmiętolona w paru miejscach, gdzie nawet analogowa magia nie dawała rady, ale upór i wielokrotne próby odczytu powiodły się.
Przy okazji tych eksperymentów będziecie mogli "posłuchać" co słyszy interface turbo, zobaczycie "nausznie" (czytaj: usłyszycie :P) jaka jest rola ogranicznika sygnału zbudowanego na U1C. Nazwa ogranicznik jest mocno krzywdząca, ponieważ ogranicza on co prawda amplitudę sygnału na wyjściu do pewnego poziomu, ale sygnał wejściowy wcześniej pozostaje na początku dość silnie wzmocniony, a dopiero potem obcięty (znormalizowany) tak aby miał cały czas taką samą amplitudę.
Zatem przedstawiam wynik tych prac w postaci pliku audio (skompresowany do formatu OGG z Q=10, co zupełnie nie zaszkodziło danym): Blizzard Tape - Blast from The Past!
kanał lewy: sygnał obecny na kolektorze tranzystora Q6
kanał prawy: sygnał obecny na wyjściu "ogranicznika" zbudowanego z LM324 (U1C)
Po raz pierwszy chyba w historii tego forum można sobie posłuchać jak pracuje kawałek układu elektronicznego... i uzmysłowić sobie co właściwie słyszy interfejs turbo :)
UWAGA! Głośny szum występujący w chwilach ciszy na kanale prawym to efekt działania "ogranicznika", gdy nie ma na taśmie zapisanego żadnego sygnału, wyciąga on wszystko co się tam znajduje, cały "analogowy" szum oraz zakłócenia pochodzące od silnika magnetofonu. Na szczęście procedury odczytu systemu turbo nic sobie nie robią z tego szumu/zakłóceń ponieważ oczekują impulsów o konkretnych długościach (0.5ms, 0.25ms lub 0.16ms), wszystko inne zostaje ignorowane. Dodatkowo przed każdym rekordem danych mamy ton synchronizujący, który pozwala procedurom odczytu zorientować się że po jego zakończeniu będą leciały już bity danych.
Sygnał zgrano buforując go za pomocą wzmacniaczy buforujących zrealizowanych za pomocą wzmacniaczy operacyjnych TL072. Wykorzystując sygnał z kanału prawego można bez problemu odtworzyć/wczytać pliki nagrane na analizowanej tutaj kasecie.
Myślę że ten plik może być doskonałym plikiem testowym przy pomocy którego można testować własnoręcznie napisany dekoder plików dla systemu Blizzard. To bardzo dobry i pewny materiał do obróbki przez softwarowy dekoder strumienia danych dla systemu Turbo Blizzard.
Ale co z programami znajdującymi się na tej kasecie?!? Co tam się znajduje??? A to już w oddzielnym poście. Zabieram się za pisanie drugiego postu, a ten już publikuję, bo zrobił się zbyt długi i zagmatwany. Namieszałem tutaj tyle wątków i opowieści, że kwestię software który znalazłem na tej taśmie poświęcę oddzielny post, aby już nie mieszać tutaj :)