Synchromesh
From Atariki
←Older revision | Newer revision→
Spis treści |
Charakterystyka ogólna
Sterownik szybkiej transmisji, powstały w firmie Indus Systems i będący częścią specjalnej wersji DOS-a XL (2.35I1, później 2.35I2) dołączanej do stacji Indus GT, a później także do LDW Super 2000 i CA-2001. Z istnienia Synchromesha potrafi również skorzystać SpartaDOS X.
Synchromesh wykorzystuje fakt, że wymienione stacje dysków są programowalne. Do stacji przesyłany jest kod, który instaluje się w niej rezydentnie i przejmuje obsługę protokołu przyspieszonej transmisji, 38,4 kbps. Stacja pozostaje zaprogramowana aż do wyłączenia zasilania.
Z powodu różnic konstrukcyjnych pomiędzy stacjami LDW/Indus i CA oraz z powodu różnych wersji ich wewnętrznego oprogramowania, Synchromesh występuje w paru odmianach; z tego użytkownik może rozróżnić dwie, jedną dla LDW i Indusa, drugą dla CA.
Niektóre wersje Synchromesha w połączeniu z programami narzędziowymi DOS-u XL oprócz samej przyspieszonej transmisji oferują też parę dodatkowych możliwości, m.in. można formatować pojedyncze ścieżki na dyskietce, każdą z innym przeplotem itp.
SuperSynchromesh
Istnieje jeszcze jedna wersja programu, zwana SuperSynchromesh, dająca 68,2 kbps. Do jego użycia konieczne jest zastosowanie DOS XL 2.35I2 i sterownika SuperSynchromesh (normalnie dostarczany przez producenta DOS XL 2.35I1 z programem Synchromesh zapewnia tylko 38,4 kbps). Sterownik w tej wersji działa na stacjach Indus GT i LDW Super 2000.
W stacjach z zainstalowanym rozszerzeniem RAM Charger SuperSynchromesh aktywuje buforowanie ścieżek.
Odpowiednikiem SuperSynchromesha jest znajdujący się na wyposażeniu SpartaDOS X sterownik INDUS.SYS, który instaluje szybką transmisję także w stacji CA-2001.
Protokół transmisji
Od programu bierze się umowna nazwa programowanego w ten sposób systemu turbo, który różni się od innych zastosowanym protokołem transmisji. Protokół ten zna też stacja XF551, acz w jej wypadku zastosowanie samego programu Synchromesh jest zbędne - stacja zna odpowiednie procedury sama z siebie.
Synchromesh
Dla zasygnalizowania stacji, że komputer żąda pracy w turbo, przy prędkości 38400 bps używany jest inny protokół transmisji będący - oczywiście - zmodyfikowaną wersją standardowego (patrz SIO).
Blok komendy (Command Frame) dla stacji, tak samo jak w standardzie, wysyłany jest z prędkością 19200 bps. Jednakże drugi bajt tego bloku, zawierający wartość bajtu DCMND bloku DCB, jest zwiększony o 128 (ORA #$80). Po wysłaniu komendy komputer, identycznie jak w standardzie, czeka - cały czas mając układ POKEY zaprogramowany na 19200 bps - na potwierdzenie jej przyjęcia. Negatywna odpowiedź urządzenia na taką komendę oznacza, że nie zna ono tego protokołu transmisji i nie może pracować w turbo zgodnym z XF-551.
Odpowiedź pozytywna ('A') jest sygnałem do przeprogramowania układu POKEY na większą prędkość. Komputer wstawia do licznika AUDF3/4 wartość $10; analogicznej operacji ze swojej strony dokonuje stacja dysków. Dalsza wymiana danych wywołana przez tę jedną komendę odbywa się w przyspieszonej transmisji. Po wykonaniu komendy następuje powrót do prędkości standardowej.
Ogólnie schemat wymiany danych przy odczycie jest następujący:
- prędkość 19200 bps
- komputer --> komenda 4 B + CRC --> urządzenie
- komputer <-- potwierdzenie 'A' <-- urządzenie
- przełączenie na 38400 bps
- wykonanie
- komputer <-- potwierdzenie 'C' <-- urządzenie
- komputer <-- blok danych + CRC <-- urządzenie
- przełączenie na 19200 bps
- koniec.
Natomiast zapis wygląda tak:
- prędkość 19200 bps
- komputer --> komenda 4 B + CRC --> urządzenie
- komputer <-- potwierdzenie 'A' <-- urządzenie
- przełączenie na 38400 bps
- komputer --> blok danych + CRC --> urządzenie
- komputer <-- potwierdzenie 'A' <-- urządzenie
- wykonanie
- komputer <-- potwierdzenie 'C' <-- urządzenie
- przełączenie na 19200 bps
- koniec
Budzącym zakłopotanie niedopatrzeniem jest w tym wszystkim niemożność odpytania stacji na okoliczność wartości, jaką ma mieć licznik POKEYa w czasie przyspieszonej transmisji. Dodatkowym kłopotem jest to, że stację trzeba specjalnie zaprogramować, żeby w ogóle działała w turbo. XF-551 jest tej ostatniej wady na szczęście pozbawiona.
SuperSynchromesh
Protokół jest identyczny z tym opisanym powyżej. Jedyną różnicą jest szybkość transmisji: wynosi ona 68,2 kbps (wartość licznika POKEYa - $06).
Ogólnie schemat wymiany danych i pozostałe uwagi wyglądają tak samo jak powyżej (z tym wyjątkiem, że z tą szybkością nie działa XF551).