Format MasterDOS: Różnice pomiędzy wersjami
wklejenie tu |
dr. red. |
||
| Linia 1: | Linia 1: | ||
System plików pomysłu [[Fox]]a zastosowany w [[MasterDOS]]ie. | System plików pomysłu [[Fox]]a zastosowany w [[MasterDOS]]-ie. | ||
Obsługiwane są tylko dyskietki 360 KB. Po sformatowaniu dyskietki z systemem plików MasterDOS jest na niej 1419 wolnych sektorów po 256 bajtów. | |||
Struktura systemu plików: | Struktura systemu plików: | ||
* sektory 1-3 - | |||
* sektory 1-3 - sektory odczytu wstępnego | |||
* sektory 4-9 - tabela sektorów | * sektory 4-9 - tabela sektorów | ||
* sektory 10-21 - katalog | * sektory 10-21 - katalog | ||
* sektory 22-1440 - przeznaczone na pliki | * sektory 22-1440 - przeznaczone na pliki | ||
== | == Sektory odczytu wstępnego == | ||
W tych sektorach znajdują się części [[DOS]]-a, 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 DOS-a jest następujący: | |||
* wczytywane jest początkowe 128 bajtów sektora 1 i uruchamiany kod w nich zawarty | * 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) | * kod ten wczytuje sektory 1-3 (całe, po 256 bajtów) | ||
| Linia 20: | Linia 23: | ||
== Tabela sektorów == | == Tabela sektorów == | ||
Tabela sektorów zawiera informacje o położeniu plików i wolnych sektorów na całej dyskietce. | 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. | ||
Tabela zajmuje 6 sektorów, czyli 1536 bajtów i jest wczytywana zawsze w całości w obszar pamięci $0800-$ | |||
Struktura tabeli: | Struktura tabeli: | ||
* bajty 0-4 zawierają napis "MSDOS" w ASCII | * 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 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 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 | * bajty 1441-1535 zawierają 255 lub 254 (w zależności od wersji MasterDOS-a), 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: | Informacja o sektorach dostępnych dla plików jest następująca: | ||
* bajt o wartości 0 - sektor jest wolny | * 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 1-252 - sektor należy do pliku wpisanego w katalogu na danej pozycji | ||
| Linia 34: | Linia 39: | ||
Pliki są zapisywane zawsze w kolejności rosnących sektorów. | 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. | 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 == | == Katalog == | ||
Każdy wpis w katalogu zajmuje 12 bajtów. Sektor katalogu zawiera 21 takich wpisów, | Każdy wpis w katalogu zajmuje 12 bajtów. Sektor katalogu zawiera 21 takich wpisów, co daje 252 bajty - ostatnie 4 bajty zawierają wartości 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). | ||
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: | 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 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) | * 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 | * 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. | 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. | 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). | ||
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. | Obsługa podkatalogów nie została jednak nigdy zaimplementowana w MasterDOS. | ||
[[Kategoria:Atari 8-bit]] | [[Kategoria:Atari 8-bit]] | ||
Aktualna wersja z 22 paź 2013, 18:18
System plików pomysłu Foxa zastosowany w MasterDOS-ie.
Obsługiwane są tylko dyskietki 360 KB. Po sformatowaniu dyskietki z systemem plików MasterDOS jest na niej 1419 wolnych sektorów po 256 bajtów.
Struktura systemu plików:
- sektory 1-3 - sektory odczytu wstępnego
- sektory 4-9 - tabela sektorów
- sektory 10-21 - katalog
- sektory 22-1440 - przeznaczone na pliki
Sektory odczytu wstępnego
W tych sektorach znajdują się części DOS-a, 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 DOS-a 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 MasterDOS-a), 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ą wartości 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.