a po co ludzie wspinaja sie na góry ? bo są 8)
Ale nikt normalny nie pcha się w góry, zanim nie nauczy się łazić po płaskim.
Marok:
1) po pierwsze primo, nie ma gwarancji, że katalog znajduje się (albo zaczyna się) w sektorze $169. W szczególności pod SpartaDOS katalog może być gdziebądź; pod MyDOS-em od sektora $169 zaczyna się katalog główny, ale podkatalog może być gdziebądź. Że już o egzotyce (AtariDOS 3.0, AtariDOS 4.0) nie ma co wspominać.
2) po drugie secundo, nie ma gwarancji, że katalog wygląda tak, jak pod DOS-em 2.5. Znowu, pod SpartaDOS katalog jest w zupełnie innym formacie.
3) po trzecie tertio, nie ma gwarancji, że katalog zajmuje 8 kolejnych sektorów - znowu, pod SpartaDOS katalog jest plikiem, który może zajmować bardzo dużą liczbę sektorów rozrzuconych dowolnie po dysku.
4) po czwarte quarto, nawet jeśli katalog zaczyna się od sektora $169 i zajmuje osiem kolejnych sektorów, nie ma gwarancji, że sektory są równo wypełnione danymi katalogu: np. MyDOS używa tylko pierwszych 128 bajtów każdego sektora katalogu (nawet w podwójnej gęstości), a BiboDOS - przeciwnie, zawsze całych sektorów.
To są wszystko rzeczy, o które ma się martwić DOS. Przeto, jeśli naprawdę z jakiegoś powodu nie musisz tego robić w sposób skomplikowany i zawodny, to lepiej jest, wedle sentencji wypowiadającego się tu również tebe, ułatwić sobie życie i skorzystać z funkcji odczytu sformatowanego katalogu, jaką oferuje każdy DOS (via CIO, $E456).
[ Dodano: 15.02.2005 02:37:00 ]
PS. O ile mnie pamięć nie myli, bit 5 pierwszego bajtu statusu oznacza "gęstość MFM", a nie "podwójną gęstość". Nie możesz na tej podstawie wyciągać wniosków o wielkości sektora, bo gęstościami MFM są zarówno gęstość podwójna jak i średnia. Innymi słowy bit ten oznacza owszem "double density", ale w kategoriach scalaka kontrolera WD 1772 (czy kompatybilnego), a nie w terminologii wymyślonej przez Atari.
Poza tym dobrze jest sprawdzać kody błędów, jeśli coś nie działa.
KMK
? HEX$(6670358)