<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=Format_MyDOS</id>
	<title>Format MyDOS - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=Format_MyDOS"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Format_MyDOS&amp;action=history"/>
	<updated>2026-10-02T10:07:57Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=Format_MyDOS&amp;diff=1430&amp;oldid=prev</id>
		<title>imported&gt;Atariki recovery: Reconstructed from archived HTML; see provenance manifest</title>
		<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Format_MyDOS&amp;diff=1430&amp;oldid=prev"/>
		<updated>2026-10-01T08:51:48Z</updated>

		<summary type="html">&lt;p&gt;Reconstructed from archived HTML; see provenance manifest&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Formaty systemów plików|Format dyskietki]] używany przez [[MyDOS]] jest rozwinięciem wcześniejszego formatu [[Format AtariDOS 2|DOS-u 2.0]]. Modyfikacje mają na celu zwiększenie maksymalnej pojemności dysku oraz wprowadzenie podkatalogów.&lt;br /&gt;
&lt;br /&gt;
== Cechy ogólne ==&lt;br /&gt;
&lt;br /&gt;
* Dopuszczalne wielkości sektorów: 128 i 256 bajtów&lt;br /&gt;
* Maksymalna pojemność filesystemu: 65535 sektorów (16 MB)&lt;br /&gt;
* Maksymalna wielkość pliku: 15,81 MB&lt;br /&gt;
* Maksymalna liczba plików na dysku: nieograniczona&lt;br /&gt;
* Struktura katalogowa: hierarchiczna&lt;br /&gt;
* Maksymalna liczba plików w katalogu: 64&lt;br /&gt;
* Wielkość wpisu w katalogu: 16 bajtów&lt;br /&gt;
* Nazwa pliku: 8+3&lt;br /&gt;
* Metoda linkowania plików: 3-bajtowy link w sektorze danych&lt;br /&gt;
* Metoda alokacji sektorów: mapa bitowa&lt;br /&gt;
&lt;br /&gt;
== Struktura ogólna ==&lt;br /&gt;
&lt;br /&gt;
Obsługiwana jest gęstość pojedyncza, rozszerzona i podwójna ([[SD]], [[ED]] i [[DD]]). Jednostką alokacji jest pojedynczy sektor fizyczny o wielkości 128 lub 256 bajtów. W sektorze nr 360 ($168) zaczyna się [[VTOC]], w sektorach 361-368 ($0169-$0170) znajduje się katalog główny dyskietki. W sektorach 1-3 jest program ładujący DOS. Dyski zainicjalizowane przez MyDOS mają w bajcie 0 sektora nr 1 kod ASCII litery M.&lt;br /&gt;
Początkowa pojemność dyskietki DD to 708 wolnych sektorów z ogólnej liczby 720.&lt;br /&gt;
&lt;br /&gt;
== VTOC ==&lt;br /&gt;
&lt;br /&gt;
W przeciwieństwie do sytuacji, jaką mamy w DOS 2.0, VTOC może zajmować ponad jeden sektor. Dodatkowe sektory VTOC zajmowane są licząc wstecz od sektora 360, przy czym na dyskach w SD, gdy liczba sektorów VTOC jest większa od 1, jest ona zawsze parzysta. Zatem, jeśli VTOC nie mieści się w pierwszym sektorze, to jako następny zostanie wykorzystany sektor nr 359. Dla jeszcze większych dysków w DD kolejnym zajętym sektorem będzie sektor nr 358, natomiast w SD będą to sektory nr 358 i 357.&lt;br /&gt;
&lt;br /&gt;
Bajt 0 sektora nr 360 definiuje zarówno sposób organizacji VTOC, jak i format trzybajtowego [[#Mapowanie plików|odnośnika]], znajdującego się na końcu każdego sektora danych. Wartość 2 oznacza, że cały VTOC mieści się w jednym sektorze i format odnośnika jest zgodny z DOS 2.0. Wartość większa od 2 oznacza liczbę 256-bajtowych bloków zajętych przez VTOC, dodać 2. Oznacza ona również, że odnośniki pozbawione są 6-bitowego pola z numerem pliku, a pole zawierające numer kolejnego sektora zostało rozszerzone do 16-bitów.&lt;br /&gt;
&lt;br /&gt;
Dwa dalsze bajty VTOC 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 (np. $02C4 = 708). Dwa kolejne bajty to bieżąca liczba wolnych sektorów.&lt;br /&gt;
&lt;br /&gt;
Bajty 5-9 VTOC są nieużywane. Od bajtu 10 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 &amp;#039;n&amp;#039;, to bit 6 odpowiada za sektor &amp;#039;n+1&amp;#039;, bit 5 za &amp;#039;n+2&amp;#039; itd.&lt;br /&gt;
&lt;br /&gt;
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 $0F, co oznacza, że z grupy sektorów 0-7 cztery pierwsze (0-3) są zajęte, a reszta (4-7) wolna. Ostatni sektor dyskietki DD ma przypisany bit 7 bajtu nr 100 VTOC i jest oznaczony jako wolny.&lt;br /&gt;
&lt;br /&gt;
== Katalog ==&lt;br /&gt;
&lt;br /&gt;
Katalog główny zajmuje osiem sektorów o numerach od 361 do 368 ($0169-$0170). Pojedynczy wpis ma 16 bajtów długości, jego strukturę przedstawia tabelka:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Offset&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Opis&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| $00&lt;br /&gt;
| Bajt statusu:&lt;br /&gt;
&lt;br /&gt;
* bit 7 = 1 - plik lub katalog skasowany (pozostałe bity mają wtedy wartość 0),&lt;br /&gt;
* bit 6 = 1 - plik istniejący (bit 4 ma wtedy wartość 0),&lt;br /&gt;
* bit 5 = 1 - plik lub katalog zabezpieczony przed zapisem lub skasowaniem,&lt;br /&gt;
* bit 4 = 1 - katalog istniejący (bity 6, 2 i 1 mają wtedy wartość 0),&lt;br /&gt;
* bit 3 - niewykorzystany, MyDOS wpisuje tu 0,&lt;br /&gt;
* bit 2 = 1 - sektory danych pliku zawierają 16-bitowe dowiązania do następnego sektora,&lt;br /&gt;
* bit 1 = 1 - znaczenie nieustalone, dla plików ustawiany na 1&lt;br /&gt;
* bit 0 = 1 - plik jest otwarty do zapisu&lt;br /&gt;
&lt;br /&gt;
Ogólnie status $42 lub $46 oznacza plik istniejący, $62 lub $66 - plik tylko do odczytu, $10 - katalog, $80 - plik lub katalog skasowany itd.&lt;br /&gt;
|-&lt;br /&gt;
| $01-$02&lt;br /&gt;
| Liczba sektorów danych zajętych przez plik.&lt;br /&gt;
|-&lt;br /&gt;
| $03-$04&lt;br /&gt;
| Numer pierwszego sektora danych zajętego przez plik.&lt;br /&gt;
|-&lt;br /&gt;
| $05-$0C&lt;br /&gt;
| Nazwa pliku dopełniona spacjami.&lt;br /&gt;
|-&lt;br /&gt;
| $0D-$0F&lt;br /&gt;
| Rozszerzenie nazwy pliku dopełnione spacjami.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nazwa i rozszerzenie nazwy pliku mogą zawierać wielkie litery, cyfry, oraz znaki &amp;quot;@&amp;quot; i &amp;quot;_&amp;quot;, przy czym pierwszy znak nazwy nie może być cyfrą.&lt;br /&gt;
&lt;br /&gt;
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 MyDOS ustawia zakładanym przez siebie plikom bit 2 statusu.&lt;br /&gt;
&lt;br /&gt;
W podwójnej gęstości wpisy katalogowe zajmują tylko pierwszą połówkę każdego sektora katalogu, reszta natomiast pozostaje pusta.&lt;br /&gt;
&lt;br /&gt;
Struktura podkatalogu jest identyczna jak struktura katalogu głównego.&lt;br /&gt;
&lt;br /&gt;
== Mapowanie plików ==&lt;br /&gt;
&lt;br /&gt;
Ciągłość plików oraz dokładne dane o ich długości (katalog zawiera tylko wielkość pliku w sektorach) zapewnia &amp;quot;link&amp;quot; umieszczony w trzech ostatnich bajtach każdego sektora danych. Wynika z tego, że w każdym sektorze dostępne jest tylko 125 (w [[SD]]) lub 253 (w [[DD]]) bajty na dane pliku, trzy pozostałe natomiast zajmuje DOS.&lt;br /&gt;
&lt;br /&gt;
Format linku zależy od wartości pierwszego bajtu [[#VTOC|VTOC]]. Gdy jest on równy $02, struktura link jest identyczna jak w [[Format AtariDOS 2#Mapowanie plików|DOS-ie 2.0]]. Dla wartości większych od $02, format linku wygląda następująco:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;+---------------+---------------+---------------+&lt;br /&gt;
|       0       |       1       |       2       |&lt;br /&gt;
+---------------+---------------+---------------+&lt;br /&gt;
|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|&lt;br /&gt;
+---------------+---------------+---------------+&lt;br /&gt;
|        następny sektor        |  wypełnienie  |&lt;br /&gt;
+-------------------------------+---------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 16 pierwszych bitów to &amp;#039;&amp;#039;&amp;#039;numer następnego sektora pliku&amp;#039;&amp;#039;&amp;#039;; w ostatnim sektorze pliku jest on równy zero. Kolejność bajtów jest odwrotna od ogólnie przyjętej (tj. bajt nr 0 jest &amp;quot;starszy&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Ponieważ jedyna informacja na temat rozmieszczenia pliku znajduje się w przypisanych doń sektorach, rozmieszczenie sektorów pliku na dyskietce nigdy nie jest znane bez odczytania całości pliku aż do końca - co jest konieczne nawet przy jego kasowaniu. Z kolei fakt, że wskaźnik jest skierowany tylko w jedną stronę, tj. na następny sektor, powoduje, iż znalezienie sektora poprzedniego również wymaga odczytania pliku od początku; o funkcji seek() i swobodnym dostępie do danych pliku można więc przy takim filesystemie od razu zapomnieć&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Wypełnienie&amp;#039;&amp;#039;&amp;#039;: ilość bajtów danych w sektorze. Pełny sektor danych ma tu wartość $7D (125) w [[SD]] i $FD (253) w [[DD]]. Liczba ta ma znaczenie tylko w ostatnim sektorze pliku, gdzie pozwala znaleźć koniec danych.&lt;br /&gt;
&lt;br /&gt;
== Zobacz też ==&lt;br /&gt;
&lt;br /&gt;
* [[Formaty systemów plików]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Atari 8-bit]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Atariki recovery</name></author>
	</entry>
</feed>