Turbo 2600 by Kaz 2010-01-09 03:15:51

Gdy kolega Tomasz "Płatek" Płatkiewicz zaczął nam nagrywać ze swoich starych kaset szczątkowe, ale liczne fragmenty audycji "Radiokomputer" (o czym wkrótce też będzie na AtariOnline.pl), podesłał przy okazji zdjęcia okładek trzech kaset z innymi programami. Moją uwagę zwróciły użytki do Turbo 2600 na jednej z nich i poprosiłem o zgranie ich do pliku dźwiękowego, do dalszej obróbki na pececie:



Tutaj można posłuchać fragment nagrania z tej kasety, w systemie Turbo 2600 (kliknij na ikonkę odtwarzania, potem można regulować głośność ikonką po lewej lub zatrzymać przez kliknięcie ikonki pauzy po prawej):



Tomasz "Krótki" Krasuski wykorzystał te pliki do przetestowania stworzonego przez niego nowego systemu A8CAS, który jako pierwszy w pełni emuluje magnetofon Atari, przydatnego na przykład do przenoszenia nagrań z kaset do formatu CAS. Otrzymałem od Krótkiego pliki CAS programów "Trans Code DB", "Trans Basic DB", "Kopier DB" oraz znanego programu kopiującego "Casdup" w wersji dla Turbo 2600.

Przypadkowo dowiedziałem się, że Adam "Asal" Salamon, z którym współpracuję przy kilku projektach, jest miłośnikiem systemu Turbo 2600, dogłębnie go zbadał i nawet przerobił oprogramowanie do tego systemu na pliki XEX, które można uruchamiać również pod emulatorem! Asal analizował bowiem te programy w wersji CAS, a potem stworzył odpowiedni loader, który miał jak najdokładniej odwzorować proces ładowania z taśmy. Udało mi się go namówić na podzielenie się plikami oraz na opis Turbo 2600, w jaki sposób on działa, jaka jest struktura zapisu na taśmie i tym podobne. Tekst też przedstawiam poniżej:

Adam "Asal" Salamon:

"Moją pierwszą pamięcią masową używaną z komputerem Atari był magnetofon XC-12. Dosyć szybko zaczął mi jednak przeszkadzać długi czas wczytywania programów, przez co zacząłem się interesować różnymi sposobami przyspieszającymi transmisję. Nie było jeszcze wtedy Turbo 2000, ale był "Radiokomputer", w którym nocą emitowano różne ciekawe programy.

najpopularniejsze modele magnetofonów Atari w Polsce: XC12 (widoczny na zdjęciu), XCA12, CA12, rzadsze: XC11 i 1010


Dwa dźwięki były chlebem codziennym magnetofoniarzy: sygnał gotowości odczytu z magnetofonu:




oraz sygnał gotowości zapisu:



Kiedyś udało mi się nagrać program kopiujący "Turbo Tape R&R", który pozwalał ustawiać prędkość transmisji na większą niż standardowe 600 bodów. Zacząłem zapisywać swoje programy z prędkością 900 bodów i okazało się, że prawidłowo się one wczytują, a błędy transmisji pojawiają się dosyć rzadko. Próbowałem podwyższać prędkość, ale niestety nie dawało to dobrych rezultatów. Moje Atari żadnym sposobem nie potrafiło wczytać programu zapisanego z prędkością 1400 ani 1200 bodów. Jak się później dowiedziałem, magnetofony XC-12 miały nie najlepiej zestrojone filtry, co mogło częściowo tłumaczyć moje niepowodzenia. Czy było to jednak jedyną przyczyną?

program "Turbo Tape R&R"


Słuchając dalej "Radiokomputera" dowiedziałem się pewnego razu o systemie Turbo 2600 i nagrałem kilka programów użytkowych do niego. System ten oferował możliwość transmisji z prędkościami 600, 800 i 1300 bodów na zwykłym magnetofonie, a nawet 2600 bodów po wykonaniu pewnej przeróbki. Dodatkowo programy zapisywane były z długimi rekordami. Deklarowana wysoka prędkość transmisji zrobiła na mnie spore wrażenie, choć ciężko mi było w nią uwierzyć mając za sobą poprzednie negatywne doświadczenia.

Przy pomocy jednego z programów wchodzących w skład pakietu emitowanego w radio - "Trans File DB" spróbowałem zapisać testowo jedną z gier z prędkością 1300 bodów i odczytać ją ponownie. I oto stał się cud - program wczytał się bez problemu. Jak to możliwe? Od tego momentu systemu Turbo 2600 zacząłem używać regularnie ze zwykłym magnetofonem, aż do zakupu stacji dysków.



