Rejestry KMK/JŻ IDE: Różnice pomiędzy wersjami
Przejdź do nawigacji
Przejdź do wyszukiwania
| Linia 21: | Linia 21: | ||
<tr><td>$D111</td><td>ERROR</td><td><p>Rejestr ERROR. Ustawiany na odpowiednią wartość, gdy bit 0 rejestru STATUS ma wartość 1:</p> | <tr><td>$D111</td><td>ERROR</td><td><p>Rejestr ERROR. Ustawiany na odpowiednią wartość, gdy bit 0 rejestru STATUS ma wartość 1:</p> | ||
* bit 7 - Bad sector | * bit 7 - Bad sector (ATA-1) lub zarezerwowany (ATA-2 i późniejsze) | ||
* bit 6 - Uncorrectable ECC error | * bit 6 - Uncorrectable ECC error | ||
* bit 5 - | * bit 5 - Media Changed | ||
* bit 4 - ID not found | * bit 4 - ID not found | ||
* bit 3 - | * bit 3 - Media Change Requested | ||
* bit 2 - Aborted command | * bit 2 - Aborted command | ||
* bit 1 - Track 0 not found | * bit 1 - Track 0 not found | ||
| Linia 32: | Linia 32: | ||
<p>W trybie diagnostycznym rejestr ERROR przyjmuje następujące wartości:</p> | <p>W trybie diagnostycznym rejestr ERROR przyjmuje następujące wartości:</p> | ||
* | '''ATA-1:''' | ||
* | |||
* | * $01 - NO ERRORS | ||
* | * $02 - Formatter device error | ||
* | * $03 - Sector buffer error | ||
* $04 - ECC circuitry error | |||
* $05 - Controlling MPU error | |||
* $8x - Slave drive failed | |||
'''ATA-2 i późniejsze:''' | |||
* $01 - Master passed, slave passed or not present | |||
* $00, $02-$7F - Master failed, slave passed or not present | |||
* $81 - Master passed, slave failed | |||
* $80, $82-$FF - Master failed, slave failed | |||
</td></tr> | </td></tr> | ||
Wersja z 24 sie 2005, 22:39
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 (jak FDISK) 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 $D800-$D802 znajdują się kolejno wartości $28, $07, $70, to aktywowanym urządzeniem jest interfejs KMK/JŻ IDE.
Urządzenie odłącza się przez wpisanie zera do rejestru PDVREG ($D1FF).
Lista rejestrów
| Adres | Etykieta | Opis |
| $D100 | DATA.LO | Młodszy bajt portu danych. |
| $D110 | DATA.HI | Starszy bajt portu danych. |
| $D111 | 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:
|
| $D112 | SCOUNT | Ilość sektorów do odczytu lub zapisu. |
| $D113 | SNUM | Numer sektora na ścieżce, który będzie zapisywany lub odczytywany. |
| $D114 | CYL.LO | Numer cylindra (młodszy bajt). |
| $D115 | CYL.HI | Numer cylindra (starszy bajt). |
| $D116 | SDH | Rejestr SDH:
|
| $D117 (W) | COMMAND | Rejestr do wpisywania komend kontrolera IDE. Oprogramowanie interfejsu używa następujących komend:
|
| $D117 (R) | STATUS | Rejestr statusu:
|
| $D118 (W) | FIXDISK | Tzw. fixed disk control register. Używany jest do zresetowania kontrolera. |
| $D118 (R) | ALTSTATUS | Cień rejestru STATUS. |