Format AtariDOS 3
From Atariki
Wersja z dnia 02:55, 21 lut 2006 KMK (Dyskusja | wkład) (→Katalog) ← Previous diff |
Wersja z dnia 03:04, 21 lut 2006 KMK (Dyskusja | wkład) Next diff → |
||
Linia 14: | Linia 14: | ||
Na pliki więc przeznaczone jest 87k w [[SD]] lub 127k w [[ED]]. | Na pliki więc przeznaczone jest 87k w [[SD]] lub 127k w [[ED]]. | ||
- | === Katalog === | + | == 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 każdym sektorze katalogu pierwszy wpis jest zajęty przez DOS. Dlatego maksymalna liczba plików na dyskietce wynosi 56. 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]]. | + | 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. |
Strukturę pozostałych wpisów katalogu przedstawia tabelka: | Strukturę pozostałych wpisów katalogu przedstawia tabelka: | ||
Linia 42: | Linia 42: | ||
Plik otwarty do zapisu, lecz nie zamknięty, w ogóle nie poajawia 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. | Plik otwarty do zapisu, lecz nie zamknięty, w ogóle nie poajawia 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. | ||
- | === Mapa alokacji plików === | + | == Mapa alokacji plików == |
Mapa alokacji plików 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: | Mapa alokacji plików 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: | ||
Linia 51: | Linia 51: | ||
Każda inna wartość to numer następnej jednostki alokacji zajętej przez plik. | 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 0. Długość pliku to 3494 bajty. | ||
+ | |||
+ | 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]]. | Ogólnie format DOS 3.0 przypomina w założeniach [[format AtariDOS 4]]. | ||
[[Kategoria:Atari 8-bit]] | [[Kategoria:Atari 8-bit]] |
Wersja z dnia 03:04, 21 lut 2006
Format dyskietki zastosowany w Atari DOS 3.0 i przeznaczony do użycia ze stacją 1050.
Spis treści |
Jednostka alokacji
Jednostkę alokacji stanowi osiem sektoró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 jednostek alokacji.
Sektory (nie jednostki alokacji) 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-9 zajmuje DOS
- sektory 10-15 są puste
- 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.
Strukturę pozostałych wpisów katalogu przedstawia tabelka:
Offset | Opis |
$00 |
Bajt statusu:
|
$01-$08 | Nazwa pliku dopełniona spacjami. |
$09-$0B | Rozszerzenie nazwy pliku dopełnione spacjami. |
$0C | Liczba jednostek alokacji zajętych przez plik. |
$0D | Numer pierwszej jednostki alokacji zajętej przez plik. Numerowane są od zera. |
$0E-$0F | Wielkość pliku w bajtach. |
Plik otwarty do zapisu, lecz nie zamknięty, w ogóle nie poajawia 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.
Mapa alokacji plików
Mapa alokacji plików 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 0. Długość pliku to 3494 bajty.
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.