Iron Turbo
From Atariki
System turbo opracowany przez Dariusza Rogozińskiego przeznaczony dla użytkowników magnetofonów, rozwiązanie czystko programowe teoretycznie nie wymagające sprzętowej przeróbki magnetofonu. Wymagał naprawdę dobrze "zestrojonego" magnetofonu (tzn. bardzo dobrze działającego i stabilnego demodulatora FSK) , rzadko który z firmowych magnetofonów (w szczególności XC12, CA12 lub XCA12) był w stanie sprostać wymaganiom tegoż systemu, być może dlatego właśnie program nie zdobył szczególnej popularności wśród użytkowników. Wydaje się jednak że zewnętrzne interfejsy przeznaczone dla dowolnego magnetofonu nie miały problemu z współpracą z tym systemem turbo. Programy zapisane w tym standardzie bardzo dobrze wczytywały się za pomocą interfejsów opartych dyskryminatorach częstotliwości, a nie na klasycznych demodulatorach FSK opartych o filtry pasmowe, które to wymagały naprawdę precyzyjnego zestrojenia jeżeli miały pracować stabilnie przy prędkości 1200bps. Nagrania w tym systemie były bezproblemowo wczytywane również przez interfejs przeznaczony dla systemu Turbo 2600.
Oprogramowanie przeznaczone dla tego systemu było transmitowane w audycji Radiokomputer. Pierwszy z programów "Iron Turbo" był wyemitowany jako "prezent gwiazdkowy" dla słuchaczy Radiokomputera w grudniu 1988 roku.
Spis treści |
Oprogramowanie
Dla tego systemu turbo opracowano programy umożliwiające konwersję programów typu Boot lub binarnych plików Atari DOS:
- Iron Turbo - program kopiujący kaseta/kaseta umożliwiał konwersję pliku wczytanego z kasety na format Iron Turbo
- Iron Turbo INIT/RUN - program ten zmienia sposób uruchamiania programów binarnych. Należy nim skopiować tylko te programy, które po wczytaniu do kopiarki IRON TURBO automatycznie się uruchamiają.
- Disk Iron Turbo - program kopiujący który umożliwiał kopiowanie programów z dyskietek i zapisanie ich na taśmie w standardzie "Iron Turbo". Program odczytywał dyskietki w formacie formacie Atari DOS. Po jego uruchomieniu wyświetlany był katalog dysku, a każdej pozycji w katalogu nadawana została litera, której wybór powodował zapis wskazanego programu w formacie IRON TURBO na taśmę.
Technikalia
Przyspieszenie transmisji osiągnięto dzięki zastosowaniu trzech technik:
- pierwsza z nich to zwiększenie prędkości transmisji z 600bps do 1200bps
- druga z zastosowanych technik to zapis programu w jednym długim bloku (z pomięciem przerw między rekordami)
- trzecia z zastosowanych technik to kompresja danych (RLE), którą autor w krótkiej instrukcji do programu nazwał "kondensacją". Zastosowany algorytm RLE stosuje dwa znaczniki, które odpowiednio określają ile powtórzeń bajtu zero następuje, lub ile powtórzeń określonego bajtu następuje. Podobny mechanizm kompresji stosował Turbo Copy 3/4.
Programy kopiujące dla systemu Iron Turbo, prezentowały dość ciekawe podejście dotyczące konwersji programu na format wynikowy, mianowicie program kopiujący umiejscawiał się w pamięci pod systemem operacyjnym i wczytywał wskazany program do pamięci nie jako plik danych, ale traktował wczytywany program tak jakby był typowym loaderem plików binarnych (a także BOOT) uruchamiał on wszystkie segmenty INIT, przy czym nie uruchamiał on wczytanego programu po zakończeniu wczytywania, natomiast przechodził do kompresji całej zawartości pamięci wcześniej opisanym algorytmem RLE. Z następnie tak skompresowany blok pamięci zapisywał jako jeden ciągły blok danych (oczywiście z prędkością 1200bps). Ponieważ niektóre gry i programy uruchamiały się używając segmentów INIT zamiast RUN, ich wczytanie z użyciem kopiera Iron Turbo/Disk Iron Turbo powodowało uruchomienie gry zamiast przejście do procedur kompresji i zapisu danych na taśmie. Właśnie dla takich programów został opracowany program "Iron Turbo INIT/RUN", który to zamieniał ostatni segment INIT na RUN.
Tego typu podejście do wczytywania programu do pamięci i jego kompresji prezentował Cruncher 4.64 który to powstał dopiero w 1990 roku, wszystko więc wskazuje na to że właśnie "Iron Turbo" był pierwszym tego typu programem, który prezentował tego typu podejście do kompresji programu, który wcześniej został wczytany do pamięci w docelowe miejsca, łącznie z uruchamianiem segmentów INIT. Później powstałe programy kompresujące, takie jak wcześniej wspominany Cruncher 4.64, czy też Cruncher 5.0 a także Code3 Cruncher opierały się na podobnym mechanizmie ładowania i uruchamiania segmentów INIT wskazanego do kompresji programu, jednak jak się okazuje to właśnie "Iron Turbo" było prawdopodobnie pierwszym programem w którym zastosowano tą nietypową jak na czas powstania programu technikę. Można powiedzieć że był to pomysł innowacyjny i dość pionierski jeżeli brać pod uwagę rok powstania tegoż oprogramowania. Na chwilę obecną wydaje się iż był to pierwszy program stosujący tego typu rozwiązania techniczne.
Uwagi dotyczące formatu danych
Struktura nagrania gry/programu zapisanego w systemie Iron Turbo jest dość prosta, pierwsze pięć bloków nagrania to standardowe rekordy (nagrane z prędkością 800bps) zawierające loader Iron Turbo który zawiera w swoim ciele nagłówek zawierający tytuł nagranego programu. Po loaderze następuje jeden długi blok danych, zapisany jako rekord oznaczony identyfikatorem o wartości $00 (normalne rekordy po sekwencji kalibracyjnej posiadają identyfikator o wartości $FC, rekord EOF ma identyfikator $FE). Rekord jest tak długi jaka jest długość danych po kompresji RLE. Po wczytaniu tego rekordu do pamięci następuje dekompresja danych i uruchomienie programu.
Należy wziąć pod uwagę że w przeciwieństwie np. to Turbo 2600 tak długi rekord nie zawiera w sobie dodatkowych sekwencji kalibracyjnych, więc w przypadku nagrań w tym systemie bardzo ważna jest jednolita prędkość przesuwu taśmy. System Turbo 2600 (który jest naturalnym kandydatem do porównania w tym wypadku) co 512 bajtów dokonuje re-kalibracji generatora kontrolującego prędkość odbieranych danych (Baud Rate Generator). Iron Turbo dokonuje kalibracji generatora tylko i wyłącznie na podstawie dwóch bajtów $55 znajdujących się na początku długiego rekordu danych i jest to jedne miejsce w którym ten generator jest ustawiany. Potem przez cały czas transmisji danych prędkość BRG nie jest zmieniana i ważne jest aby liniowość przesuwu taśmy była na tyle wysoka aby układ POKEY był w stanie poprawnie odbierać transmisję. Jaka była rzeczywista niezawodność wczytywania tak zapisanego materiału? Bardzo trudno ocenić, ponieważ system nie był specjalnie popularny i bardzo trudno o taśmy z nagranymi w tym systemie programami lub grami które pochodzą końcówki lat osiemdziesiątych. Patrząc jednak na mechanizmy zastosowane Turbo 2600, które to cyklicznie re-kalibrowało BRG (sekwencje kalibracyjne były wplecione w strumień danych mimo braku przerw między rekordami). Można jedynie szacować że Iron Turbo pod tym względem mogło być mniej odporne błędny transmisji.
Odnośniki
- Iron Turbo - pakiet oprogramowania systemowego zawierający Iron Turbo, Iron Turbo INIT/RUN oraz Disk Iron Turbo. Żaden z powyższych programów nie wymaga obecności DOS-a w pamięci. Można je uruchomić z dowolnego loadera plików binarnych.
- przykładowe obrazy taśm - archiwum zawiera pliki CAS oraz HEX kilku popularnych gier z tamtych czasów nagranych w systemie Iron Turbo.
- przykład ładowania programu z użyciem systemu Iron Turbo (odnośnik do filmu na YT w którym zaprezentowano wczytywanie programu z użyciem realnego sprzętu)