Turbo 2T06

From Atariki

Jump to: navigation, search

System turbo przeznaczony do współpracy z zewnętrznym (nie firmowym) magnetofonem, umożliwiający szybką transmisję danych pomiędzy tymże magnetofonem a dowolnym modelem 8-bitowego Atari. Autor rozwiązania opracował zarówno interface jak i bogate oprogramowanie systemowe do tego systemu turbo. System bazuje na modulacji szerokości impulsu (PWM) zamiast firmowego rozwiązania bazującego na modulacji FSK. System został przez Wojciecha Zabołotnego zaprezentowany w czasopiśmie IKS:


W pierwszym artykule z IKS nt. 11/1998, gdzie system zostaje zaprezentowany czytelnikowi, zawarty jest szereg informacji na temat działania zarówno samego systemu jak i oprogramowania do niego dołączonego. Z tego artykułu można wywnioskować, że pomysł systemu Turbo 2T06, a dokładniej sposób zapisu danych na taśmie był inspirowany sposobem zapisu danych używanym w komputerach serii ZX Spectrum.

W sieci można spotkać również oprogramowanie sygnowane przez autora, ale oznaczone innymi wersjami (np. 2T09 lub 2T12). Sam autor w artykułach z czasopisma IKS wspominał:

Istnieją wcześniejsze wersje systemu, rozprowadzane nielegalnie na giełdach komputerowych. Ze względu na inny sposób generowania sumy kontrolnej i niepełną diagnostykę błędów systemy pracują zawodnie, co może prowadzić to powstania błędnej kopii kopiowanego pliku.

Można z pewną dozą ostrożności założyć, że następne (późniejsze) wersje oprogramowania, które pojawiły się "w obiegu" i były podpisane "WZab", były również autorstwa Wojciecha Zabłotnego. Interfejs zaprezentowany na łamach czasopisma IKS podłącza się pomiędzy magnetofon a drugi port joysticka. Wszystko wskazuje na to (procedury zapisu/odczytu, format danych, wspólne fragmenty kodu, wygląd menu), iż ten system jest protoplastą późniejszego systemu KSO Turbo 2000, montowanego na giełdach komputerowych przez różnych ludzi w firmowych magnetofonach Atari.

Główne oprogramowanie które zostało dołączone do systemu, czyli "Kasetowy System Operacyjny WZab 2T06", wymagało wczytania z dodatkowego nośnika, np. z magnetofonu w prędkości standardowej. Było to dość mało wygodne rozwiązanie, sam autor opracował więc wersję systemu uruchamianą z Cartridge, o czym również poinformował czytelników:

Aby usunąć niedogodność jaką jest ciągłe wczytywanie systemu po włączeniu komputera została opracowana wersja systemu TURBO 2T06 umieszczona na kartridżu, przez co podwyższa się komfort pracy z systemem.

Procedura odczytu/zapisu danych w TURBO używa procesora do odmierzania czasu impulsów, w związku z tym konieczne było "wyłącznie ekranu" oraz zablokowanie przerwań, konsekwencją tego jest zablokowanie działania klawisza BREAK, w związku z tym przerwanie transmisji osiąga się przez równoczesne naciśnięcie klawiszy START, OPTION, SELECT (ten mechanizm "odziedziczyły" również wszystkie późniejsze rozwiązania z serii Turbo2000, takie jak KSO Turbo 2000, czy Turbo 2000F).

Należy również pamiętać że ze względu na bezpośrednie skoki do procedur systemu operacyjnego, zawarte w kodzie TURBO 2T06, nie toleruje on starszych systemów operacyjnych.



Grafika:KSO_WZab_2T06.png

Spis treści

Kasetowy System Operacyjny WZab 2T06

System umożliwia współpracę z magnetofonem w trybie TURBO oraz z magnetofonem firmowym , dlatego w MENU znajdują się opcje związane ze zwykłym trybem transmisji. System Turbo odporny jest na niedokładne ustawienie taśmy, daleko przed początkiem pliku.

  • D - długie przerwy pomiędzy rekordami
  • K - krótkie przerwy pomiędzy rekordami
  • E - włączenie silnika, dotyczy również magnetofonu firmowego
  • H - zatrzymanie silnika, dotyczy również magnetofonu firmowego
  • R - załadowanie i uruchomienie programu
  • L - załadowanie pliku bez uruchomienia
  • C - powrót do kartridża, jeżeli jest aktywny
  • ↓ - zimny start systemu

Nazewnictwo plików

Pliki uruchamiane przez system TURBO powinny mieć strukturę DOS-ową. Nazwa pliku może zawierać do 10 znaków, Nazwa krótsza zostaje uzupełniona spacjami do 10 znaków, nazwy dłuższe zostają obcięte do 10 znaków.

Trzy znaki są zastrzeżone i nie należy ich używać w nazwie pliku:

  • Znak / (slash) oznacza że dany znak nie będzie porównywany przy identyfikacji pliku
  • Znak @ (małpa) oznacza, że identyfikację nazwy pliku należy zakończyć na tym znaku
  • Znak * (gwiazdka) powoduje, że jeżeli znaki występujące przed nim były zgodne, to zostaje wprowadzona pełna nazwa pliku z pytaniem czy jest on właściwy. Klawisz "T" akceptacja.

Inny klawisz, poszukiwanie następnego pliku.

Identyfikatorem urządzenia T206 jest znak D: taki sam jak dla stacji dysków, ze względu na zgodność z programami typu SOUNDMACHINE, MAGIC PAINTER itp.

Przykład: SAVE "D:s012345679"

Znak s jest znakiem sterującym, ważnym tylko w trybie zapisu. Informuje czy ma nastąpić rzeczywisty zapis pliku czy tylko weryfikacja zapisu. Umieszczenie na jego miejscu znaku V powoduje weryfikację, Natomiast znak spacji na miejscu znaku s powoduje zapis. Niektóre programy nie tolerują znaku spacji w nazwie pliku, w takim przypadku na pozycji znaku s należy umieścić znak inny niż V

Posługiwanie się trybem weryfikacji

Posługując się programem SPEEDSCRIPT na taśmie zapisany został plik o nazwie TEKST. W tym celu po wyborze CTRL+S podana została nazwa D:TEKST, gdy plik został zapisane na taśmie należałoby go zweryfikować. Dyrektywa CTRL+L wprowadza tekst z urządzenia zewnętrznego na pozycję za kursorem, usuwając znajdujący się tam wcześniej tekst. Może się zdarzyć że plik TEKST się nie wczyta bo jest zbyt długi i nie mieści się w buforze edytora. Natomiast kasując tekst z edytora i wczytując go z taśmy może się zdarzyć że wystąpi błąd i tekst zostanie utracony.

Weryfikacja zatem pozwala zachować tekst w buforze edytora, bo weryfikacja nie kasuje go i nie wczytują się do bufora kolejne znaki. Taśmę należy przewinąć na początek pliku TEKST wydać polecenie CTRL+S i nazwę pliku do zapisu tym razem jako D:VTEKST. Ewentualne przekłamanie zostanie zgłoszone jako błąd 136, 140,143 lub 145.

Trudność pojawia się przy używaniu instrukcji SAVE w BASIC (i niektórych innych). Instrukcja SAVE zapisuje także linię wprowadzania w trybie bezpośrednim, a więc zapisana zostaje także podana nazwa pliku. Zapisanie programu pod nazwą SAVE "D:PLIK" i zweryfikowaniu go instrukcją SAVE "D:VPLIK" zakończy się błędem 145. Przyczyną jest właśnie inna nazwa zapisywanego pliku. Ominięcie tej niedogodności polega na wprowadzeniu w jednej linii instrukcji: SAVE "D:PLIK" SAVE "D:VPLIK". Gdy plik zostanie zapisany na taśmie, należy ją przewinąć na początek pliku i nacisnąć RETURN.

Struktura zapisu na taśmie

Źródło: IKS Nr 12/1988

Do zapisu wykorzystuje się system uproszczonej modulacji częstotliwości (podobnie jak w ZX Spectrum). Występują trzy rodzaje generowanych impulsów.

  • 1 - Impuls synchronizacji (stan wysoki przez 800 cykli zegara i stan niski przez 800 cykli zegara)
  • 2 - Impuls "1" (stan wyskoki przez 400 cykli zegara i stan niski przez 400 cykli zegara)
  • 3 - Impuls "0" (stan wysoki przez 200 cykli zegara i stan niski przez 200 cykli zegara)

Blok danych tworzony na taśmie składa się z 4096 impulsów synchronizacji, po których następują impulsy kodujące bajt danych, (od najstarszego bitu do najmłodszego bitu). Po nich generowany jest bajt sumy kontrolnej utworzonej jako suma modulo 256 wszystkich nadanych bajtów.

Przy korzystaniu z urządzenia D: na taśmie mogą być zapisane następujące bloki, (każdy blok poprzedzony jest impulsami synchronizującymi i zakończony bajtem sumy kontrolnej)

  • 1 - Blok nagłówka, zawsze na początku pliku: Blok ma długość 12 bajtów. Na początku zawiera bajty 0,255 stanowiące identyfikator nagłówka, i 10 bajtów będących kodami ATASCII znaków nazwy pliku.
  • 2 - Pełny blok danych, ilość tych bloków zależy od długości pliku: Blok ma długość 3074 bajtów. Na początku znajdują się bajty o wartości 0 i 12 ( 0+12x256=3072 ) informujące o ilości bajtów danych , a za nimi 3072 bajty danych (2+3072=3074).
  • 3 - Blok końca pliku, zawsze na końcu pliku: Blok ma długość 3074 bajtów. Na początku znajdują się dwa bajty ( LSB, MSB ) informujące o ilości bajtów danych ( LSM + 256 x MSB ) Po nich następują bajty danych, a za nimi bajty uzupełniające blok do długości 3074 bajtów.

