KSO Turbo 2000

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 16:50, 13 lut 2010
FUJI (Dyskusja | wkład)
(Formaty niestandardowe (zabezpieczenia) - zabezpieczenie - inny rodzaj sumy kontrolnej)
← Previous diff
Wersja z dnia 19:17, 5 cze 2010
FUJI (Dyskusja | wkład)
(Inne formaty zapisu Turbo 2000)
Next diff →
Linia 51: Linia 51:
* 1 bajt sumy kontrolnej * 1 bajt sumy kontrolnej
-Bity w bajcie są zapisywane w kolejności od najstarszego do najmłodszego (odwrotnie niż przy zapisie standardowym).+Bity w bajcie są zapisywane w kolejności od najstarszego do najmłodszego.
-Jednobajtowa suma kontrolna jest obliczana przez dodawanie bez przeniesienia (czyli modulo 256, podczas gdy przy zapisie standardowym stosuje się dodawanie z przeniesieniem). Przy obliczaniu sumowane są zawsze wszystkie bajty w bloku.+Jednobajtowa suma kontrolna jest obliczana przez dodawanie bez przeniesienia (czyli modulo 256). Przy obliczaniu sumowane są zawsze wszystkie bajty w bloku.
Czasem kontrola poprawności danych była realizowana przez wykonanie operacji XOR na wszystkich bajtach bloku (łącznie z bajtem sumy kontrolnej powinno wyjść 0). Najprawdopodobniej była to jedna z form zabezpieczeń przed kopiowaniem oryginalnych kaset w formacie Turbo 2000. Czasem kontrola poprawności danych była realizowana przez wykonanie operacji XOR na wszystkich bajtach bloku (łącznie z bajtem sumy kontrolnej powinno wyjść 0). Najprawdopodobniej była to jedna z form zabezpieczeń przed kopiowaniem oryginalnych kaset w formacie Turbo 2000.
Linia 59: Linia 59:
Długości przerw między blokami zawsze wynoszą 0.2 s. Ze względu na bardzo dużą długość sygnału pilotującego zostawianie dłuższych przerw wydaje się zbędne. Długości przerw między blokami zawsze wynoszą 0.2 s. Ze względu na bardzo dużą długość sygnału pilotującego zostawianie dłuższych przerw wydaje się zbędne.
-===Formaty niestandardowe (zabezpieczenia)===+===Formaty niestandardowe===
 +====Zapis z zabezpieczeniami====
