Format AtariDOS 1

From Atariki

Revision as of 05:15, 3 mar 2006; view current revision
←Older revision | Newer revision→
Jump to: navigation, search

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.

Spis treści

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 nieco kłopotliwy (o czym niżej).

Mapowanie plików

Personal tools