FDDStacje dyskówOprócz wyżej wymienionych istnieje oczywiście cała gama innych modeli, znacznie rzadziej u nas występujących. Pominąłem również stacje dysków TOMS 720 i SN-360, gdyż, poza ogólną ich charakterystyką, niewiele o nich wiem. Wszystkie stacje dysków do ATARI XL/XE używają dyskietek 5.25'. Jak to działa?Stacja dysków to cały mikrokomputer, zawierający procesor, pamięć ROM i RAM, scalony kontroler napędu dyskowego i programowane złącze wejścia/wyjścia. W jej budowle wyróżnić można kilka podstawowych modułów: Jak łatwo się domyślić, obiektem naszego zainteresowania jest przede wszystkim moduł procesora, choć nie tylko. Najczęściej spotykane w stacjach procesory to; Z80, 650718050, lub zgodne z nimi. System operacyjny, zapisany w ROM, steruje całą pracą stacji. Niektóre modele stacji mają częściowo otwartą strukturę, co oznacza, że można ingerować w program, wykonywany przez procesor stacji, np. zlecić mu wykonanie procedury, wysłanej z komputera, a następnie przekazać sterowanie z powrotem do programu OS-u. Do tego typu stacji należą: LDW 2000 oraz CA 2001, również z rozszerzeniami TOMS. Inne modele są pozbawione tej możliwości, czy to z uwagi na cechy charakterystyczne zastosowanego procesora (XF 551), czy też przestarzałą ideę, rzutującą na zastosowane rozwiązania konstrukcyjne (1050). Ogólnie jednak, OS stacji jest niezależny od OS-u komputera i ma za zadanie odbierać dane z komputera, zapisywać je na dyskietce, a następnie ponownie je odczytywać i przesyłać do komputera. Aby to było możliwe, muszą istnieć jakieś znormalizowane protokoły transmisji danych pomiędzy komputerem, a stacją. Od strony komputera jest to: SIORejestry OS o adresach $300 do $30B zawierać powinny parametry wejściowe: Aby wywołać SIO, należy wypełnić podane wyżej rejestry właściwymi wartościami, a następnie wywołać procedurę o adresie $E459. Po powrocie rejestr OS $303 i rejestr procesora Y zawierają status powrotny operacji. Wartość 1 oznacza, że operacja przebiegła bezbłędnie. Procedurę SIO dla stacji 1 można również wywoływać przez wektor $E453. Można wówczas pominąć wprowadzanie odpowiednich wartości do rejestrów: $300, $303, $306, $308 i $309, a dla komendy GET STATUS również $304 i $305 (adres: ustawiany na $23A). A oto spis komend:
Uwaga: operacje formatowania wymagają ustawienia DEVSTATUS ($304) na $40 i długości bufora na $80 - w odpowiedzi otrzymuje się blok $80 danych. Są to numery uszkodzonych sektorów (dwubajtowe). Na końcu bloku numerów sektorów znajduje się znacznik ich końca: $FFFF. Tylko dla LDW 2000 i CA 2001 (z TOMS'em i bez):
I tylko dla 1050 TOP DRIVE:
Za dwie powyższe komendy nie mogę wziąć odpowiedzialności - ze stacją 1050 TOP DRIVE nie miałem jak dotąd okazji lepiej się zapoznać. Dodatkowo, dla stacji LDW 2000, CA 2001, XF 551 możliwe jest przyspieszenie transmisji danych ze standardowych 19200 bodów do ok.50000 bodów, poprzez podanie komendy w inwersie (powiększonej o $80). W przypadku stacji LDW 2000 i CA 2001 musi obsługiwać tę przyspieszoną transmisję ich własny program SIO (realizowany np. przez DOS XL - SYNCHROMESH): zamiast taktowania transmisji zawsze przez urządzenie odbierające, całość transmisji taktowana jest przez ATARI (POKEY). W przypadku stacji XF 551 przyspieszenie nie jest związane ze sposobem transmisji, niemniej jednak jego wykorzystanie również wymaga specjalnego SIO (np. SpartaDOS X). Rozszerzenia typu TOP DRIVE (do 1050 oraz TOMS) są znacznie łatwiejsze i wygodniejsze w użyciu: zamiast nowym SIO, zadawalają się nakładką na system, prze-chwytującą przerwania, związane z transmisją danych przez POKEY i przyspieszającą zegar transmisji (4 generator/licznik POKEYa), aby osiągnąć prędkość 70000 bodów. System szybkiej transmisji uruchamia się tu ustawiając 7 bit w AUX2 przy zlecaniu SIO transmisji. Charakterystyczną cechą wszystkich nowoczesnych stacji do małego ATARI jest korzystanie z bloku konfiguracyjnego PERCOM. Właściwie jedynie standardowa 1050, nie przerobiona na "turbo", jest pozbawiona tej możliwości. PERCOM umożliwia ustawienie różnych wariantów konfiguracji, zależnie od potrzeby i w miarę możliwości, przy pomocy jednej komendy (84F). Oto znaczenie kolejnych bajtów bloku PERCOM: Dodatkowo: stacje TOMS rozpoznają, oprócz 3 standardowych gęstości (SD, ED, i DD) również gęstość IBM S-9 (MFM, 9 sektorów na ścieżce po 512B każdy), a XF 551 - gęstość QD (MFM, 18 sektorów na ścieżce po 256B, 2 strony). Uwaga! Dalsza część tekstu tylko dla posiadaczy LDW 2000 i CA 2001.Ponieważ jak dotąd miałem dłuższą styczność jedynie z tymi stacjami dysków, więc to je właśnie najlepiej miałem okazję poznać (w wersji z TOMS-em i bez). Ich charakterystyczną cechą są "bajery" na płytce czołowej: przyciski i kontrolki. Producentem jest: Callfornia Dreams vel Logical Design Works - jedna i ta sama firma w USA. ROM LDW 2000 pochodzi z 1983 roku, a CA 2001 - z 1988. Jednostkę centralną stanowi procesor Z80A, pamięć ROM - to EPROM 2732 (lub 2764), RAM - 2116, FDC - WD 2797 (lub zgodny 1772), system wejścia/wyjścia zbudowany jest z układów TTL. Mimo, że w CA 2001 zastosowano inny FDC, układy elektroniczne tych stacji niczym się nie różnią. WD 1772 - to WD 2797 w mniejszej (28 nóżek zamiast 40) obudowie. Aby układ zmieścił się w tej obudowie, niezbędne było dokonanie "drobnych" cięć w ilości wyprowadzeń: skutkiem tej oszczędności (mniejsze obudowy to niższy koszt produkcji) jest brak na wejściu FDC tak czasem bardzo potrzebnego sygnału READY, będącego ilustracją stanu drzwiczek napędu (uniesione/zamknięte). Użytkownikom CA 2001 pozostaje więc płacz i zgrzytanie zębów lub wymiana kontrolera na 2797 (płytka stacji CA 2001 jest uniwersalna - można umieścić na niej 1772 lub 2797). Bardzo dużą zaletą tych stacji jest, jak już wspomniałem, możliwość programowania ich pracy z komputera. Dokonuje się tego w następujący sposób: Dla stacji bez TOMS'a:Aby wpisać program do RAM stacji (pod adres $7F00) należy użyć komendy SIO $58, przy czym długość bufora<256, AUX2 ($30B) = 1, a AUX1 = $308. Aby go teraz uruchomić i odebrać od stacji dane, należy ponownie użyć komendy $58, ustawiając rejestry AUX2 = 0, a DEVSTATUS ($304) = $40. Ponieważ OS stacji po otrzymaniu tej komendy jedynie przekazuje sterowanie do naszej procedury (CALL $7F00 - po naszemu JSR $7F00), nasza procedurka musi sama zatroszczyć się o wysłanie pożądanych danych do komputera. Jak to zrobić - nieco dalej. Aby cała operacja przebiegła bezbłędnie, nasza procedura przed zakończeniem i oddaniem sterowania OS-owi musi załadować do akumulatora powrotny kod błędu ($43), wysłać go do komputera (o tym niżej) i ustawić znacznik C (np. przez SCF - u nas SEC; polecam listę rozkazów Z80, np. z "Bajtka" 12/88).Uwaga! Rozmiar bufora dla komendy $58 musi się zawierać między 1 a 256. Niżej przedstawiam skróconą mapę OS-ów CA 2001 i LDW 2000: Główne wejście do procedur systemowych (wektor) ma adres $4, w rejestrze C - nr wywoływanej funkcji. Celowo nie podaję konkretnych adresów, gdyż są one inne dla CA 2001 i dla LDW 2000. Spis funkcji systemowych: Dodatkowo: Funkcji jest razem $15 ($0 - $14). Niektóre pominąłem, jako niezbyt istotne (np. konwersja danych na format wyświetlacza LED), innych zaś nie chciało mi się zbyt dokładnie zgłębiać. Zainteresowanych odsyłam do (4) - tam znajduje się szczegółowa mapa pamięci LDW TOMS MULTI (adresy rejestrów sprzętowych są te same). Na marginesie: ROM-y CA 2001 i LDW 2000 do analizy uzyskałem przez wpisanie do RAM-u stacji programu, "przepychającego" go w częściach przez złącze szeregowe. Z kolei Informacji, niezbędnych do stworzenia owego programu, dostarczyły mi: analiza programu GTSYNC.COM oraz lista rozkazów Z80. Dla stacji z TOMS'em:Wszystkie istotne wiadomości można znaleźć w (4).Myślę, że zainteresowani sami dotrą do w/w źródeł - nie jest to w końcu takie trudne, a kompleksowe potraktowanie tematu zajęłoby cały numer TA. Czytelniku! Reszta należy do Ciebie, więc dobrej zabawy życzy Ci autor. Artur Miarecki
(1) - "Atari Intern", (2) - "Mapa pamięci ATARI XL/XE. Procedury wejścia/wyjścia", Wojciech Zientara, (3) - opis 1050 Top Drive, (4) - "Programowanie stacji TOMS MULTI", Robert Miziński, "Moje Atari" nr 7, (5) - "Pamięć zewnętrzna na minidyskach elastycznych", Adam Pluta, "Mikroklan" nr 3, (6) - analiza własna ROM CA 2001 i LDW 2000, (7) - analiza własna ROM TOMS MINI. |