''Notatka sporządzona na podstawie informacji uzyskanych od [[Pajero]]'' ''Notatka sporządzona na podstawie informacji uzyskanych od [[Pajero]]''
Linia 65: Linia 66:
Inna modyfikacja to rekordy z błędną sumą kontrolną (ewentualnie sumą kontrolną liczoną inaczej - patrz wyżej) lub zniekształceniami sygnału powodującymi wystąpienie błędu przy próbie kopiowania (odpowiedni loader przerywa odczyt przed wystąpieniem błędu). Inna modyfikacja to rekordy z błędną sumą kontrolną (ewentualnie sumą kontrolną liczoną inaczej - patrz wyżej) lub zniekształceniami sygnału powodującymi wystąpienie błędu przy próbie kopiowania (odpowiedni loader przerywa odczyt przed wystąpieniem błędu).
 +
 +===="Nowy format" (Turbo 2000F+)====
 +
 +Blok nazwy wygląda tak samo jak w oryginalnym formacie Turbo 2000.
 +Za blokiem nazwy znajduje się jeden standardowy blok danych w formacie Turbo 2000. Blok ten zawiera program ładujący, który przejmuje kontrolę nad wczytywaniem właściwego programu.
 +Następny blok poprzedzony jest 3584 impulsami sygnału pilotującego i ma 8 bajtów:
 +* 2 bajty $FF
 +* 2 bajty określające adres początku ładowania następnego bloku danych
 +* 2 bajty określające adres końca ładowania następnego bloku danych
 +* 1 bajt sumy kontrolnej
 +* 1 bajt zerowy
 +Za nim znajduje się:
 +* kilka-kilkanaście impulsów sygnału pilotującego (ilość może być ustawiona podczas zapisu)
 +* bajty danych
 +* 1 bajt sumy kontrolnej
 +* jeden bajt zerowy
 +
 +Kolejne pary bloków danych wyglądają podobnie:
 +* kilka-kilknaście impulsów sygnału pilotującego (ilość może być ustawiona podczas zapisu) lub 768 impulsów jeżeli poprzedni blok był ładowany pod adres INITAD ($02E2)
 +* 2 bajty określające adres początku ładowania następnego bloku danych
 +* 2 bajty określające adres końca ładowania następnego bloku danych
 +* 1 bajt sumy kontrolnej
 +* 1 bajt zerowy
 +* kilka-kilknaście impulsów sygnału pilotującego (ilość może być ustawiona podczas zapisu)
 +* bajty danych
 +* 1 bajt sumy kontrolnej
 +* 1 bajt zerowy
 +
 +Plik kończy się blokiem złożonym z 4 bajtów $FF, sumy kontrolnej ($FC) i bajtu $00.
 +
 +Przerwa (cisza ok. 0.5 s) pojawia się tylko bezpośrenio za blokiem nazwy, poza tym bloki danych są rozdzielane jedynie impulsami sygnału pilotującego.
 +
 +====Speedy 2007 (lub *AJEK)====
 +
 +Blok nazwy wygląda tak samo jak w oryginalnym formacie Turbo 2000.
 +Za blokiem nazwy znajduje się jeden standardowy blok danych w formacie Turbo 2000. Blok ten zawiera program ładujący, który przejmuje kontrolę nad wczytywaniem właściwego programu. Kolejne bloki danych rozpoczynają się 1536 impulsami sygnału pilotującego, nie mają ściśle określonej długości i zawierają grupy bajtów (bez żadnych przerw między nimi) o następującej budowie:
 +
 +* 2 bajty określające adres początku ładowania
 +* 2 bajty określające adres końca ładowania
 +* 1 bajt sumy kontrolnej
 +
 +Blok danych kończy jedna z dwóch sekwencji:
 +
 +* grupa danych ładowana do INITAD ($02E2-$02E3) - po załadowaniu wykonanywany jest podprogram inicjujący pod adresem umieszczonym w INITAD, silnik magnetofonu jest zatrzymywany, potrzebny jest dodatkowy czas przed dalszym odczytem
 +* dwa bajty $FF - oznacza to koniec pliku
 +
 +Pomiędzy blokami, poza impulsami sygnału pilotującego, nie ma żadnych przerw.
== Inne spotykane systemy turbo serii 2000 to == == Inne spotykane systemy turbo serii 2000 to ==

Wersja z dnia 19:17, 5 cze 2010

Jedna z odmian systemu turbo do magnetofonów Atari. Po przeróbce magnetofon potrafił odczytywać/zapisywać programy ze zwiększoną prędkością (różną w różnych odmianach turbo), przez co szybciej się one wczytywały i więcej mogło się zmieścić na kasecie. Przeróbka polegała zazwyczaj na dodaniu małej płytki drukowanej do magnetofonu i podciągnięcie do niej napięcia 5V za pomocą dodatkowego kabla (zazwyczaj drugi port Joysticka lub z gniazda SIO - zależnie od przeróbki. Niektóre magnetofony miały poprowadzony odpowiedni kabelek już w standardowym przewodzie od SIO).

Spis treści

Nazewnictwo

Nazwa KSO to nic innego jak skrót od pierwszych wyrazów nazwy: Kasetowy System Operacyjny (zresztą w pierwszych wersjach spotyka się w menu pełną nazwę), Turbo oznaczało zwiększoną prędkość transmisji.

Technikalia, obsługa

W większości przypadków systemy turbo oprócz przyspieszenia transmisja od<=>do magnetofonu oferowało namiastkę DOSu: wyświetlanie nazw plików, możliwość uruchamiania plików wieloblokowych (wraz z powrotem do wcześniejszych bloków), uruchomienie wbudowanego Basica itp. Standardowo zmieniało też nazwę magnetofonu na D: (w nawiązaniu do stacji dyskietek, blokując dostęp do tych ostatnich). W późniejszych systemach można było spotkać nazwę T: (od 'tape') zamiast D:.

