<?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_OS%2FA_Plus_4</id>
	<title>Format OS/A Plus 4 - 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_OS%2FA_Plus_4"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Format_OS/A_Plus_4&amp;action=history"/>
	<updated>2026-10-02T03:43:28Z</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_OS/A_Plus_4&amp;diff=1431&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_OS/A_Plus_4&amp;diff=1431&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]] zaimplementowany w [[OS/A Plus|OS/A+ v.4.1]]. Jest to w zasadzie implementacja formatu DOS-u 3.3 używanego na [http://en.wikipedia.org/wiki/Apple_II Apple II]. Format OS/A+ v.4.1 jako jedyny na ośmiobitowym Atari pozwala na nadawanie plikom długich nazw, ponad standardowe 8+3.&lt;br /&gt;
&lt;br /&gt;
== Cechy ogólne ==&lt;br /&gt;
&lt;br /&gt;
* Dopuszczalne wielkości sektorów: 128, 256 i 512 bajtów&lt;br /&gt;
* Maksymalna pojemność filesystemu: 65535 sektorów (16 i 32 MB)&lt;br /&gt;
* Maksymalna wielkość pliku: 65536 sektorów (16 i 32 MB)&lt;br /&gt;
* Maksymalna liczba plików na dysku: nieograniczona&lt;br /&gt;
* Struktura katalogowa: jednopoziomowa&lt;br /&gt;
* Maksymalna liczba plików w katalogu: nieograniczona&lt;br /&gt;
* Wielkość wpisu w katalogu: 35 bajtów&lt;br /&gt;
* Nazwa pliku: do 30 znaków&lt;br /&gt;
* Metoda linkowania plików: indywidualne mapy plików&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ść pojedyńcza ([[SD]]) i podwójna ([[DD]]). Jednostką alokacji jest pojedyńczy sektor fizyczny o wielkości 256 lub 512 bajtów, albo (gdy sektor ma 128 bajtów) klaster o wielkości 256 bajtów. W dalszej części tekstu ta jednostka alokacji nazywana będzie &amp;quot;sektorem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Sektor nr 360 ($168) jest zajęty na [[VTOC]], w sektorach 361-375 ($0169-$0177) znajduje się normalnie katalog dyskietki. W sektorach 1-2 jest program ładujący DOS, a sektory 3-7 są zarezerwowane. Początkowa pojemność dyskietki DD to 697 wolnych sektorów z ogólnej liczby 720.&lt;br /&gt;
&lt;br /&gt;
Na Apple II DOS do adresowania pliku używa dwubajtowych wartości opisujących fizyczne położenie sektora na dyskietce: pierwszy bajt jest numerem ścieżki, drugi numerem sektora na ścieżce. Na Atari używa się numerów sektorów logicznych, np. na dyskietce [[DD]] z zakresu od 1 do 720, bez względu na strukturę dyskietki (dyskietka może mieć 40 ścieżek po 18 sektorów, 20 po 36 lub 80 po 9 - dla DOS-u liczy się tylko sektor logiczny, np. nr 500, i obojętne jest, na której ścieżce wypada).&lt;br /&gt;
&lt;br /&gt;
Niemniej format Apple II DOS wymaga zapisywania adresów sektorów w wyżej wspomnianej postaci numeru ścieżki i numeru sektora na ścieżkę. W OS/A+ v.4.1 przyjęto więc, iż &amp;quot;ścieżka logiczna&amp;quot; dyskietki Atari liczy 256 sektorów. Ma to ten skutek, że w miejscach, gdzie w Apple II mamy adresy fizyczne sektorów, na Atari są ich adresy logiczne, jedynie zapisane w nietypowej kolejności: najpierw starszy bajt, potem młodszy.&lt;br /&gt;
&lt;br /&gt;
== VTOC ==&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 &amp;quot;nieużywany&amp;quot; o wartości $02.&lt;br /&gt;
|-&lt;br /&gt;
| $01-$02&lt;br /&gt;
| Zapisany w konwencji starszy/młodszy (!) numer pierwszego sektora katalogu.&lt;br /&gt;
|-&lt;br /&gt;
| $03&lt;br /&gt;
| Numer wersji DOS-u użytego do sformatowania tego dysku (na Atari zawsze $00).&lt;br /&gt;
|-&lt;br /&gt;
| $04-$05&lt;br /&gt;
| Słowo zarezerwowane o wartości $0000.&lt;br /&gt;
|-&lt;br /&gt;
| $06&lt;br /&gt;
| Numer dyskietki (na Apple II z zakresu 1-254, na Atari zawsze 0).&lt;br /&gt;
|-&lt;br /&gt;
| $07-$26&lt;br /&gt;
| 32 bajty zarezerwowane o wartości $00.&lt;br /&gt;
|-&lt;br /&gt;
| $27&lt;br /&gt;
| Liczba wpisów w jednym sektorze mapy plików: 122 dla sektorów 256-bajtowych i 244 dla sektorów 512-bajtowych (taką liczbę - $F4 - podaje oryginalna dokumentacja, jednak może to być błąd typograficzny, być może powinno być $FA, czyli 250).&lt;br /&gt;
|-&lt;br /&gt;
| $28-$2F&lt;br /&gt;
| 8 bajtów zarezerwowanych o wartości $00.&lt;br /&gt;
|-&lt;br /&gt;
| $30&lt;br /&gt;
| Apple II: numer ostatniej ścieżki gdzie są zajęte sektory. Atari: nieużywane, zawsze 0.&lt;br /&gt;
|-&lt;br /&gt;
| $31&lt;br /&gt;
| Apple II: kierunek alokacji ścieżek (1 lub -1). Atari: nieużywane, zawsze 0.&lt;br /&gt;
|-&lt;br /&gt;
| $32-$33&lt;br /&gt;
| 2 bajty zarezerwowane o wartości $00.&lt;br /&gt;
|-&lt;br /&gt;
| $34&lt;br /&gt;
| Liczba ścieżek na dyskietce (na Apple II 35, na Atari 0).&lt;br /&gt;
|-&lt;br /&gt;
| $35&lt;br /&gt;
| Liczba sektorów na ścieżkę (na Apple II 13 lub 16, na Atari 0).&lt;br /&gt;
|-&lt;br /&gt;
| $36-$37&lt;br /&gt;
| Wielkość sektora w bajtach (młodszy/starszy).&lt;br /&gt;
|-&lt;br /&gt;
| $38-...&lt;br /&gt;
| 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 $00, co oznacza, że z grupy sektorów 0-7 wszystkie są zajęte. Ostatni sektor dyskietki DD ma przypisany bit 7 bajtu nr 146 VTOC i jest oznaczony jako wolny.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Katalog ==&lt;br /&gt;
&lt;br /&gt;
Katalog zajmuje piętnaście sektorów począwszy od sektora, którego numer zapisany jest w drugim i trzecim bajcie VTOC. Normalnie pierwszym sektorem katalogu jest sektor 361 ($0169). Pierwsze 11 bajtów każdego sektora katalogu rezerwuje DOS na swoje potrzeby:&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 zarezerwowany o wartości $00.&lt;br /&gt;
|-&lt;br /&gt;
| $01-$02&lt;br /&gt;
| Numer następnego sektora katalogu (starszy/młodszy!).&lt;br /&gt;
|-&lt;br /&gt;
| $03-$0A&lt;br /&gt;
| Bajty zarezerwowane.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Za tym nagłówkiem sektora katalogu zaczynają się wpisy plików. Pojedyńczy wpis ma 35 bajtów długości, w jednym sektorze 256-bajtowym mieści się ich siedem, a w 512-bajtowym - czternaście. Strukturę wpisu 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-$01&lt;br /&gt;
| Numer pierwszego sektora mapy sektorów pliku (starszy/młodszy). Jeśli plik jest skasowany, oba bajty są wyzerowane (uniemożliwia to odzyskanie skasowanego zbioru).&lt;br /&gt;
|-&lt;br /&gt;
| $02&lt;br /&gt;
| Status (typ) pliku:&lt;br /&gt;
&lt;br /&gt;
* bit 7 = 1 - plik zabezpieczony&lt;br /&gt;
* bity 4-6 - &amp;#039;&amp;#039;file blocking factor&amp;#039;&amp;#039;, z zakresu od 0 do 7.&lt;br /&gt;
* bity 0-3 - typ pliku: na Atari zawsze $00.&lt;br /&gt;
&lt;br /&gt;
Na Atari typ pliku jest zawsze $00, natomiast na Apple II rozróżnia się następujące typy:&lt;br /&gt;
&lt;br /&gt;
* $00 - plik tekstowy&lt;br /&gt;
* $01 - plik INTEGER BASIC&lt;br /&gt;
* $02 - plik AppleSoft BASIC&lt;br /&gt;
* $04 - plik binarny&lt;br /&gt;
|-&lt;br /&gt;
| $03-$20&lt;br /&gt;
| Nazwa pliku dosunięta w lewo i dopełniona spacjami do 30 znaków. Wszystkie znaki nazwy (całe 30 bajtów) mają ustawiony bit 7 ([[Inverse video|inverse video]]). Spacje, przecinki, znaki EOL i zera nie mogą występować w nazwach plików.&lt;br /&gt;
|-&lt;br /&gt;
| $21-$22&lt;br /&gt;
| Wielkość pliku w sektorach (młodszy/starszy). Dokładna wielkość pliku ani liczba bajtów w ostatnim sektorze danych pliku &amp;#039;&amp;#039;&amp;#039;nie jest nigdzie zapisana&amp;#039;&amp;#039;&amp;#039; (!), a wobec tego odnalezienie końca pliku przed końcem sektora jest niemożliwe w OS/A+ 4.1.&lt;br /&gt;
&lt;br /&gt;
Na Apple II używa się do tego celu metody odpowiedniej dla typu pliku wykazanego w katalogu - pliki tekstowe zawierają znacznik EOF w postaci sekwencji znaków ASCII o wartościach $8D i $00 (ten pierwszy to EOL w Apple), natomiast pozostałe typy plików mają długość zapisaną w nagłówku.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mapy plików ==&lt;br /&gt;
&lt;br /&gt;
Podobnie jak w [[Format SpartaDOS|systemie plików SpartaDOS]] i [[Format AtariDOS XE|DOS XE]] ciągłość plików zapewniają mapy sektorów. Pierwszy sektor mapy wskazywany jest przez wpis katalogowy pliku. W tym sektorze pierwsze 12 bajtów jest zajęte przez DOS:&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 zarezerwowany o wartości $00.&lt;br /&gt;
|-&lt;br /&gt;
| $01-$02&lt;br /&gt;
| Numer następnego sektora mapy (starszy/młodszy!).&lt;br /&gt;
|-&lt;br /&gt;
| $03-$04&lt;br /&gt;
| Bajty zarezerwowane o wartości $00&lt;br /&gt;
|-&lt;br /&gt;
| $05-$06&lt;br /&gt;
| Numer (logiczny) pierwszego sektora pliku zapisanego w tym sektorze mapy (na Atari zawsze $0000).&lt;br /&gt;
|-&lt;br /&gt;
| $07-$0B&lt;br /&gt;
| Bajty zarezerwowane o wartości $00&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Od bajtu o offsecie $0C idą kolejno dwubajtowe numery &amp;#039;&amp;#039;bloków&amp;#039;&amp;#039; pliku zapisane w konwencji starszy/młodszy. O tym, czym jest blok, decyduje zapisany w katalogu (zob. wyżej) &amp;#039;&amp;#039;file blocking factor&amp;#039;&amp;#039;. Jeśli jest on równy zero, wtedy blok jest równy sektorowi fizycznemu dysku. Jeśli jest równy jeden, blok stanowi osiem fizycznych sektorów dysku, a jeśli 2 - szesnaście takowych.&lt;br /&gt;
&lt;br /&gt;
== Uwagi ==&lt;br /&gt;
&lt;br /&gt;
Odrębność metod linkowania plików i katalogów, a także fakt używania sektora lub klastra 256-bajtowego jako najmniejszej jednostki alokacji, może wskazywać na pokrewieństwo z późniejszym i doskonalszym [[Format AtariDOS XE|filesystemem DOS-u XE]].&lt;br /&gt;
&lt;br /&gt;
== Zobacz też ==&lt;br /&gt;
&lt;br /&gt;
* [[Formaty systemów plików]]&lt;br /&gt;
* [http://atariwiki.strotmann.de/xwiki/bin/view/APG/OSSAPlus4 Fragment instrukcji OS/A+ poświęcony systemowi plików w wersji 4]&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>