Rejestry msc IDE: Różnice pomiędzy wersjami
Nie podano opisu zmian |
mNie podano opisu zmian |
||
| (Nie pokazano 5 pośrednich wersji utworzonych przez tego samego użytkownika) | |||
| Linia 1: | Linia 1: | ||
==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== | |||
<table border = 1 cellpadding = 5> | <table border = 1 cellpadding = 5> | ||
| Linia 70: | Linia 70: | ||
</td></tr> | </td></tr> | ||
<tr><td>$D10F (W)</td><td>COMMAND</td><td>Rejestr do wpisywania komend kontrolera IDE. | <tr><td>$D10F (W)</td><td>COMMAND</td><td>Rejestr do wpisywania komend kontrolera IDE. | ||
</td></tr> | </td></tr> | ||
| Linia 107: | Linia 100: | ||
</table> | </table> | ||
==Zobacz też== | |||
* [[msc]] | |||
* [[Mapa pamięci]] | * [[Mapa pamięci]] | ||
* [[ | * [[Rejestry KMK/JŻ IDE]] | ||
[[Kategoria:Atari 8-bit]] | [[Kategoria:Programowanie Atari 8-bit]] | ||
Aktualna wersja z 6 kwi 2010, 20:20
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. |