Takie jak samego systemu operacyjnego Atari, bo to on tu stwarza ograniczenia. Czyli (teoretycznie, bo praktycznie bywa inaczej) jednoczesnie widoczne dla sysemu 15 partycji zawierajacych max. 65536 sektorow 256 bajtowych. Jak to sobie wewnetrznie kontroler organizuje to jego sprawa - wazne jak widzi to komputer.
Gucio prawda. System nie stwarza takich ograniczeń. Sterownik KMK IDE stwierdza odwołanie do HDD poprzez sprawdzenie czy w DDEVIC ($0300) siedzi $31, a w DUNIT ($0301) coś z zakresu 1-16. Gdyby wywalić to drugie sprawdzenie i uznać, że jest to numer partycji, to może być ich 256!
Od strony Atari moze miec 128 lub 256b (chyba ze zmienisz OS lub zastosujesz swoje wlasne procedury komunikacji z dyskiem). Wewnetrznie kontroler moze sobie trzymac to wszystko (i trzyma) stosujac sektory 512b.
I znów pudło! Od czego jest w DCB DBYT1 ($0308) i DBYT2 ($0309)? W nich ustawia się ilość danych przesyłanych przy jednym wywołaniu SIO. Jeśli masz sektory 512B i przestawisz partycję w takie sektory i zabiszesz w DBYTn 512, to masz operacje na 512B.
Jednak - jak pisalem wyzej - Atari ze standardowym OSem ma ograniczenie do 65536 sektorow (oczywiscie w obrebie jednej partycji).
Nie do końca. Owszem numer sektora zwykle zapisuje sie w dwóch bajtach (DAUX1 - $030A i DAUX2 - $030B). Ale DCB ma jeden bajt nieużywany ($0307), który można wykorzystać np. jako najstarszy bajt numeru sektora (bity 16-23). Wtedy masz 16,77 milionów sektorów. Jesli użyjesz sektorów 512B, to partycja może mieć do 8GB (tyle też maksymalnie obsłuży sterownik KMK IDE).
Jak rozpoznac obecnosc kontrolera SIO2IDE, KMK ?
W wersji 1.2 pod adresem $DDD9 masz tekst "IDE BIOS v.1.2n(c) 1995-97 by Dracon ". Poza tym pod adresami $D800-$D802 są kolejno wartości: $20, $07, $70. Są to tzw. magic numbers, niezmienne i unikatowe dla KMK IDE. :)