Montaż

Turbo współpracuje z dowolnym magnetofonem kasetowym w którym nie dokonuje sie żadnych przeróbek, z wyjątkiem pobrania sygnału wyjściowego z końcówki głośnika, o czym niżej w tym opisie.

Do wejścia interfejsu należy doprowadzić sygnał z gniazda słuchawkowego lub "gorącej" końcówki głośnika gdy komputer nie odczytuje danych z magnetofonu.

W razie potrzeby można zmniejszyć wartość opornika R12 (10k) nawet do 100 omów). Regulowany opornik ustawić tak, by na wyjściu interfejsu uzyskać sygnały o poziomach TTL.

Regulacji wymaga też ustawienie barwy dźwięku w magnetofonie (tony wysokie, średnie, niskie, korektor graficzny... etc)

Tranzystor T3 (BD136) należy wyposażyć w radiator!!!

W czasie operacji I/O obraz monitora jest wyłączany z podanymi niżej wyjątkami. W czasie zapisu lub odczytu impulsów synchronizacji na ekranie pojawią się szerokie pasy. W czasie zapisu lub odczytu rekordu danych, na ekranie pojawią się wąskie paski. W krótkich przerwach pomiędzy zapisywanymi rekordami pojawi się obraz. Gdy poszukiwany jest początek pliku na taśmie na ekranie obrazu brak.

W przerwach pomiędzy plikami, na ekranie mogą być widoczne dwa szerokie pasy oraz kilka drobnych, "poszarpanych" pasków o nieregularnych kształtach. Szczególnie wtedy gdy na taśmie pozostały ślady poprzednich nagrań, gdy taśma nie została wykasowana. Pojawiające sie pasy lub paski mogą "płynąć" z góry w dół. Należy dobrać opornik R12 i wyregulować potencjometr montażowy R11 tak by pojawiające sie na ekranie pasy i paski nie były postrzępione.

W trakcie transmisji danych z głośnika monitora komputerowego nie słychać charakterystycznych dźwięków, pisków, i innych "radosnych" efektów. Po udanej transmisji, na ekranie monitora pojawia sie obraz. Gdy wystąpi błąd w czasie operacji I/O i na ekran nie wraca obraz, to należy jednocześnie nacisnąć klawisze START, OPTION, SELECT.

W torze sterowania silnikiem magnetofonowym przełącznik P1 służy do ręcznego sterowania silnikiem, by na taśmie nie pojawiały sie wgnioty, co normalnie może mieć miejsce gdy silnikiem steruje oprogramowanie TURBO 2T06 i użytkownik systemu zaśnie.

Dla hackerów

System umożliwia niestandardowe wykorzystanie trybu TURBO, transmisja przebiega bez podziału na bloki, czyli znacznie szybciej. Tak zapisany program jest trudniejszy do skopiowania. Pod adresem 1792 ( $700 ) znajduje się instrukcja skoku do procedury transmisji. Procedura wymaga jako danych wejściowych adresu początku i końca bloku danych i kodu operacji.. Informacje te wprowadza sie w następujący sposób. Adres początku bloku umieszcza się w komórkach $50 i $51, w komórkach $52 i $53 umieszcza się adres pierwszego bajtu po przesłanym bloku (bajt ten nie będzie już transmitowany), oraz kod operacji umieszcza się w akumulatorze i w komórce $704. Niezerowa zawartość komórki $704 wymusza tryb weryfikacji bez względu na zawartość akumulatora. Zero w akumulatorze oznacza ZAPIS, a wartość różna od zera ODCZYT. Procedura transmisji zapisuje lub odczytuje wskazany blok danych uzupełniony suma kontrolna. Informacje o wyniku operacji zawiera rejestr Y, podobnie jak przy innych operacjach I/O

Schemat

Oprogramowanie

Zestaw programów

  • KSO.BAS plik źródłowy uruchomiony z BASICA wygeneruje plik wynikowy jako BOOT systemu 2T06. Jest to KOS dla tego systemu i należy go nagrać na taśmę.
  • KOS2T06.MAG jest to plik wynikowy, nie uruchamia się z poziomu DOSa, należy go na taśmę magnetofonową przekopiować programem kopiującym dla TURBO 2T06, albo wygenerować o czym wyżej
  • KOP2T06.BAS plik źródłowy programu kopiującego pliki Dysk - Magnetofon - Dysk dla TURBO 2T06. Po uruchomieniu z poziomu BASICA wygenerowany zostanie właściwy plik, który uruchomić można z poziomu DOSa w celu kopiowania plików z dysku na magnetofon
  • KOP2T06.COM plik DOSowy programu kopiującego dla TURBO 2T06

Zobacz też

Personal tools