Łapałem to co Atari wysyłało na złącze SIO. A puściłem nagrywanie loaderów do Basica.
Nagranie zawiera 1 blok w normalu, potem na SIO włączany jest zegar 4kHz i wyłączana transmisja dwutonowa. Na DataOut trwa elektryczny stan wysoki czyli chyba logiczne zero. Coś takiego leci 5 sekund, co daje na taśmie wysoki ton włączający przy odczycie interfejs turbo. Interfejs Injektor sumuje sygnały DataOut i ClockOut rezystorami. Czyli jak na DataOut jest stan wysoki a ClockOut zmienia się z częstotliwością 4kHz to te 4kHz pojawia się jako wysoki ton na taśmie.
Później zaczynają lecieć dane na DataOut. Najpierw jakiś krótki blok, którego początek poprzednio zamieściłem. Potem zasadnicza część nagrania. Dane lecą czystym zapisem binarnym (nie tonami dźwiękowymi FSK).
Budowa układu Injektora jest taka że raz włączone turbo pozostaje włączone aż do wyłączenia silnika magnetofonu.
Po uformowaniu sygnału z kasety, na przerzutnik trafiają impulsy zmieniające jego stan. Czyli jeden impuls: zmiana stanu z 0 na 1. Kolejny impuls: zmiana stanu z 1 na 0.
Pasuje to do wyglądu wav-a z grą Bonk zapisaną w turbo:
Wygląda na to że sygnał zegara 4kHz został wykorzystany jako swoista "fala nośna" aby magnetofon miał sygnał zmienny. Na sygnał nośny naniesione są zmiany sygnału z danymi. Pasuje to do analizy ze strony: ->link<-
Załączam jeszcze plik z emulacją końcówki demodulatora. Wprowadziłem małą modyfikację względem oryginału. Dodałem przed przerzutnikiem rezystor 100k aby polepszyć działanie.
Demodulator z dodanym rezystorem 3.3M, o którym pisał eags73 (na chilijskiej stronie) i dodanym przeze mnie wcześniej rezystorem 100k działa prawidłowo w symulacji. Podpinałem na wejście plik Bonk.wav z zapisem turbo Injektor.
Zastanawiam się jak Sistema Injektor radził sobie z problemem nierównomierności przesuwu taśmy i rozbieżnością prędkości taśmy w poszczególnych magnetofonach.
Z tego do do tej pory rozpoznałem wynika, że nie było stosowane kodowanie Manchester, które pomogłoby w synchronizacji. Nie było też bajtów do pomiaru prędkości na początku każdego bloku ($55).
W pliku pozyskanym z chilijskiej facebookowej grupy miłośników Atari mamy, co poniżej. Nie dość, że są $55 to jeszcze bloki turbo mają 257 bajtów długości.
W ramach budowy interfejsu kompatybilnego z Sistema Injektor zbudowałem w realu moduł aktywacji turbo. Opiera się on na zupełnie innych komponentach niż oryginał. Inne jest też miejsce podłączenia w magnetofonie Atari. Były problemy ze współdziałaniem z różnymi typami nagrań Injektora. W Bonk.wav sygnał włączający turbo ma 5 sekund. W Lado_B_Basic.cas sygnał ten ma 1 sekundę.
Nie może też następować przypadkowe włączenie turbo przy odbieraniu rekordów normal wypełnionych jedynkami. Pozytywne rozstrzygnięcie dało dodanie diody szybko doładowującej kondensator przy napotkaniu zera w sygnale.
Nie wiem ile wyciąga stacja w turbie. W modemach jest 56k bodów. Operują w paśmie przenoszenia 300Hz-3kHz mono. Magnetofon bez problemu takie pasmo przenosi. W Turbo Blizzard osiąga 5kHz. Czyli jakby nie liczyć dla stereo wyszłoby ponad 100k bodów.
Edit: Nie wiem jaki wpływ na modulację kwadraturową (stosowaną w modemach) miałyby nierównomierności przesuwu taśmy i trwała zmiana jej prędkości (inny magnetofon, rozciąganie taśmy).
ooo, no tak, to może być problem (wow and flutter) (a tak w ogóle to "Wow and Flutter" to świetna nazwa dla zespołu synthpopowego, ciekawe, czy taki powstał?) edit: of kors: ->link<-
edit2: to mam takiego pomysła - na jednym kanale modulacja kwadraturowa, a na drugim sygnał synchronizujący, np. 3kHz - i tak to by bylo przetwarzane przez jakiegoś procka, więc możnaby mierzyć rzeczywistą chwilową częstotliwość na drugim kanale i odpowiednio korygować sygnał z pierwszego. 56kBod to coś jak stacja ze speedym :]
Wybaczcie, że długo nie piszę nic w temacie. Przerzuciłem się na modyfikacje spawarek i migomatów (bardziej to praktyczne niż grzebanie w Sistema Injector :) ). Może kiedyś znów mnie najdzie i powrócę do magnetofonu Atari.
Wpadłem na szalony pomysł włączenia pomiędzy magnetofon(bądź smartfon) a Atari PC-ta z uruchomionym gnuradio. Celem jest skuteczne wczytanie programu w Turbo2600 firmy Szok, czyli FSK z prędkością 2600 bodów.
Mam już dekoder FSK w gnuradio dostrojony do częstotliwości Atari. Strumień bitów wygląda prawidłowo. Możliwości dekodera programowego wydają się przekraczać wymagania Turbo2600 ale nie wiem jak wyprowadzić binarne wyjście z gnuradio bez kupowania drogiej (13 tys.) przystawki USRP.
Stąd do Was pytanie, czy ćwiczył ktoś binarne (szeregowe TTL) wyjście z gnuradio?
Ciekawy film o kodowaniu manchester z przykładem praktycznym nadajnika i odbiornika na AtMega8. Można będzie wykorzystać do konstrukcji nowego Turbo :).
W AVT590.pdf opisany jest programowy dekoder identyfikacji numeru dzwoniącego (dla tradycyjnej telefonii). Okazuje się, że jest to modulacja FSK. Na dodatek bardzo gęsta:
Układ w zasadzie nadaje się do czytania "normalu" bez większych przeróbek. Ogranicznik na wejściu przycina sygnał do +/-0,7V. Wystarczy tylko pozmieniać częstotliwości w filtrach analogowych i stałe czasowe w programie AT90S2313.