4,576

(123 odpowiedzi, napisanych Software, Gry - 8bit)

z jakich obszarow pamieci musi korzystac program aby nie skrzywdzic Sparty i dysku HDD ?

Przy transferach z dysku nie można uzywać rejestrów FP ulokowanych na stronie zerowej, bo korzysta z nich sterownik IDE do obliczeń CHS.

Poza tym nie za dobrym pomysłem jest takie ustawienie DCB, żeby sektory odczytane z dysku lądowały w obszarze $D800-$DFFF, bo albo nic się nie odczyta albo dysk przestanie działać (podczas transmisji tam jest wewnętrzna pamięć sterownika, i to niezależnie od tego, czy ROM systemowy jest włączony, czy nie). Na to ostatnie - "przestanie działać" - pomaga ciepły reset.

4,577

(123 odpowiedzi, napisanych Software, Gry - 8bit)

W trybie banked pod adresami $FFC0-$FFF9 nic nie ma, a w każdym razie nic ważnego. O ile pamiętam, nadpisuje je Turbo BASIC XL, i wszystko dalej działa.

4,578

(75 odpowiedzi, napisanych Software, Gry - 8bit)

Jakie sa ograniczenia kontrolerow HDD stosowanych w Atari ?

Mała ilość ROM-u na program obsługi ;-)

Czy partycja HDD musi miec koniecznie sektory max 256 bajtow ?

Nie.

Czy jest ograniczona liczba sektorow ktore potrafi kontroler zaadresowac ?

Sterownik IDE zaadresuje 16777215 sektorów. Kontroler IDE ma od 24 do 28 bitów na zaadresowanie sektora, LBA2 - drugie tyle o ile mi wiadomo.

W jaki sposob mozna odwolac sie do kontrolera, przez DCB ?

Tak jest, ustawiasz odpowiednie wartości w DCB i lecisz do SIOINT.

Gdzie znajde opis obslugiwanych komend kontrolera ?

Komendy są standardowe, PERCOM tylko odczyt (zapis zwraca błąd), formatowanie zwraca błąd (do formatowania jest FDISK), poza tym masz - o ile pamiętam - $EC odczyt informacji o napędzie (zwraca 512 bajtów tejże informacji), $EE - zaparkowanie dysku (ale tego już nie jestem pewien), no i jest jeszcze reset, ale jaki ma kod to zapomniałem.

Jak rozpoznac obecnosc kontrolera SIO2IDE, KMK ?

Blok PERCOM ma na końcu "IDE", a w bajcie rodzaju napędu jakąś specjalną wartość, której też już w tej chwili nie pamiętam :-)

4,579

(75 odpowiedzi, napisanych Software, Gry - 8bit)

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!

Tak jest, ale w tablicy partycji nie mieści się więcej wpisów niż 16. Oczywiście tablicę można zorganizować inaczej, można też zająć więcej miejsca na master bootblock (gdzie siedzi rzeczona tablica), ale to teoria, bo FDISK tego nie zrobi. Trzeba byłoby go napisać od nowa.

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.

O ile mnie pamięć nie myli, sterownik IDE w ogóle wartości DBYT nie bierze pod uwagę. Wielkość sektora logicznego jest zapisana w tablicy partycji, i może to być 256 albo 512 bajtów. Transfery sektorów mają zawsze jeden albo drugi rozmiar, ale jak się czyta sektory 128-bajtowe (DBYT = 128, a po każdym transferze DBUFA = DBUFA + DBYT), to oczywiście przeważnie nic nie szkodzi.

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).

Tak jest.

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. :)

Po pierwsze to jest $28, $07, $70. Po drugie tam jest też numer wersji, ale już nie pamiętam gdzie :-) Po trzecie zacytowana zajawka sterownika jest jego wewnętrzną sprawą, czyli w innej wersji może być pod innym adresem no i nie tej treści.

K.