Jakim sposobem twórcy systemu Turbo 2600 osiągnęli wysoką prędkość transmisji 1300 bodów ze zwykłego, nieprzerobionego magnetofonu Odpowiedź poznałem po kilku latach, gdy przeanalizowałem procedury obsługi magnetofonu opisane w książce Wojciecha Zientary "Procedury wejścia-wyjścia" i kod programu "Trans File DB", którego wcześniej używałem. Okazało się, że w standardowym ROM-ie Atari pod adresem $edf9 znajduje się następująca tabela:

.BYTE $E8,$03,$43,$04
.BYTE $9E,$04,$F9,$04
.BYTE $54,$05,$AF,$05
.BYTE $0A,$06,$65,$06
.BYTE $C0,$06,$1A,$07
.BYTE $75,$07,$D0,$07


Dane w tabeli są dwubajtowe i określają dopuszczalne prędkości transmisji z magnetofonu. Ostania wartość ($07d0) odpowiada prędkości 1789200 / 2 / $7d0 - 7 = 440 bodów i jest najniższą dopuszczalną dla transmisji ze standardowego magnetofonu. Pierwsza pozycja z tabeli ($3e8) określa prędkość maksymalną, czyli 1789200 / 2 / $3e8 - 7 = 887 bodów. Oznacza to, że gdy będziemy próbowali odczytywać dane z magnetofonu z wyższą prędkością, standardowe procedury systemu operacyjnego zaprogramują jednak uklad POKEY na prędkość 887 bodów, gdyż wyższych prędkości nie przewidziano. Jeżeli będzie to prędkość niewiele większa (np. 900 bodów), wówczas wszystko będzie jeszcze w porządku, gdyż POKEY dopuszcza pewną tolerancję długości bitów. Jednak dysponując nawet idealnie zestrojonym magnetofonem nie uda się nam wczytać programu zapisanego z prędkością 1200 bodów przy pomocy standardowych procedur z ROM-u, gdyż źle zaprogramowany POKEY pomyli bity i spowoduje błąd odczytu.

Z powyższych rozważań wynika, że aby program ze zwykłego magnetofonu wczytał się z prędkością wyższą niż 900 bodów nie mogą być wykorzystywane standardowe procedury systemu operacyjnego do obliczania prędkości. I tak jest w rzeczywistości w systemie Turbo 2600 - prędkość transmisji jest tu obliczana znacznie dokładniej i może się zmieniać w szerokich granicach.



Poniżej chciałbym zaprezentować kilka informacji technicznych o systemie Turbo 2600, które pozwolą przybliżyć ten system. Cechy systemu:
W skład systemu wchodzą następujące programy:



Proces wczytywania programu zapisanego w Turbo 2600 za pomocą programu "Trans File DB" wygląda w następujący sposób:



Każdy długi blok Turbo 2600 składa się z segmentów następujących kolejno po sobie. Pomiędzy segmentami może, ale nie musi wystąpić nagłówek rozbiegowy, służący do automatycznego określenia prędkości. Nagłówek rozbiegowy to dwanaście bajtów o następujących wartościach:

$00 $00 $ff $ff $ff $ff $fe $fc $fc $f8 $f0 $c7

Struktura segmentu jest następująca:
W bajcie statusu mogą być ustawione następujące bity:
Standardowo po każdych 512 bajtach danych następuje segment z
nagłówkiem rozbiegowym.



Program "Trans Code DB" konwertuje programy do innej postaci. Rekordy o numerach od piątego wzwyż mają równą długość, a każdy z nich ma następującą strukturę:
Niestety, nigdy nie byłem posiadaczem magnetofonu dostosowanego do systemu Turbo 2600 z najwyższą prędkością, dlatego nie potrafię podać na temat przeróbki magnetofonu bliższych szczegółów. Jakiś czas temu postanowiłem za to przekonwertować programy użytkowe tego systemu do postaci plików *.xex, możliwych do uruchomienia nawet pod emulatorem. Zadbałem o to, aby proces ich ładowania przypominał jak najwierniej ładowanie z taśmy."



Tyle relacji Adama, a po programy przez niego wymienione, zarówno te w formacie XEX, jak i te w formacie CAS uzyskane przez Krótkiego zapraszam do katalogu użytków, a konkretnie do folderu programów dla magnetofonu. Można też od razu cały pakiecik pobrać w jednym pliku 7z.

-----
Uzupełnienie z tego samego dnia:

1. Dalsze losy "rozgryzania" Turbo 2600 można śledzić w tym wątku na Forum Atarum.

2. Krótki podkreśla, że częścią projektu "A8CAS" jest modyfikacja emulatora "Atari800" (nie mylić z "Atari800Win PLus, który jest portem dla Windows), w którym łatwo można wczytać pliki CAS także w formacie Turbo 2600. Ponadto będzie narzędzie dla wiersza poleceń, jak tylko Krótki upora się z kompilacją pod Windows. Jednak sam nie zrobi GUI czyli obslugi programu okienkami. Na szczęście A8CAS jest w postaci biblioteki DLL, żeby mogli to łatwo zrobić inni :D.

3. Adam napisał w uzupełnieniu, że posiada skrypty w Pythonie (skrypt analizujący pliki *.cas i eksportujący z nich dane binarne, skrypt analizujący pliki *.xex i eksplorujący podane bloki, skrypt przerabiający pliki *.xex do plików *.cas, tak jak to robi "Trans File DB", skrypt będący ulepszonym programem wav2cas według jego algorytmu, program przerabiający plik *.cas w formacie Turbo 2600 do postaci pliku *.xex, którego właśnie teraz użył do przygotowania z plików CAS Turbo 2600 odpowiednio spreparowane pliki XEX). Podesłał dwa z tych programów pomocniczych - których działania jest pewien, bo często z nich korzysta. Program do czytania CAS-ów jest o tyle przydatny, że analizuje bloki Turbo 2600 łącznie z segmentami.

4. No to panowie i panie - korzystajcie! Kilka osób w przeszłości narzekało mi, że nie ma jak przerzucić swoich programów nagranych na kasetach w Turbo 2600, bo albo nie ma już takiego magnetofonu albo oprogramowania albo komputera... Teraz wystarczy przegrać kasetę do formatu pliku pecetowskiego, skorzystać z narzędzi Adama lub Tomka i gotowe. W razie problemów - pytania kierować na Forum Atarum.
Kaz 2010-01-09 03:19:12

Dzieki Scalakowi moglem wprowadzic do nowinek kolejny multimedialny element - odtwarzanie plikow dzwiekowych. Prosze o uwagi i ewentualnie informacje czy u kogos nie dziala to poprawnie.

Kaczor 2010-01-09 10:16:01

Te dzwięki i dzwięk wczytywania się gry to był zwiastun że za dłuższą chwilę będzie się miło giercowało. Miły dzwięk dla atarowca. Powinniście dodać jeden z nienawidzonych dzwięków (brrrryt i selftest albo drrrund i boot error) :-)

Kaz 2010-01-09 12:55:16

Dodalem czteropunktowe uzupelnienie artka na koncu.

Kaczor - dobra mysl, zeby zrobic tez inne dzwieczki, przy nastepnej okazji je wstawie :D

czesiot 2010-01-09 15:18:33

Nareszcie coś co bardzo zainteresowało mnie po latach a właściwie co odświeżyło moje wspomnienia-używałem tego programu a właściwie całego systemu do momentu przejścia na system TURBO 2001(jakaś mutacja systemu turbo ale na pewno nie związana z TURBO 2000).Pierwsze programy nagrałem z audycji"Radiokomputer nocą" prowadzonej przez świętej pamięci Tomasza Jordana(tu prośba o poświęcenie tej moim zdanie legendarnej osobie oddzielnego artykułu),ale po przejściu na nowe Turbo 2001 na pewno z programów pod system Turbo 2600 używałem programu ERROR COPY, który jak sama nazwa wskazuje służył do kopiowania programów.Ale jakiego kopiowania-program ten w swej funkcji umożliwiał kopiowanie programów z taśmy o złej jakości pod warunkiem że za choćby setnym razem magnetofon odczytał prawidłowo dany rekord(podobnie jak Buldoger Copy) ale miał tę przewagę że umożliwiał odbezpieczenie programów firmy AVALON z kasety magnetofonowej.95 procent programów odbezpieczonych w ten sposób i przerobionych na wersję "file" chodziło bezproblemowo.Dodam że z tak odbezpieczonych programów korzystałem tylko dla swoich potrzeb,co powodowało że programy zajmowały mniej miejsca na kasetach.Po moim małym Atari zostały tylko wspomnienia,nie mam też żadnej kasety z programami,ale uważam że program ERROR COPY był najlepszym kopierem.Pozdrawiam wszystkich atarowców

Kaz 2010-01-09 15:31:03

Error Copy jest na jednej z kaset Platka, czekam az bedzie mial czas ja skopiowac.

Wolfen 2010-01-09 15:46:48

