Format MasterDOS

From Atariki

Revision as of 16:03, 8 paź 2008; view current revision
←Older revision | Newer revision→
Jump to: navigation, search

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.

Personal tools