Format OS/A Plus 4
From Atariki
Wersja z dnia 00:50, 4 paź 2006 KMK (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 18:19, 6 paź 2006 KMK (Dyskusja | wkład) Next diff → |
||
Linia 3: | Linia 3: | ||
== Cechy ogólne == | == Cechy ogólne == | ||
- | * Dopuszczalne wielkości sektorów: 256 bajtów | + | * Dopuszczalne wielkości sektorów: 128, 256 i 512 bajtów |
- | * Maksymalna pojemność filesystemu: 65535 sektorów (16 MB) | + | * Maksymalna pojemność filesystemu: 65535 sektorów (8, 16 i 32 MB) |
* Maksymalna wielkość pliku: 16 MB | * Maksymalna wielkość pliku: 16 MB | ||
* Maksymalna liczba plików na dysku: nieograniczona | * Maksymalna liczba plików na dysku: nieograniczona | ||
Linia 15: | Linia 15: | ||
== Struktura ogólna == | == Struktura ogólna == | ||
- | Obsługiwana jest wyłącznie gęstość podwójna ([[DD]]). Jednostką alokacji jest pojedyńczy sektor fizyczny o wielkości 256 bajtów. Sektor nr 360 ($168) jest zajęty na [[VTOC]], w sektorach 361-375 ($0169-$0177) znajduje się normalnie katalog dyskietki. W sektorach 1-2 jest program ładujący DOS, a sektory 3-7 są zarezerwowane. Początkowa pojemność dyskietki DD to 697 wolnych sektorów z ogólnej liczby 720. | + | Obsługiwana jest gęstość pojedyńcza ([[SD]]) i podwójna ([[DD]]). Jednostką alokacji jest pojedyńczy sektor fizyczny o wielkości 256 lub 512 bajtów, albo (gdy sektor ma 128 bajtów) klaster o wielkości 256 bajtów. Klaster nr 360 ($168) jest zajęty na [[VTOC]], w sektorach 361-375 ($0169-$0177) znajduje się normalnie katalog dyskietki. W sektorach 1-2 jest program ładujący DOS, a sektory 3-7 są zarezerwowane. Początkowa pojemność dyskietki DD to 697 wolnych sektorów z ogólnej liczby 720. |
== VTOC == | == VTOC == | ||
- | Pierwszy bajt VTOC zajmuje numer wersji formatu dyskietki, jest to $02. Dwa dalsze bajty to zapisany w konwencji starszy/młodszy (!) numer pierwszego sektora katalogu (a więc VTOC może teoretycznie zająć ponad 1 sektor). Dalej idzie 36 zer, następnie bajt o nieznanym znaczeniu i wartości $7A (może znacznik formatu), dalej znowu 15 zer, a potem $01. | + | Pierwszy bajt VTOC zajmuje numer wersji formatu dyskietki, jest to $02. Dwa dalsze bajty to zapisany w konwencji starszy/młodszy (!) numer pierwszego sektora katalogu (a więc VTOC może teoretycznie zająć ponad 1 sektor). Dalej idzie 36 zer, następnie bajt o wartości $7A (122, dla sektorów 128 i 256-bajtowych) lub $F4 (244, dla sektorów 512-bajtowych) oznaczający liczbę wpisów w jednym sektorze mapy plików. Dalej znowu 15 zer, a potem $01 (byc może numer wersji formatu). |
Od bajtu 56 ($38) rozciąga się mapa bitowa dyskietki. Każdy bajt opisuje stan ośmiu kolejnych sektorów, przy czym bit ustawiony oznacza sektor wolny, a bit skasowany - sektor zajęty. Bity przypisywane są od lewej do prawej sektorom o rosnących numerach, a więc jeśli bit 7 bajtu opisuje stan sektora numer 'n', to bit 6 odpowiada za sektor 'n+1', bit 5 za 'n+2' itd. | Od bajtu 56 ($38) rozciąga się mapa bitowa dyskietki. Każdy bajt opisuje stan ośmiu kolejnych sektorów, przy czym bit ustawiony oznacza sektor wolny, a bit skasowany - sektor zajęty. Bity przypisywane są od lewej do prawej sektorom o rosnących numerach, a więc jeśli bit 7 bajtu opisuje stan sektora numer 'n', to bit 6 odpowiada za sektor 'n+1', bit 5 za 'n+2' itd. |
Wersja z dnia 18:19, 6 paź 2006
Format dyskietki zaimplementowany w OS/A+ v.4.1. Jako jedyny na ośmiobitowym Atari pozwala na nadawanie plikom długich nazw, ponad standardowe 8+3.
Spis treści |
Cechy ogólne
- Dopuszczalne wielkości sektorów: 128, 256 i 512 bajtów
- Maksymalna pojemność filesystemu: 65535 sektorów (8, 16 i 32 MB)
- Maksymalna wielkość pliku: 16 MB
- Maksymalna liczba plików na dysku: nieograniczona
- Struktura katalogowa: jednopoziomowa
- Maksymalna liczba plików w katalogu: nieograniczona
- Nazwa pliku: do 30 znaków
- Metoda linkowania plików: indywidualne mapy plików
- Metoda alokacji sektorów: mapa bitowa
Struktura ogólna
Obsługiwana jest gęstość pojedyńcza (SD) i podwójna (DD). Jednostką alokacji jest pojedyńczy sektor fizyczny o wielkości 256 lub 512 bajtów, albo (gdy sektor ma 128 bajtów) klaster o wielkości 256 bajtów. Klaster nr 360 ($168) jest zajęty na VTOC, w sektorach 361-375 ($0169-$0177) znajduje się normalnie katalog dyskietki. W sektorach 1-2 jest program ładujący DOS, a sektory 3-7 są zarezerwowane. Początkowa pojemność dyskietki DD to 697 wolnych sektorów z ogólnej liczby 720.
VTOC
Pierwszy bajt VTOC zajmuje numer wersji formatu dyskietki, jest to $02. Dwa dalsze bajty to zapisany w konwencji starszy/młodszy (!) numer pierwszego sektora katalogu (a więc VTOC może teoretycznie zająć ponad 1 sektor). Dalej idzie 36 zer, następnie bajt o wartości $7A (122, dla sektorów 128 i 256-bajtowych) lub $F4 (244, dla sektorów 512-bajtowych) oznaczający liczbę wpisów w jednym sektorze mapy plików. Dalej znowu 15 zer, a potem $01 (byc może numer wersji formatu).
Od bajtu 56 ($38) rozciąga się mapa bitowa dyskietki. Każdy bajt opisuje stan ośmiu kolejnych sektorów, przy czym bit ustawiony oznacza sektor wolny, a bit skasowany - sektor zajęty. Bity przypisywane są od lewej do prawej sektorom o rosnących numerach, a więc jeśli bit 7 bajtu opisuje stan sektora numer 'n', to bit 6 odpowiada za sektor 'n+1', bit 5 za 'n+2' itd.
Pierwszy bajt mapy opisuje stan sektorów o numerach od 0 do 7 (pomimo że sektor 0 nie istnieje). Na pustej dyskietce jego wartość to $00, co oznacza, że z grupy sektorów 0-7 wszystkie są zajęte. Ostatni sektor dyskietki DD ma przypisany bit 7 bajtu nr 146 VTOC i jest oznaczony jako wolny.
Katalog
Katalog zajmuje piętnaście sektorów począwszy od sektora, którego numer zapisany jest w drugim i trzecim bajcie VTOC. Normalnie pierwszym sektorem katalogu jest sektor 361 ($0169). Pierwsze 11 bajtów każdego sektora katalogu rezerwuje DOS na swoje potrzeby: offset 1-2 to numer następnego sektora katalogu zapisany w konwencji starszy/młodszy (podobnie jak we VTOC) - w ostatnim sektorze katalogu jest tu zero. Znaczenie pozostałych bajtów jest nieznane - mają one zawsze wartość $00 poza tym.
Za tym nagłówkiem sektora katalogu zaczynają się wpisy plików. Pojedyńczy wpis ma 35 bajtów długości, w jednym sektorze mieści się ich siedem. Strukturę wpisu przedstawia tabelka:
Offset | Opis |
$00-$01 |
Numer pierwszego sektora mapy sektorów pliku (starszy/młodszy). Jeśli plik jest skasowany, oba bajty są wyzerowane (uniemożliwia to odzyskanie skasowanego zbioru). |
$02 |
Bajt statusu:
Pozostałe bity są zawsze wyzerowane. |
$03-$20 |
Nazwa pliku. Wszystkie znaki mają ustawiony bit 7 (inverse video). Spacje są niedopuszczalne. |
$21-$22 | Wielkość pliku w sektorach (młodszy/starszy). Dokładna wielkość pliku ani liczba bajtów w ostatnim sektorze danych pliku nie jest nigdzie zapisana (!). |
Mapy plików
Podobnie jak w systemie plików SpartaDOS i DOS XE ciągłość plików zapewniają mapy sektorów. Pierwszy sektor mapy wskazywany jest przez wpis katalogowy pliku. W tym sektorze pierwsze 12 bajtów jest zajęte przez DOS, z czego dwa bajty o numerach 1 i 2 zawierają numer następnego sektora mapy zapisany w konwencji starszy/młodszy, przy czym ostatni sektor mapy ma tu zero. Pozostałe 10 bajtów jest zawsze wyzerowane i nie wiadomo do czego służy.
Od bajtu o offsecie $0C idą kolejno dwubajtowe numery sektorów pliku zapisane w konwencji starszy/młodszy.
Uwagi
Odrębność metod linkowania plików i katalogów może wskazywać na pokrewieństwo z późniejszym i doskonalszym filesystemem DOS-u XE.