Format AtariDOS 3
From Atariki
| Wersja z dnia 01:35, 5 lut 2022 KMK (Dyskusja | wkład) (→Cechy ogólne) ← Previous diff  | 
				Wersja z dnia 01:36, 5 lut 2022 KMK (Dyskusja | wkład) (→Katalog - j.w.) Next diff →  | 
			||
| Linia 43: | Linia 43: | ||
| * bit 2 - niewykorzystany | * bit 2 - niewykorzystany | ||
| * bit 1 = 1 - plik zabezpieczony przed zapisem lub skasowaniem. | * bit 1 = 1 - plik zabezpieczony przed zapisem lub skasowaniem. | ||
| - | * bit 0 - niewykorzystany | + | * bit 0 = 1 - plik jest otwarty do zapisu | 
| <p>Ogólnie status pliku istniejącego to $C0, zabezpieczonego $C2, a skasowanego $80.</p> | <p>Ogólnie status pliku istniejącego to $C0, zabezpieczonego $C2, a skasowanego $80.</p> | ||
| </td></tr> | </td></tr> | ||
| Linia 53: | Linia 53: | ||
| </table> | </table> | ||
| - | Plik otwarty do zapisu, lecz nie zamknięty, w ogóle nie pojawia się w katalogu. Po zamknięciu natomiast DOS przydziela każdemu plikowi - również takiemu o zerowej długości - co najmniej jedną jednostkę alokacji zaznaczywszy to odpowiednio tak w katalogu jak i mapie dysku. | + | Po zamknięciu DOS przydziela każdemu plikowi - również takiemu o zerowej długości - co najmniej jedną jednostkę alokacji zaznaczywszy to odpowiednio tak w katalogu jak i mapie dysku. | 
| == Mapa alokacji plików == | == Mapa alokacji plików == | ||
Wersja z dnia 01:36, 5 lut 2022
Format dyskietki zastosowany w DOS 3.0 i przeznaczony do użycia ze stacją 1050.
Spis treści | 
Cechy ogólne
- Dopuszczalne wielkości sektorów: 128 bajtów
 - Maksymalna pojemność systemu plików: 254 bloki (254 KB)
 - Maksymalna wielkość pliku: 255 bloków (255 KB)
 - Maksymalna liczba plików na dysku: 63
 - Struktura katalogowa: jednopoziomowa
 - Maksymalna liczba plików w katalogu: 63
 - Wielkość wpisu w katalogu: 16 bajtów
 - Nazwa pliku: 8+3
 - Metoda linkowania plików: globalna mapa alokacji plików
 - Metoda alokacji sektorów: globalna mapa alokacji plików
 
Jednostka alokacji
Jednostkę alokacji stanowi "blok" liczący osiem sektorów po 128 bajtów, czyli 1k w SD i ED (DOS 3.0 nie obsługuje nic więcej). Całkowita pojemność dyskietki w SD i ED wynosi więc odpowiednio 90 i 130 bloków.
Sektory (nie bloki) 1-24 są zarezerwowane do użytku systemu, reszta dyskietki jest przeznaczona na pliki. Użycie sektorów systemowych jest następujące:
- sektory 1-15 zajmuje DOS
 - sektory 16-23 zajmuje katalog
 - sektor 24 zajmuje mapa alokacji plików
 
Na pliki więc przeznaczone jest 87k w SD lub 127k w ED.
Katalog
Pojedyńczy wpis katalogowy zajmuje 16 bajtów. Ponieważ katalog zajmuje 8 sektorów, na dyskietce można by było umieścić do 64 plików, gdyby nie fakt, że w pierwszym sektorze katalogu pierwszy wpis jest zajęty przez DOS. Dlatego maksymalna liczba plików na dyskietce wynosi 63. Ten wpis systemowy składa się z 14 zer, a dwa ostatnie bajty mają wartość odpowiednio $57 $A5 dla SD i $7F $A5 dla ED - jest to znacznik formatu (w obu wypadkach pierwsza liczba oznacza całkowitą pojemność obszaru plików dyskietki liczoną w kilobajtach).
Strukturę pozostałych wpisów katalogu przedstawia tabelka:
| Offset | Opis | 
| $00 | 
 Bajt statusu: 
 Ogólnie status pliku istniejącego to $C0, zabezpieczonego $C2, a skasowanego $80.  | 
| $01-$08 | Nazwa pliku dopełniona spacjami.  | 
| $09-$0B | Rozszerzenie nazwy pliku dopełnione spacjami.  | 
| $0C | Liczba jednostek alokacji zajętych przez plik. Plik może zatem w teorii zajmować maksymalnie 255 jednostek alokacji (kilobajtów).  | 
| $0D | Numer pierwszej jednostki alokacji zajętej przez plik. Numerowane są od zera.  | 
| $0E-$0F | Wielkość pliku w bajtach. To pole ogranicza maksymalną wielkość pliku do 65535 bajtów.  | 
Po zamknięciu DOS przydziela każdemu plikowi - również takiemu o zerowej długości - co najmniej jedną jednostkę alokacji zaznaczywszy to odpowiednio tak w katalogu jak i mapie dysku.
Mapa alokacji plików
Mapa alokacji plików (VTOC) znajduje się w sektorze nr 24. Każdy jej bajt odpowiada jednej jednostce alokacji obszaru plików, np. bajt o offsecie $00 odpowiada pierwszej jednostce alokacji, która zajmuje sektory 25-32 (i ma numer 0). Bajty te mogą przyjmować następujące wartości:
- $FD - koniec pliku (ostatnia jednostka alokacji zajęta przez plik)
 - $FE - obszar wolny
 - $FF - obszar zarezerwowany (jednostki alokacji wadliwe, nie istniejące itp.)
 
Każda inna wartość to numer następnej jednostki alokacji zajętej przez plik.
Przykład
- Wpis katalogowy pliku FMS.SYS wygląda następująco:
 
$C0 FMS_____SYS $04 $00 $A6 $0D
Dwa najstarsze bity statusu ustawione na 1 informują, że na tej pozycji katalogu jest wpis oraz że związany z nim plik nie jest skasowany. Plik ten zajmuje na dyskietce $04 jednostki alokacji począwszy od jednostki o numerze $00. Długość pliku to 3494 bajty ($0DA6).
- W mapie alokacji plików jednostka alokacji nr 0 to bajt o takimże offsecie ($00). Widzimy tam, co następuje:
 
Offsety: $00 $01 $02 $03 Wartości: $01 $02 $03 $FD
Plik zajmuje jednostki alokacji o kolejnych numerach 0, 1, 2 i 3. Ilość bajtów znajdujących się w ostatnim sektorze (422) może być łatwo wyliczona z całkowitej wielkości pliku podanej w katalogu.
Ogólnie format DOS 3.0 przypomina w założeniach format AtariDOS 4.
