Thread View: pl.comp.sys.atari
2 messages
2 total messages
Started by Filip Ozimek
Fri, 12 Dec 1997 18:12
sterowanie
Author: Filip Ozimek
Date: Fri, 12 Dec 1997 18:12
Date: Fri, 12 Dec 1997 18:12
9 lines
1048 bytes
1048 bytes
Jak male atari steruje stacja dyskow? Chodzi mi o wykozystanie linii COMMAND i
DATA IN oraz przeprowadanie podstawowych operacji (zapis/odczyt sektora,
formatowanie sciezki).:)
BTW: Jaki jest przeplot na dysku atari SD, 90 kB?
Filip
Re: sterowanie
Author: Konrad Kokoszkiewicz
Date: Mon, 15 Dec 1997 12:53
Date: Mon, 15 Dec 1997 12:53
107 lines
4829 bytes
4829 bytes
> Jak male atari steruje stacja dyskow? Chodzi mi o wykozystanie linii COMMAND i > DATA IN oraz przeprowadanie podstawowych operacji (zapis/odczyt sektora, > formatowanie sciezki).:) To jest proste jak konstrukcja cepa. :) Linia COMMAND sygnalizuje, ze komputer za moment bedzie wysylal do stacji pakiet, tzw. Command Frame, zawierajacy komende. Takowy pakiet sklada sie z czterech bajtow wyposazanych na droge dodatkowo w sume kontrolna (czyli razem piec bajtow). Cztery zasadnicze to: CDEVIC - kod urzadzenia, $31 stacja numer 1, $32 stacja numer 2 itede. CCMND - komenda CAUX1 - mlodszy bajt numeru sektora CAUX2 - starszy bajt numeru sektora CAUX1/2 jest wazne tylko dla komend odczytu i zapisu sektora, dla reszty jest ignorowane. CCMND - komendy takie jak sie ustawia w DCMND dla SIO, czyli: ! - formatowanie zgodnie z ostatnimi ustawieniami rozkazem "O" " - formatowanie w sredniej gestosci N - odczyt bloku PERCOM ze stacji O - zapis bloku PERCOM do stacji P - zapis sektora na dyskietke R - odczyt sektora z dyskietki S - odczyt statusu W - zapis sektora z weryfikacja (zasadniczo to samo co P) Poza tym jest jeszcze pare innych komend, ale nie sa zbyt istotne. Teraz tak: kazda z komend powoduje transfer okreslonej porcji danych ze stacji lub do stacji. Dlugosc tej "porcji" jest zalezna od komendy. I tak: formatowanie - 128 bajtow ze stacji do komputera odczyt PERCOM - 12 bajtow ze stacji do komputera zapis PERCOM - 12 bajtow z komputera do stacji odczyt statusu - 4 bajty ze stacji do komputera odczyt sektora - 128 albo 256 bajtow ze stacji do komputera zapis sektora - 128 albo 256 bajtow z komputera do stacji Kazdy z tych blokow danych, tak samo jak Command Frame, ma dodatkowo sume kontrolna (1 bajt). Komendy zapisu/odczytu sektora przesylaja 128 albo 256 bajtow w zaleznosci od gestosci i numeru sektora. To jest: sektory 1-3 maja zawsze po 128 bajtow dlugosci (tj. DLA KOMPUTERA, bo na dyskietce to one maja po 256 bajtow w DD, ale dzialaja tak, jakby mialy 128). Reszta sektorow ma 128 bajtow w gestosci pojedynczej i sredniej oraz 256 bajtow w podwojnej. Wartosci bajtow bloku statusu sa nieistotne (prawie nic ich nie sprawdza). Mozna dac $30,$FF,$E0,$00 i bedzie OK. :) Blok PERCOM sluzy do ustawiania gestosci glownie. Wartosci sa nastepujace: 0 - liczba sciezek 1 - seek rate, mozna olac 2 - starszy (!!big endian!!) bajt liczby sektorow na sciezke 3 - mlodszy jak wyzej 4 - liczba stron dyskietki minus jeden (zero dla jednostronnej) 5 - flaga FM/MFM, nie pamietam dokladnie, ale chyba $04 = MFM 6 - starszy bajt dlugosci sektora w bajtach ($01 dla podwojnej gestosci) 7 - mlodszy jak wyzej 8 - wartosc $FF, moze byc inna, i tak niewazne 9 - zero 10 - zero 11 - zero Formatowanie przysyla 128 bajtow z numerami zepsutych sektorow. Prawie zadna stacja tego nie uzywa, wiekszosc przysyla $00,$00,$FF,$FF (tj. poczatek listy i koniec listy, bez numerow sektorow). Dobra, transmisja wyglada tak: 1) komputer wysyla Command Frame ustawiwszy uprzednio linie COMMAND 2) i czeka 3) stacja przysyla jednobajtowa odpowiedz (bez sumy kontrolnej): A = Acknowledge, stacja rozpoznala komende i mozna jechac dalej N = Negative Acknowledge, nie ma takiej komendy (to jest error 139) 4) komputer kasuje linie COMMAND 5) komputer i stacja przeprowadzaja transfer bloku danych 6) na koniec stacja przysyla jednobajtowe potrwierdzenie (bez sumy kontrolnej): C = Complete, wszystko OK. E = Error, operacja sie udala, pacjent zmarl (error 144). Parametry transmisji szeregowej wygladaja tak: 1 bit startu, 8 bitow danych, 1 bit stopu, brak kontroli parzystosci, 19200 bitow na sekunde. > BTW: Jaki jest przeplot na dysku atari SD, 90 kB? Taki sam jak na kazdym innym, czyli dowolny. Poza tym SD rozni sie od MD i DD tym, ze jest to FM, a reszta to MFM. Pozdrawiam Konrad M.Kokoszkiewicz mail:draco@mi.com.pl http://www.orient.uw.edu.pl/~conradus ** Ea natura multitudinis est, ** aut servit humiliter, aut superbe dominatur (Liv. XXIV, 25) ************************************************************** ** U pospolstwa normalne jest, ze albo sluzy ono unizenie, ** albo bezczelnie sie panoszy.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads