Rejestry msc IDE
From Atariki
Wersja z dnia 02:57, 9 gru 2005 KMK (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 05:56, 12 mar 2006 KMK (Dyskusja | wkład) Next diff → |
||
Linia 1: | Linia 1: | ||
====Procedura dostępu==== | ====Procedura dostępu==== | ||
- | Poniżej wymienione rejestry nie są dostępne wprost. Stają się dostępne po wybraniu urządzenia odpowiednim dla niego bitem w rejestrze PDVREG ($D1FF). System operacyjny komputera wykonuje to automatycznie przy każdym resecie (celem zainicjowania urządzeń) oraz przy odwołaniach do [[SIO]] (celem przeprowadzenia transferu danych). Jednak dostępu do rejestrów mogą potrzebować specjalistyczne programy narzędziowe i diagnostyczne. | + | Poniżej wymienione rejestry nie są dostępne wprost. Stają się dostępne po wybraniu urządzenia odpowiednim dla niego bitem w rejestrze [[Rejestry PBI#PDVREG|PDVREG ($D1FF)]]. System operacyjny komputera wykonuje to automatycznie przy każdym resecie (celem zainicjowania urządzeń) oraz przy odwołaniach do [[SIO]] (celem przeprowadzenia transferu danych). Jednak dostępu do rejestrów mogą potrzebować specjalistyczne programy narzędziowe i diagnostyczne. |
* Wyszukiwanie urządzenia odbywa się w pętli, która ma osiem przebiegów. | * Wyszukiwanie urządzenia odbywa się w pętli, która ma osiem przebiegów. | ||
Linia 8: | Linia 8: | ||
* Jeśli w komórkach $D804 i $D80C znajduje się wartość $48 ("H"), to aktywowanym urządzeniem jest interfejs [[msc]]. | * Jeśli w komórkach $D804 i $D80C znajduje się wartość $48 ("H"), to aktywowanym urządzeniem jest interfejs [[msc]]. | ||
- | Urządzenie odłącza się przez wpisanie zera do rejestru PDVREG ($D1FF). | + | Urządzenie odłącza się przez wpisanie zera do rejestru [[Rejestry PBI#PDVREG|PDVREG ($D1FF)]]. |
====Lista rejestrów==== | ====Lista rejestrów==== |
Wersja z dnia 05:56, 12 mar 2006
Procedura dostępu
Poniżej wymienione rejestry nie są dostępne wprost. Stają się dostępne po wybraniu urządzenia odpowiednim dla niego bitem w rejestrze PDVREG ($D1FF). System operacyjny komputera wykonuje to automatycznie przy każdym resecie (celem zainicjowania urządzeń) oraz przy odwołaniach do SIO (celem przeprowadzenia transferu danych). Jednak dostępu do rejestrów mogą potrzebować specjalistyczne programy narzędziowe i diagnostyczne.
- Wyszukiwanie urządzenia odbywa się w pętli, która ma osiem przebiegów.
- Za każdym przebiegiem ustawia się na 1 jeden bit rejestru PDVREG (najpierw bit 0, za następnym przebiegiem bit 1 itd.) kasując pozostałe.
- Po ustawieniu bitu trzeba skontrolować zawartość komórek $D803 i $D80B. Jeśli wartość ich jest równa odpowiednio $80 i $91, to znaczy, że aktywowane zostało jakieś urządzenie.
- Jeśli w komórkach $D804 i $D80C znajduje się wartość $48 ("H"), to aktywowanym urządzeniem jest interfejs msc.
Urządzenie odłącza się przez wpisanie zera do rejestru PDVREG ($D1FF).
Lista rejestrów
Adres | Etykieta | Opis |
$D108 | DATA.LO | Młodszy bajt portu danych. |
$D120 | DATA.HI | Starszy bajt portu danych. |
$D109 (R) | ERROR | Rejestr ERROR. Ustawiany na odpowiednią wartość, gdy bit 0 rejestru STATUS ma wartość 1:
W trybie diagnostycznym rejestr ERROR przyjmuje następujące wartości: ATA-1:
ATA-2 i późniejsze:
|
$D109 (W) | FEATURES | Rejestr używany przez niektóre komendy opcjonalne oraz przez komendę SET FEATURES, która wybiera tryby pracy specyficzne dla danego urządzenia (np. włącza i wyłącza cache itp.) |
$D10A | SCOUNT | Ilość sektorów do odczytu lub zapisu. |
$D10B | SNUM | Numer sektora na ścieżce, który będzie zapisywany lub odczytywany. |
$D10C | CYL.LO | Numer cylindra (młodszy bajt). |
$D10D | CYL.HI | Numer cylindra (starszy bajt). |
$D10E | SDH | Rejestr SDH:
|
$D10F (W) | COMMAND | Rejestr do wpisywania komend kontrolera IDE. |
$D10F (R) | STATUS | Rejestr statusu:
|
$D110 (W) | FIXDISK | Tzw. fixed disk control register. Używany jest głównie do zresetowania kontrolera.
Pozostałe bity są zarezerwowane. |
$D110 (R) | ALTSTATUS | Cień rejestru STATUS. |