Kaczor dokladnie! :) Te drytudrytytydrytydryt prttttttttttt i selftest albo boot error dokladnie! :) (horror z dziecinstwa ;D hehe

Kaczor 2010-01-09 18:13:56

@ Wolfen - masz racje, zapomniałem o tym jeszcze jednym co wspomniałeś. Jak pognieciona lub w inny sposób zdeformowana taśma ślizga się po głowicy i wydaje zniekształcony wydźwięk a każdy z nas (użytkownicy Atari z magnetem) w tedy nasłuchiwał jak świnka grzmotu czy przejdzie dalej i wgra się ulubione road-race.

Przypomniało mi się i teraz śmiać mi się chce gdy wybierało się grę częściej tę, która miała tak do 150 jednostek na liczniku, czyli bez fajerwerków mimo grywalności. Natomiast te które miały 240 czy 320 jednostek wybierało się po dłuższym zastanowieniu, wiedząc o stanie taśmy i naszego czasu. Nieraz człowiek jak by mógł, to na czas wczytywania gierki obwiązał by pół pokoju taśmą zabezpieczającą przed niepowołanymi domownikami. Ile to razy przy końcowej fazie wczytywania zbyt długiej gry nagle Mama wpadła wytrzeć kurz na telewizorku i na stoliku gdzie znajdował się komputer - panika :-O!

gregor 2010-01-09 21:27:04

fajny ficzer z tym odtwarzaniem dźwięków. zrobiony w flashu ?

xeen 2010-01-09 23:27:21

boulder dash (krecik) :))))
nie wiem czy to prawidłowość, ale ojcowie mieli takie nawyki, aby dodawać w nawiasach polskie (swoje) nazwy gier. u mnie na kasetach preliminary monty to było piekiełko, river raid to samolocik, tetris - klocki itp.

Scalak 2010-01-10 12:25:26

tak to fleszowy "gotowiec"

Kaz 2010-01-10 12:31:29

Dobre spostrzezenie xeen. Sadze, ze to bralo sie z mniejszej obecnosci i znajomosci jezyka angielskego niz obecnie, no i trudnosci wymowy. Takie oswajanie obcych terminow jest znanym i naturalnym zjawiskiem - czytalem gdzies, ze pracownicy FSO po przejeciu przez Daewoo nie wymawiali tego ani z koreanska ani z angielska tylko jako "Daj Ewo" :)

Podobne zdrobnienia nazw programow robilo studio TatraSoft - i nawet pod takimi nazwami sprzedawali niektore gry.

rchwastek 2010-01-10 14:35:44

Pamiętam jak przy wczytywaniu dowolnej gierki delikatne dotknięcie wtyku SIO od magnetu powodowało w 90% BOOT ERROR. Jednak największym sukcesem ATAROWCÓW było nie mieszanie przy głowicy magnetofonu przez co 99% właścicieli magnetofonów miało identycznie (fabrycznie) ustawiony skos głowicy.

mgj30 2010-01-11 02:01:58

Przepraszam, że nie dokładnie w temacie, ale chciałem zapytać przy okazji systemów Turbo na Atari.
Czy ktoś z Was pamięta (wie), jak się nazywał system Turbo montowany przez krakowską firmę "Mapasoft" - mieściła się przy ulicy Kościuszki (ten sam typ montował niejaki p. Żurek pod nazwą "Turbo Żurka"). Montowali jakiś układ w magnetofonie. W pierwszej wersji należało samemu wcisnąć przycisk po załadowaniu bootloadera, w późniejszych przełączało się to automatycznie. Na 1 stronę kasety "wchodziło" do 50 gier (to w ostatniej wersji). Przy wczytywaniu było coś jakby na wzór bootloadera składającego się z 8 bloków w wersji pierwszej, później w drugiej 5, a na końcu w trzeciej 3. Niestety nie mam jak podesłać pliku audio, gdyż wszystkie kasety poszły z dymem kilka lat temu :/

Kaz 2010-01-11 02:40:22

mgj30 - Turbo ROM.

Xerwer 2010-01-16 19:31:48

Ja miałem przerobiony komp i magnetofon na "turbo 2002" w serwisie Atari w Gdyni przez "Karen" - obecnie firma o tej nazwie naprawia Laptopy - regulowali też głowicę magnetofonu wg swojego wzorca tak więc nie było później problemów z kompatybilnością ustawienia głowicy u kolegów i w "wypożyczalni" - tak jak u znajomego który na komodzie każdą kasetę inaczej miał nagraną i ustawiał śrubokrętem...

Dziś nawet nie wiem jaką on oferował prędkość zapisu/odczytu, ale był bardzo niezawodny, - kolekcje gier które zgrywałem za pomocą swego magnetofonu nigdy nie wyrzucały błędów podczas odczytu...