Oj. Panowie, panowie. Już rozwiewam wasze wątpliwości:
myśląc o długich nazwach myślałem też o małych i dużych literach - system w nazwie pliku zapisałby tak jak je podaliśmy, ale niezwracałby na to uwagi - tzn: "ala.txt" = "ALA.TXT", czy "Ala.tXt" - niemiałoby to sensu. Nazwa długa zapisana bybyła jednym ciągiem - razem z kropką, co pozwoliłoby zrobić dłuższe rozszeżenia. czyli:
* ala.txt 002
a nie
* ALA TXT 002
o przełączniku też myślałem - jeden bit przy funkcji OPEN by sprawe załatwił.
Tak czy siak system będzie w miare możliwości kompatybilny z MyDOS'em i SpartaDOS'em - mam na myśli komendy XIO - możnaby wybierać z jakim dosem ma on być kompatybilny - sam HiDOS ma swoje stałe komendy, które będą niezależne od komend MyDOS'a, czy Sparty.
problem Lizarda:
dyski >8GB zpartycjonowane FDISK'iem mają starą tabele i partycja tylko 8GB. Natomiast dysk/partycja (nieważne czy <8GB czy >8GB) spartycjonowany przy pomocy PartitionWizarda problem ten rozwiązał poprzez zmienioną procke kontrolowanego BOOT'a, która NIE JEST PRZECIEŻ ZAPISANA W ROM'IE, TYLKO W DRUGIE POLOWIE SEKTORA TABELI PARTYCJI. Wystarczyło ją zmienić na coś co załaduje jeszcze kilka sektorów "z poza" wszystkich partycji - pierwsza partycja jest popropstu przesunięta o "parę" sektorów, w którym jest programik "IDE BIOS Extension". To on sprawdza czy jest dysk SLAVE, i czy jest on np. Użądzeniem ATAPI. Jeśli jest to dysk trwardy ATARI, to zczytuje on tabele partycji z tego dysku (z rozróżnieniem na starą (FDisk) i nową (PartitionWizard) tabelę partycji i tworzy jedną, którą następnie zapisuje na dysk MASTER (w ten sposób niema konieczności uruchamiania SLAVE.COM). Jeśli w jakiś sposób po starcie systemu dysk SLAVE zniknie to o zablokowanie dostępu do niego zatroszczy się BIOS (np. v1.2, czy v1.4). Poprzez to rozszeżenie klawiszem HELP można uruchomić sobie PartitionWiazrd, bez DOS'a i przestawićstawić coś co nam niepasuje, zapisać zmiany i zrestartować kompa. Można też wybierać partycję z której ma być start - wystarczy przytrzymać TAB i można wybierać. Wyświetlane są też parametry (obu) napędów - na wzór PC'towego BIOS'u. Jeśli np. poprzednio przy starcie dysk SLAVE był obecny, a w obecnbym BOOT'cie go niema, to procka poprawi tabele partycji usuwając wpisy dotyczące dysku slave. Samą tabele partycji FDisk'a przechszciłem na systemową (16 dysków) i dodałem drugą (zaraz za pierwszą, gdzie można zapisać do 32 lub 64 partycji na dysku. Chyba się już domyślacie jak zrobiłem przypisania dowolnej partycji pod dowolny numer Dx: - dynamicznie tworzona tabela systemowa. Można też ukrywać partycję. Sama tabela systemowa ma dwie postacie - starą (dyski <=8GB, z adresowaniem CHS) i nową (wszystkie dyski z obsługą LBA). jeśli dysk jest <=8GB i potrafi obsłużyć LBA, to mamy wybór - stary lub nowy układ tabeli systemowej. Sama tabela partycji fizycznych ma jedną postać bezwzględu na rozmiar dysku i rodzaj adresowania - albo dysk w CHS albo w LBA, tak jak na grzybie. I rozwiązanie problemu Lizarda:
Jeśli chcemy wystartować z partycji (poprostu LBA, bo >8GB niema CHS - niewiedziałem, że tak można, więc zrobiłem na LBA), a "IDE BIOS Extension" stwierdzi, że mamy BIOS v1.2 lub v1.4, to wczyta ona do pamięci rozszeżonego BIOS'a (do pamięci XMS, jeśli taka jest) lub do zwykłej. Jeśli jednak będziemy mieć BIOS'a v2.0 (czyli z obsługą tylko LBA), to procedura będzie pominięta. Jak widać mój BIOS nie wspiera CHS, więc jeśli chcemy odczytać lub zapisać coś na takim dysku, to wystarczy sobie (nawet z flopa, czy sio2pc) wczytać jakiegoś DOS'a i zainstalować rozszeżonego BIOS'a, który wrzuci się do jakiegoś banku pamięci XMS - niema chyba przypadku, kiedy ktoś ma IDE KMK + HDD, a nie ma choć 128kB RAM'u. - zreguły taka osoba ma około 576kB - 1MB. Oczywiście wybur banku jest.
HiDOS posiada sterownik HDD (IDE KMK) oczywiście jako moduł dogrywalny (jak wszystko w tym systemie), ponieważ domyślnie pozwala on kożystać z obu tabel partycji. sterownik "atapi.sys" jest oddzieloną sprawą od "kmkide.sys". W planach jest też jakiś support dla SIO2IDE, lecz narazie studiuję dokumentację - mam ją od kilku dni. W systemie jest oczywiście obsługa zegarka czasu rzeczywistego - jeśli ktoś podeśle mi coś z dokumentacji do ArClock'a, będe dźwięczny. Ja ma PCF8583 (magistrala i2c (i kwadrat c), więc narazie uwzględniłem tylko ten zegarek, jeśli będzie trzeba, to R-Time8, też można dodać - mogę go testować na emulatorze pod windą, bo dokumentację do R-Time'a gdzieś mam.
Wydaje mi się że dobrze postąpiłem - zjedzenie iluś kilobajtów, przy dość dużym dysku... - chyba nikt się nieobrazi, a wybór controlled/pass i tak jest zapisany w samej tabeli partycji, więc ustawiłem go praktycznie na sztywno, co powoduje zę za każdym razem jest uruchamiane "IDE BIOS Extension". Ps. Zauważyłem, że teraz można samemu dodawać załączniki do postu, więc przy następnym razie dołącze plik ZIP z v1.3 dokumentacją filesystemu do HIDOS'a, jeśli ktoś będzie zainteresowany, to z chęcią przyjmnę każdą sugestie i/lub krytykę - trzeci raz mi się niebędzie chciało pisać tego od nowa.
Pod HiDOS'em chcę zrobić, tak że mamy dopstęp do wszystkich partycji z obu dysków i np do wszystkich flopów via SIO, ramdysk (max. 4) i ramcart (1mb) też - poprzez zastosowanie podobnych oznaczeń jak w spartaDOS'ie, a "Dx:" - poprostu wybrać sobie, co ma być po odwołaniu do konkretnego "D:" i sprawa załatwiona. Planyuję też jednoczesną obsługę formatu Sparty (bo MyDOS jest obsługiwany - bez problemu wraz z podkatalogami). Dokumentację mam, tylko że trzeba napisać filesystem. Myślę też o obsłudze filesystemów opartych na FAT (FAT12/16/32), ale to pewnie będzie trudne, gdyż bardzo nielubie ? FAT'ów, gdyż na codzień zajmuję się odzyskwaniem danych z tych systemów, więc poprostu mam do nich awersję... z drugiej jednak strony, HiDOS' obsługuje sektory 512 bajtów więc czemu nie?
Pozdrawiam.
ps. draco. sterownik obslugujący LBA i CHS oraz obie tabele partycji (FDisk i PartitionWiazrd) mógłby być w nowym ROM'ie dla 65c816 (512kB ROM'u chyba by się gdzieś to wrzuciło nie?)
FAQ: Cegła waży kilogram i pół cegły. Ile ważą dwie cegły ? :D
JIL 4EVER!