Aktualizacja:
3 VII 2024




== Karty CPU ==
* Opis
* Pliki
== ELSA ==
* Opis
* Lista zmian
* Pliki
== 65C816 XL OS ==
* Opis
* Lista zmian
* Lista zgodności
* Pliki
== Poprawki ==
* Pliki
== IDE Plus ==
* Opis
* Pliki
== Rozmaitości ==
* Pliki
== SysInfo ==
* Opis
* Pliki
== Let's Emu! ==
* Opis
* Pliki
== U-BASIC ==
* Opis
* Pliki
== CP/Emu ==
* Opis
* Pliki
== MultiBASIC ==
* Opis
* Lista zmian
* Pliki

















 

Interfejs ATA "KMK/JŻ IDE"

Interfejs znany jako "KMK/JŻ IDE" służy do podłączania urządzeń ATA oraz ATAPI (głównie twardych dysków IDE oraz napędów CD-ROM) do Atari XE przez znajdujące się z tyłu komputera złącze CARTRIDGE/ECI. Interfejs został zaprojektowany i skonstruowany w 1995 roku przez Jacka Żuka (JŻ), a oprogramowany przeze mnie (KMK) - i stąd nazwa "KMK/JŻ IDE". Pierwsza publiczna prezentacja odbyła się w styczniu 1996 roku.

Interfejs jest tzw. "nowym urządzeniem" wykorzystującym sprytny mechanizm wymyślony przez konstruktorów Atari XL/XE, pozwalający na automatyczne wykrycie i zainicjowanie przez system urządzenia I/O zaraz po włączeniu komputera. Dysponuje własną pamięcią ROM i RAM, znajduje się tam komplet procedur i danych służących do obsługi dysku. Gdy program użytkownika lub DOS odwołuje się do interfejsu szeregowo-równoległego, tzw. SIO, XL OS podłącza sobie tę zewnętrzną pamięć na czas przeprowadzania operacji I/O i wywołuje odpowiednie procedury, a zakończywszy przywraca stan poprzedni (pamięć interfejsu "znika" z przestrzeni adresowej). Mechanizm ten ma nieco wsparcia - ale bez przesady - ze strony elektroniki komputera.

Więcej na ten temat można się dowiedzieć z Atariki.

Działanie interfejsu

Dane z dysku (i do dysku) transmitowane są w trybie PIO (nie DMA), przez 16-bitowy port danych. Sterownik pracuje w trybie CHS. Przyczyny użycia CHS zamiast LBA są dość prozaiczne:

  1. w czasach, kiedy konstruowaliśmy interfejs, dyski mające LBA występowały bardzo rzadko;
  2. nawet obecnie tryb LBA jest dla urządzeń ATA opcjonalnym trybem pracy, podczas gdy tryb CHS jest zaimplementowany zawsze. Wyłącznie w CHS działają nawet niektóre karty Compact-Flash!

Mimo pracy w CHS przeciętny transfer jest bardzo szybki - w zależności od konfiguracji partycji (o czym niżej) waha się w zakresie od 35 do nawet 64 kilobajtów na sekundę przy odczycie plików pod SpartaDOS X. Jest to sporo i jak na Atari XL/XE i jak na interfejsy twardych dysków do tego komputera - KMK/JŻ IDE jest w tej klasie najszybszy.

Gwoli rzetelności trzeba zaznaczyć, że SpartaDOS X jest bardzo szybkim DOS-em (to znaczy nakładającym na operacje I/O stosunkowo niewielki "narzut" na obsługę systemu plików). Inny popularny DOS dla Atari - MyDOS - nie ma nawet połowy wydajności Sparty X, co trzeba brać pod uwagę przy testach odczytu plików.

Limity

Sterownik interfejsu, zwany w skrócie HD BIOS-em, był projektowany w 1995 roku z około 20-krotnym zapasem w stosunku do pojemności używanych wtedy twardych dysków. W związku z tym całkowity limit pojemności możliwej do obsłużenia to 8 GB na jeden napęd (24-bitowe adresowanie logiczne, 16777216 sektorów po 512 bajtów).

Obszar ten można podzielić na 16 partycji, z których każda jest adresowana 24-bitowo: a więc maksymalny rozmiar pojedynczej partycji to znowu 8 GB, a dokładniej: 16777215 sektorów, gdyż na dyskach Atari sektor o logicznym numerze 0 nie istnieje.

