Format AtariDOS 1: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
Linia 41: Linia 41:
</table>
</table>


Struktura katalogu jest bardzo podobna do tej, którą mamy w [[Format AtariDOS 2|DOS 2.0]]. Jedyną liczącą się różnicą jest to, że DOS 2.0 ustawia zakładanym przez siebie plikom bit 2 statusu, co oznacza "plik założony przez DOS 2.0". Ma to znaczenie przy wymianie plików pomiędzy DOS 1.0 a DOS 2.0 - od biedy mogą one współistnieć na jednej dyskietce, aczkolwiek dostęp do plików DOS 2.0 spod DOS 1.0 jest nieco kłopotliwy (o czym niżej).
Struktura katalogu jest bardzo podobna do tej, którą mamy w [[Format AtariDOS 2|DOS 2.0]]. Jedyną liczącą się różnicą jest to, że DOS 2.0 ustawia zakładanym przez siebie plikom bit 2 statusu, co oznacza "plik założony przez DOS 2.0". Ma to znaczenie przy wymianie plików pomiędzy DOS 1.0 a DOS 2.0 - od biedy mogą one współistnieć na jednej dyskietce, aczkolwiek dostęp do plików DOS 2.0 spod DOS 1.0 jest w zasadzie niemożliwy.


== Mapowanie plików ==
== Mapowanie plików ==

Wersja z 3 mar 2006, 07:15

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:

OffsetOpis
$00

Bajt statusu:

  • 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 - niewykorzystany

Ogólnie status $40 oznacza plik istniejący, $60 plik zabezpieczony przed zapisem, a $80 plik skasowany.

$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.

Struktura katalogu jest bardzo podobna do tej, którą mamy w DOS 2.0. Jedyną liczącą się różnicą jest to, że DOS 2.0 ustawia zakładanym przez siebie plikom bit 2 statusu, co oznacza "plik założony przez DOS 2.0". Ma to znaczenie przy wymianie plików pomiędzy DOS 1.0 a DOS 2.0 - od biedy mogą one współistnieć na jednej dyskietce, aczkolwiek dostęp do plików DOS 2.0 spod DOS 1.0 jest w zasadzie niemożliwy.

Mapowanie plików