Format MasterDOS
From Atariki
Wersja z dnia 16:03, 8 paź 2008
System plików pomysłu Foxa zastosowany w MasterDOSie.
Obsługiwane są tylko dyskietki 360 kB. Po sformatowaniu dyskietki z systemem plików MasterDOS jest 1419 wolnych sektorów po pełne 256 bajtów. Struktura systemu plików:
- sektory 1-3 - boot sectors
- sektory 4-9 - tabela sektorów
- sektory 10-21 - katalog
- sektory 22-1440 - przeznaczone na pliki
Boot sectors
W tych sektorach znajdują się fragmenty DOSa, między innymi odpowiedzialne za jego wczytanie. W odróżnieniu od innych DOSów Atari, w tych sektorach zapisane jest po 256 bajtów (a nie tylko początkowe 128). Algorytm wczytania DOSa jest następujący:
- wczytywane jest początkowe 128 bajtów sektora 1 i uruchamiany kod w nich zawarty
- kod ten wczytuje sektory 1-3 (całe, po 256 bajtów)
- odczytywana jest tabela sektorów oraz odszukiwany plik MSDOS.SYS w katalogu
- plik MSDOS.SYS jest wczytywany i uruchamiany
Tabela sektorów
Tabela sektorów zawiera informacje o położeniu plików i wolnych sektorów na całej dyskietce. Tabela zajmuje 6 sektorów, czyli 1536 bajtów i jest wczytywana zawsze w całości w obszar pamięci $0800-$0dff. Struktura tabeli:
- bajty 0-4 zawierają napis "MSDOS" w ASCII
- bajty 5-21 zawierają 255, odpowiadając sektorom zajętym przez tabelę sektorów i katalog
- bajty 22-1440 zawierają informacje o poszczególnych sektorach dostępnych dla plików
- bajty 1441-1535 zawierają 255 lub 254 (w zależności od wersji MasterDOSa), dodatkowo MasterDOS 1.5 pozwala na zapisanie etykiety dysku w bajtach 1441-1478, zakończonej znakiem EOL (155)
Informacja o sektorach dostępnych dla plików jest następująca:
- bajt o wartości 0 - sektor jest wolny
- bajt o wartości 1-252 - sektor należy do pliku wpisanego w katalogu na danej pozycji
- bajt o wartości 253 - sektor uszkodzony
Pliki są zapisywane zawsze w kolejności rosnących sektorów. Usunięcie pliku (w tym związane z nadpisaniem istniejącego pliku) nie wymaga odczytania wszystkich sektorów należących do pliku, w związku z czym jest dużo szybsze, niż w przypadku systemu plików Atari DOS.
Katalog
Każdy wpis w katalogu zajmuje 12 bajtów. Sektor katalogu zawiera 21 takich wpisów, co daje 252 bajty - ostatnie 4 bajty zawierają 255, a w ostatnim sektorze katalogu (sektor 21 na dyskietce) 254. 12 sektorów katalogu pozwala na wpisanie 252 plików (dla porównania standardowy format Atari DOS ma ograniczenie do 64 plików w katalogu). Struktura wpisu:
- bajty 0-7 - bity 0-6 zawierają podstawową nazwę pliku (kody ASCII), bity 7 kodują 8 najmniej znaczących bitów długości pliku (pierwszy bajt zawiera bit 7, drugi bit 6 itd.)
- bajty 8-10 - zawierają rozszerzenie nazwy pliku (kody ASCII)
- bajt 11 - 0 oznacza brak pliku (wpis nieużywany jeśli bajt 0 równy 0 lub plik usunięty w przeciwnym przypadku), 255 oznacza plik w katalogu głównym dysku
Podstawowa nazwa krótsza od 8 znaków i rozszerzenie krótsze od 3 znaków są dopełniane spacjami.
Struktura katalogu przewidywała możliwość używania podkatalogów. Informacje o wszystkich plikach i katalogach byłyby składowane niezmiennie w sektorach 10-21. Podkatalog byłby rozróżniany od pliku przez ustawienie bitu 7 w bajcie 8 wpisu w katalogu. Znając numer wpisu podkatalogu w katalogu (liczba od 1 do 252), można znaleźć odpowiadające mu wpisy (pliki lub podkatalogi) przez sprawdzenie bajtu 11 (wartość od 1 do 252 oznaczałaby wpis należący do określonego podkatalogu). Obsługa podkatalogów nie została jednak nigdy zaimplementowana w MasterDOS.