Standardowa obsługa wygląda tak:

 Uruchomienie komputera: BASIC (T/N) ==> Wybór, czy mamy używać Atari Basic czy nie
 R/L/E Load&Run/Load/Exit            ==> Wyświetlane menu systemu,wybór:
                   ==>R - wgraj i uruchom
                   ==>L - tylko wgraj
                   ==>E - wyjście (zimny start) - w KSO 2000
 Wgranie programu: R D:nazwa         ==> wgrywa i uruchamia program o podanej nazwie
                   R D: *            ==> wgranie nagłówka (tytułu) programu, i:
                  -> wczytanie programu i jego uruchomienie po naciśnięciu klawisza T
                  -> poszukiwanie kolejnego nagłówka po naciśnięciu N (lub dowolnego klawisza)
                   R D***            ==> wczytanie i uruchomienie pierwszego napotkanego programu
                   W Basicu: zgodnie z instrukcjami Basica dla stacji dysków D: (gwiazdki
                             obowiązują jak powyżej)

Niektóre programy wymagały specjalnych plików nagłówkowych zawartych w tzw. loaderze. Najpopularniejsze z nich to: L1, L2 i WIELOBLOK (dla KSO Turbo 2000).

Struktura nagrania

Opis na podstawie analizy sygnału nagranego na taśmie

Nośnikiem informacji jest szerokość impulsu (modulacja PWM). Przez impuls jest rozumiana sekwencja stanów "0" i "1" (w tej kolejności) na linii danych portu szeregowego, lub innymi słowy sekwencja niskiego i wysokiego poziomu sygnału zapisu magnetofonowego (lub raczej sekwencja opadającego i narastającego zbocza sygnału - tu kolejność powinien zweryfikować ktoś biegły w elektronice).

Kształt fali sygnału odczytanego z taśmy przypomina sinusoidę, choć zapewne jest to tylko efekt wygładzenia przebiegu prostokątnego przez elektronikę dyskretną (analogową).

W KSO Turbo 2000 występują impulsy o trzech szerokościach:

  • impulsy o szerokości 1 ms służace do zapisu sygnału pilotującego
  • impulsy o szerokości 0.5 ms (1/2 szerokości impulsu sygnału pilotującego) kodują bit "1"
  • impulsy o szerokości 0.25 ms (1/4 szerokości impulsu sygnału pilotującego) kodują bit "0"

Format standardowy

Pojedyncze nagranie ("plik") zapisywane jest w 2 lub więcej blokach danych. Pierwszy blok to blok nazwy, następne zawierają właściwe dane.

W bloku nazwy kolejno występują:

  • 4096 impulsów sygnału pilotującego
  • 2 bajty o wartościach $00 i $FF (odróżniające blok nazwy od bloku danych)
  • 10 bajtów z nazwą "pliku"; jeżeli nazwa jest krótsza to dopełnia się ją spacjami
  • 1 bajt sumy kontrolnej

Blok danych składa się z:

  • około 3904 impulsów sygnału pilotującego (ze względu na zawsze występujące szumy nie udaje się uzyskać jednoznacznej liczby, jest to jednak dość blisko wartości 4096-192; przed blokiem nazwy prawie zawsze udaje się wykryć wszystkie 4096).
  • 2 bajty długości bloku (zapisane w porządku little endian); $1200 dla bloków pełnych lub mniej dla bloków niepełnych
  • 3072 bajty danych; jeżeli blok jest niepełny, to dopełnia się go zerami
  • 1 bajt sumy kontrolnej

Bity w bajcie są zapisywane w kolejności od najstarszego do najmłodszego.

Jednobajtowa suma kontrolna jest obliczana przez dodawanie bez przeniesienia (czyli modulo 256). Przy obliczaniu sumowane są zawsze wszystkie bajty w bloku.

Czasem kontrola poprawności danych była realizowana przez wykonanie operacji XOR na wszystkich bajtach bloku (łącznie z bajtem sumy kontrolnej powinno wyjść 0). Najprawdopodobniej była to jedna z form zabezpieczeń przed kopiowaniem oryginalnych kaset w formacie Turbo 2000.