Obsługiwane są trzy rozmiary sektorów: 128, 256 i 512 bajtów. Sektor fizyczny w ATA ma 512 bajtów, pozostałe "gęstości" sterownik symuluje. Tryby pracy z sektorami 256- i 512-bajtowymi służą do pracy z DOS-em i przechowywania plików, pierwszy zaś emuluje średnią gęstość zapisu stacji 1050 i służy do uruchamiania wymagających takiego rozmiaru sektora programów całodyskowych.

Zgodnie z tym, co można przewidywać, tryb pracy z sektorami 512-bajtowymi jest bardzo szybki, ten z sektorami 256-bajtowymi taki sobie, a pozostały raczej wolny. Konkretnie w gęstościach o emulowanym rozmiarze sektora (128 i 256 bajtów) odczyt jest znośny, natomiast bardzo wolny jest zapis; wystarczy powiedzieć, że jeśli przy sektorach 256-bajtowych tempo zapisu sięga 15-16 kilobajtów na sekundę, to możemy mówić o szczęściu. Natomiast przy sektorze 512-bajtowym na tym samym dysku zapis bez większego wysiłku osiąga 50 kilobajtów na sekundę. Cały czas mowa o transmisji plików pod DOS-em.

Powyżej opisano limity narzucone przez sterownik interfejsu, ale to jest nic w porównaniu z ograniczeniem pojemności, jakie narzucają istniejące na Atari DOS-y. "Wielka trójka" najbardziej zaawansowanych dyskowych systemów operacyjnych dla tego komputera wyglądała do niedawna tak:

  • MyDOS 4.50/4.53: limit 8 partycji x 16 MB = 128 MB dostępnej pojemności dysku. Używając zaimplementowanego w interfejsie przekierowania partycji D1: na dowolną z pozostałych 15 można zwiększyć wykorzystanie dysku do 256 MB (ale "naraz" widoczne będzie tylko 128 MB).
  • SpartaDOS 3.2g: 9 partycji x 16 MB = 144 MB dostępne "naraz", możliwość przekierowania jak wyżej.
  • SpartaDOS X 4.2x: tak samo, jak SpartaDOS 3.2g.

W drugiej połowie 2006 roku nastąpił tu niejaki postęp, na czoło wysunął się SpartaDOS X zdecydowanie deklasując konkurencję: w wersji 4.39RC zwiększono liczbę widzianych naraz napędów do 15, a maksymalny rozmiar partycji podskoczył do 32 MB. Razem daje to 15 x 32 = 480 MB możliwych do wykorzystania przez DOS, a więc ponad trzykrotnie więcej niż dotychczas. Wciąż jednak nie jest to wiele w porównaniu do pojemności współczesnych dysków czy choćby limitów BIOS-u interfejsu.

Oprogramowanie

Oprogramowanie pozwalające na popartycjonowanie dysku i skonfigurowanie interfejsu jest na dyskietce systemowej. Dwa najważniejsze programy to:

  • KMKDIAG - program diagnostyczny służący do sprawdzenia działania intefejsu i przyłączonego dysku.
  • FDISK II - właściwy program do partycjonowania i konfiguracji.

Główny sterownik, czyli BIOS, jak to już wyżej zostało powiedziane, rezyduje sobie w pamięci ROM interfejsu. Pamięć ta ma 1,5 kilobajta w interfejsach starszego typu, albo 3k (czy też raczej dwa banki po 1,5 kilobajta) w interfejsach nowszych. Ilość pamięci interfejsu widocznej dla komputera podaje program diagnostyczny, więc łatwo to sprawdzić.

Interfejsy, które mają 1,5k ROM-u nazywane są w skrócie "jednobankowymi", a te drugie - "dwubankowymi". Cała linia BIOS-ów z serii "v. 1.x" - bieżąca wersja ma numer 1.11 - jest przeznaczona do interfejsów obu typów. Jednak jednobankowy BIOS wypełnia już dostępne mu miejsce w tak dużym stopniu, że nie można już nic tam dodać, a i poprawki błędów (jakie od czasu do czasu wyłażą) robią się problematyczne. Dlatego podjąłem prace nad BIOS-em 2.0 przeznaczonym tylko dla nowszych interfejsów z serii KMK/JŻ oraz dla wszystkich z serii IDEa. Jest on w tej chwili w fazie prototypowej.

Więcej o omawianym sprzecie można się, jak zwykle, dowiedzieć z Atariki:

Dla tych, którzy znają angielski: w dziale z plikami do ściągnięcia znajduje się angielska instrukcja obsługi interfejsu, w formacie PDF.

http://drac030.atari8.info © KMK
free counters