Format MasterDOS

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 16:03, 8 paź 2008
KMK (Dyskusja | wkład)
(wklejenie tu)
← Previous diff
Aktualna wersja
KMK (Dyskusja | wkład)
(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.
-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: Struktura systemu plików:
-* sektory 1-3 - boot sectors+ 
 +* 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
-== Boot sectors ==+== 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:
-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 * 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-$0dff.+ 
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 MasterDOSa), dodatkowo MasterDOS 1.5 pozwala na zapisanie etykiety dysku w bajtach 1441-1478, zakończonej znakiem EOL (155)+* 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

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.

Personal tools