Format AtariDOS 1
From Atariki
Wersja z dnia 04:58, 3 mar 2006 KMK (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 05:04, 3 mar 2006 KMK (Dyskusja | wkład) Next diff → |
||
Linia 1: | Linia 1: | ||
[[Formaty systemów plików|Format dyskietki]] używany przez [[DOS 1.0]] przeznaczony dla stacji [[810]]. FOrmat ten jest bardzo podobny do późniejszego formatu [[Format AtariDOS 2|DOS-u 2.0]]. | [[Formaty systemów plików|Format dyskietki]] używany przez [[DOS 1.0]] przeznaczony dla stacji [[810]]. FOrmat ten jest bardzo podobny do późniejszego formatu [[Format AtariDOS 2|DOS-u 2.0]]. | ||
- | == Struktura dyskietki == | + | == Struktura ogólna == |
Obsługiwana jest wyłącznie gęstość pojedyncza ([[SD]]), jednostką alokacji jest pojedyńczy sektor fizyczny o wielkości 128 bajtów. Sektor nr 360 ($168) jest zajęty na [[VTOC]], w sektorach 361-368 ($0169-$0170) znajduje się katalog dyskietki. W sektorze nr 1 jest program ładujący DOS, a sektor ostatni jest niewykorzystany. Początkowa pojemność dyskietki to 709 wolnych sektorów z ogólnej liczby 720. | Obsługiwana jest wyłącznie gęstość pojedyncza ([[SD]]), jednostką alokacji jest pojedyńczy sektor fizyczny o wielkości 128 bajtów. Sektor nr 360 ($168) jest zajęty na [[VTOC]], w sektorach 361-368 ($0169-$0170) znajduje się katalog dyskietki. W sektorze nr 1 jest program ładujący DOS, a sektor ostatni jest niewykorzystany. Początkowa pojemność dyskietki to 709 wolnych sektorów z ogólnej liczby 720. | ||
Linia 14: | Linia 14: | ||
Struktura VTOC, wyjąwszy znacznik formatu w pierwszym bajcie, jest identyczna jak w [[Format AtariDOS 2|DOS 2.0]]. | Struktura VTOC, wyjąwszy znacznik formatu w pierwszym bajcie, jest identyczna jak w [[Format AtariDOS 2|DOS 2.0]]. | ||
+ | |||
+ | == Katalog == | ||
+ | |||
+ | Katalog zajmuje osiem sektorów o numerach od 361 do 368 ($0169-$0170). Pojedyńczy wpis ma 16 bajtów długości, jego strukturę przedstawia tabelka: | ||
+ | |||
+ | <table border = 1 cellpadding = 5> | ||
+ | <tr><td><b>Offset</b></td><td><b>Opis</b></td></tr> | ||
+ | <tr><td>$00</td><td> | ||
+ | <p>Bajt statusu:</p> | ||
+ | * bit 7 = 1 - plik skasowany; pozostałe bity mają wtedy wartość 0 | ||
+ | * bit 6 = 1 - plik istnieje; stany bitów 6 i 7 sa zawsze przeciwne | ||
+ | * bit 5 = 1 - plik jest zabezpieczony przed zapisem lub skasowaniem | ||
+ | * bit 4 - niewykorzystany | ||
+ | * bit 3 - niewykorzystany | ||
+ | * bit 2 - niewykorzystany | ||
+ | * bit 1 - niewykorzystany | ||
+ | * bit 0 = 1 - plik jest otwarty do zapisu | ||
+ | </td></tr> | ||
+ | <tr><td>$01-$02</td><td> | ||
+ | <p>Wielkość pliku w sektorach. Co ciekawe, DOS 1.0 bierze pod uwagę tylko młodszy bajt tej liczby przy wyświetlaniu katalogu, a więc plik o wielkości 256 sektorów będzie miał w katalogu wielkość "000". Jest to zapewne błąd w kodzie DOS-u.</p> | ||
+ | </td></tr> | ||
+ | <tr><td>$03-$04</td><td><p>Numer pierwszego sektora zajętego przez plik.</p></td></tr> | ||
+ | <tr><td>$05-$0C</td><td><p>Nazwa pliku dopełniona spacjami.</p></td></tr> | ||
+ | <tr><td>$0D-$0F</td><td><p>Rozszerzenie nazwy pliku dopełnione spacjami.</p></td></tr> | ||
+ | </table> | ||
[[Kategoria:Atari 8-bit]] | [[Kategoria:Atari 8-bit]] |
Wersja z dnia 05:04, 3 mar 2006
Format dyskietki używany przez DOS 1.0 przeznaczony dla stacji 810. FOrmat ten jest bardzo podobny do późniejszego formatu DOS-u 2.0.
Struktura ogólna
Obsługiwana jest wyłącznie gęstość pojedyncza (SD), jednostką alokacji jest pojedyńczy sektor fizyczny o wielkości 128 bajtów. Sektor nr 360 ($168) jest zajęty na VTOC, w sektorach 361-368 ($0169-$0170) znajduje się katalog dyskietki. W sektorze nr 1 jest program ładujący DOS, a sektor ostatni jest niewykorzystany. Początkowa pojemność dyskietki to 709 wolnych sektorów z ogólnej liczby 720.
VTOC
Pierwszy bajt VTOC zajmuje numer wersji formatu dyskietki, jest to $01. Dwa dalsze bajty to zapisana w konwencji młodszy/starszy początkowa liczba wolnych sektorów dyskietki, czyli maksymalna liczba sektorów możliwych do wykorzystania na pliki ($02C5 = 709). Dwa kolejne bajty to bieżąca liczba wolnych sektorów.
Bajty 5-9 VTOC są nieużywane. Od bajtu 10 do 99 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 $3F, co oznacza, że z grupy sektorów 0-7 dwa pierwsze (0 i 1) są zajęte, a reszta (2-7) wolna. Ostatni sektor dyskietki ma przypisany bit 7 bajtu nr 100 VTOC i jest oznaczony jako zajęty.
Struktura VTOC, wyjąwszy znacznik formatu w pierwszym bajcie, jest identyczna jak w DOS 2.0.
Katalog
Katalog zajmuje osiem sektorów o numerach od 361 do 368 ($0169-$0170). Pojedyńczy wpis ma 16 bajtów długości, jego strukturę przedstawia tabelka:
Offset | Opis |
$00 |
Bajt statusu:
|
$01-$02 |
Wielkość pliku w sektorach. Co ciekawe, DOS 1.0 bierze pod uwagę tylko młodszy bajt tej liczby przy wyświetlaniu katalogu, a więc plik o wielkości 256 sektorów będzie miał w katalogu wielkość "000". Jest to zapewne błąd w kodzie DOS-u. |
$03-$04 | Numer pierwszego sektora zajętego przez plik. |
$05-$0C | Nazwa pliku dopełniona spacjami. |
$0D-$0F | Rozszerzenie nazwy pliku dopełnione spacjami. |