<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=Rejestry_KMK%2FJ%C5%BB_IDE</id>
	<title>Rejestry KMK/JŻ IDE - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=Rejestry_KMK%2FJ%C5%BB_IDE"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Rejestry_KMK/J%C5%BB_IDE&amp;action=history"/>
	<updated>2026-10-02T15:33:00Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=Rejestry_KMK/J%C5%BB_IDE&amp;diff=3432&amp;oldid=prev</id>
		<title>imported&gt;Atariki recovery: Reconstructed from archived HTML; see provenance manifest</title>
		<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Rejestry_KMK/J%C5%BB_IDE&amp;diff=3432&amp;oldid=prev"/>
		<updated>2026-10-01T08:51:48Z</updated>

		<summary type="html">&lt;p&gt;Reconstructed from archived HTML; see provenance manifest&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Procedura dostępu ==&lt;br /&gt;
&lt;br /&gt;
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 (jak FDISK) i diagnostyczne.&lt;br /&gt;
&lt;br /&gt;
* Wyszukiwanie urządzenia odbywa się w pętli, która ma osiem przebiegów.&lt;br /&gt;
* Za każdym przebiegiem ustawia się na 1 jeden bit rejestru-cienia PDVRS $0248 oraz rejestru PDVREG (najpierw bit 0, za następnym przebiegiem bit 1 itd.) kasując pozostałe (cień ustawiamy na wypadek, gdyby jakieś urządzenie PBI zgłosiło tymczasem przerwanie - jeśli przerwania są wyłączone, nie trzeba tego robić).&lt;br /&gt;
* 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.&lt;br /&gt;
* Jeśli w komórkach $D800-$D801 znajdują się kolejno wartości $28, $07, to aktywowanym urządzeniem jest interfejs [[KMK/JŻ IDE]] (lub [[IDE Plus 2.0]]).&lt;br /&gt;
&lt;br /&gt;
Urządzenie odłącza się przez wpisanie zera do rejestru [[Rejestry PBI#PDVREG|PDVREG ($D1FF)]] (oraz ewentualnie przedtem do cienia, jak powyżej).&lt;br /&gt;
&lt;br /&gt;
== Lista rejestrów ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Adres&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Etykieta&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Opis&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| $D100&lt;br /&gt;
| DATA.HI&lt;br /&gt;
| Starszy bajt portu danych.&lt;br /&gt;
|-&lt;br /&gt;
| $D110&lt;br /&gt;
| DATA.LO&lt;br /&gt;
| Młodszy bajt portu danych.&lt;br /&gt;
|-&lt;br /&gt;
| $D111 (R)&lt;br /&gt;
| ERROR&lt;br /&gt;
| Rejestr ERROR. Ustawiany na odpowiednią wartość, gdy bit 0 rejestru STATUS ma wartość 1:&lt;br /&gt;
&lt;br /&gt;
* bit 7 - Bad sector (ATA-1) lub zarezerwowany (ATA-2 i późniejsze)&lt;br /&gt;
* bit 6 - Uncorrectable ECC error&lt;br /&gt;
* bit 5 - Media Changed&lt;br /&gt;
* bit 4 - ID not found&lt;br /&gt;
* bit 3 - Media Change Requested&lt;br /&gt;
* bit 2 - Aborted command&lt;br /&gt;
* bit 1 - Track 0 not found&lt;br /&gt;
* bit 0 - Data address mark not found&lt;br /&gt;
&lt;br /&gt;
W trybie diagnostycznym rejestr ERROR przyjmuje następujące wartości:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ATA-1:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* $01 - NO ERRORS&lt;br /&gt;
* $02 - Formatter device error&lt;br /&gt;
* $03 - Sector buffer error&lt;br /&gt;
* $04 - ECC circuitry error&lt;br /&gt;
* $05 - Controlling MPU error&lt;br /&gt;
* $8x - Slave drive failed&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ATA-2 i późniejsze:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* $01 - Master passed, slave passed or not present&lt;br /&gt;
* $00, $02-$7F - Master failed, slave passed or not present&lt;br /&gt;
* $81 - Master passed, slave failed&lt;br /&gt;
* $80, $82-$FF - Master failed, slave failed&lt;br /&gt;
|-&lt;br /&gt;
| $D111 (W)&lt;br /&gt;
| FEATURES&lt;br /&gt;
| 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.)&lt;br /&gt;
|-&lt;br /&gt;
| $D112&lt;br /&gt;
| SCOUNT&lt;br /&gt;
| Liczba sektorów do odczytu lub zapisu. 0 oznacza 256 sektorów.&lt;br /&gt;
|-&lt;br /&gt;
| $D113&lt;br /&gt;
| SNUM&lt;br /&gt;
| W trybie CHS: numer sektora na ścieżce, który będzie zapisywany lub odczytywany. Zakres teoretycznie od 1 do 255, w praktyce od 1 do liczby określonej przez geometrię dysku.&lt;br /&gt;
&lt;br /&gt;
W trybie LBA: bity 0-7 28-bitowego numeru sektora LBA.&lt;br /&gt;
|-&lt;br /&gt;
| $D114&lt;br /&gt;
| CYL.LO&lt;br /&gt;
| W trybie CHS: młodszy bajt numeru cylindra.&lt;br /&gt;
&lt;br /&gt;
W trybie LBA: bity 8-15 28-bitowego numeru sektora LBA.&lt;br /&gt;
|-&lt;br /&gt;
| $D115&lt;br /&gt;
| CYL.HI&lt;br /&gt;
| W trybie CHS: starszy bajt numeru cylindra.&lt;br /&gt;
&lt;br /&gt;
W trybie LBA: bity 16-23 28-bitowego numeru sektora LBA.&lt;br /&gt;
|-&lt;br /&gt;
| $D116&lt;br /&gt;
| SDH&lt;br /&gt;
| Rejestr SDH:&lt;br /&gt;
&lt;br /&gt;
* bit 7 - zarezerwowany, równy 1&lt;br /&gt;
* bit 6 - mode select (0 = CHS, 1 = LBA)&lt;br /&gt;
* bit 5 - zarezerwowany, równy 1&lt;br /&gt;
* bit 4 - drive select (0 = master, 1 = slave)&lt;br /&gt;
* bity 3-0 - w trybie CHS: numer głowicy; w trybie LBA: bity 24-27 28-bitowego numeru sektora LBA&lt;br /&gt;
&lt;br /&gt;
Według pierwotnych założeń bitami 7 i 5 wybierano rozmiar sektora (256, 512, 1024 lub 2048 bajtów). Stąd nazwa rejestru: SDH = Sector size, Device, Head.&lt;br /&gt;
|-&lt;br /&gt;
| $D117 (W)&lt;br /&gt;
| COMMAND&lt;br /&gt;
| Rejestr do wpisywania komend kontrolera IDE. Oprogramowanie interfejsu używa następujących komend:&lt;br /&gt;
* $10 - RECALIBRATE&lt;br /&gt;
* $20 - READ SECTOR&lt;br /&gt;
* $30 - WRITE SECTOR&lt;br /&gt;
* $70 - SEEK&lt;br /&gt;
* $90 - EXECUTE DIAGNOSTICS&lt;br /&gt;
* $91 - SET DRIVE PARAMETERS&lt;br /&gt;
* $EC - IDENTIFY DRIVE&lt;br /&gt;
|-&lt;br /&gt;
| $D117 (R)&lt;br /&gt;
| STATUS&lt;br /&gt;
| Rejestr statusu:&lt;br /&gt;
&lt;br /&gt;
* bit 7 - Busy&lt;br /&gt;
* bit 6 - Ready&lt;br /&gt;
* bit 5 - Write fault (ATA-1), lub Device fault (ATA-2 i późniejsze)&lt;br /&gt;
* bit 4 - Seek complete&lt;br /&gt;
* bit 3 - Data request (DRQ)&lt;br /&gt;
* bit 2 - Data corrected successfully&lt;br /&gt;
* bit 1 - Index pulse&lt;br /&gt;
* bit 0 - Error&lt;br /&gt;
&lt;br /&gt;
Gdy bit 7 (BUSY) jest ustawiony, wszystkie inne bity tego rejestru oraz wartości wszystkich innych rejestrów ATA są nieokreślone.&lt;br /&gt;
|-&lt;br /&gt;
| $D11E (W)&lt;br /&gt;
| FIXDISK&lt;br /&gt;
| Tzw. fixed disk control register. Używany jest głównie do zresetowania kontrolera.&lt;br /&gt;
&lt;br /&gt;
* bit 2 - SRST, ustawienie tego bitu na co najmniej 20 ms powoduje reset kontrolera&lt;br /&gt;
* bit 1 - nIEN, Interrupt Enable (nie używany na Atari)&lt;br /&gt;
* bit 0 - powinien być zawsze ustawiany na 0&lt;br /&gt;
&lt;br /&gt;
Pozostałe bity są zarezerwowane.&lt;br /&gt;
|-&lt;br /&gt;
| $D11E (R)&lt;br /&gt;
| ALTSTATUS&lt;br /&gt;
| Cień rejestru STATUS.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Zobacz też ==&lt;br /&gt;
&lt;br /&gt;
* [[KMK/JŻ IDE]]&lt;br /&gt;
* [[Mapa pamięci]]&lt;br /&gt;
* [[Rejestry msc IDE]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Programowanie Atari 8-bit]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Atariki recovery</name></author>
	</entry>
</feed>