Długości przerw między blokami zawsze wynoszą 0.2 s. Ze względu na bardzo dużą długość sygnału pilotującego zostawianie dłuższych przerw wydaje się zbędne.

Formaty niestandardowe

Zapis z zabezpieczeniami

Notatka sporządzona na podstawie informacji uzyskanych od Pajero

Najczęstszymi modyfikacjami było wprowadzanie rekordów (bloków) o niestandardowej długości. Bez specjalnych zabiegów takich nagrań nie można było skopiować standardowym oprogramowaniem.

Inna modyfikacja to rekordy z błędną sumą kontrolną (ewentualnie sumą kontrolną liczoną inaczej - patrz wyżej) lub zniekształceniami sygnału powodującymi wystąpienie błędu przy próbie kopiowania (odpowiedni loader przerywa odczyt przed wystąpieniem błędu).

"Nowy format" (Turbo 2000F+)

Blok nazwy wygląda tak samo jak w oryginalnym formacie Turbo 2000. Za blokiem nazwy znajduje się jeden standardowy blok danych w formacie Turbo 2000. Blok ten zawiera program ładujący, który przejmuje kontrolę nad wczytywaniem właściwego programu. Następny blok poprzedzony jest 3584 impulsami sygnału pilotującego i ma 8 bajtów:

  • 2 bajty $FF
  • 2 bajty określające adres początku ładowania następnego bloku danych
  • 2 bajty określające adres końca ładowania następnego bloku danych
  • 1 bajt sumy kontrolnej
  • 1 bajt zerowy

Za nim znajduje się:

  • kilka-kilkanaście impulsów sygnału pilotującego (ilość może być ustawiona podczas zapisu)
  • bajty danych
  • 1 bajt sumy kontrolnej
  • jeden bajt zerowy

Kolejne pary bloków danych wyglądają podobnie:

  • kilka-kilknaście impulsów sygnału pilotującego (ilość może być ustawiona podczas zapisu) lub 768 impulsów jeżeli poprzedni blok był ładowany pod adres INITAD ($02E2)
  • 2 bajty określające adres początku ładowania następnego bloku danych
  • 2 bajty określające adres końca ładowania następnego bloku danych
  • 1 bajt sumy kontrolnej
  • 1 bajt zerowy
  • kilka-kilknaście impulsów sygnału pilotującego (ilość może być ustawiona podczas zapisu)
  • bajty danych
  • 1 bajt sumy kontrolnej
  • 1 bajt zerowy

Plik kończy się blokiem złożonym z 4 bajtów $FF, sumy kontrolnej ($FC) i bajtu $00.

Przerwa (cisza ok. 0.5 s) pojawia się tylko bezpośrenio za blokiem nazwy, poza tym bloki danych są rozdzielane jedynie impulsami sygnału pilotującego.

Speedy 2007 (lub *AJEK)

Blok nazwy wygląda tak samo jak w oryginalnym formacie Turbo 2000. Za blokiem nazwy znajduje się jeden standardowy blok danych w formacie Turbo 2000. Blok ten zawiera program ładujący, który przejmuje kontrolę nad wczytywaniem właściwego programu. Kolejne bloki danych rozpoczynają się 1536 impulsami sygnału pilotującego, nie mają ściśle określonej długości i zawierają grupy bajtów (bez żadnych przerw między nimi) o następującej budowie:

  • 2 bajty określające adres początku ładowania
  • 2 bajty określające adres końca ładowania
  • 1 bajt sumy kontrolnej

Blok danych kończy jedna z dwóch sekwencji:

  • grupa danych ładowana do INITAD ($02E2-$02E3) - po załadowaniu wykonanywany jest podprogram inicjujący pod adresem umieszczonym w INITAD, silnik magnetofonu jest zatrzymywany, potrzebny jest dodatkowy czas przed dalszym odczytem
  • dwa bajty $FF - oznacza to koniec pliku

Pomiędzy blokami, poza impulsami sygnału pilotującego, nie ma żadnych przerw.

Inne spotykane systemy turbo serii 2000 to

  • Turbo 2600
  • Turbo 2001 (TOMS)
  • Turbo 2002
  • Turbo 2000 Plus
  • Turbo 2000 F (+)

Zobacz też


Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.

Personal tools