ATR: Różnice pomiędzy wersjami
+ linki do dokumentacji |
→Nagłówek: wstępnie |
||
| Linia 5: | Linia 5: | ||
== Nagłówek == | == Nagłówek == | ||
16 bajtów zgodnie z poniższą tabelką. | 16 bajtów zgodnie z poniższą tabelką. Istnieją dwie wersje, pierwsze siedem bajtów ma takie samo znaczenie w obu: | ||
=== Nagłówek SIO2PC === | |||
<table BORDER="1" cellpadding="5" WIDTH="100%" cellspacing="0"> | <table BORDER="1" cellpadding="5" WIDTH="100%" cellspacing="0"> | ||
| Linia 13: | Linia 15: | ||
<TH>Opis</TH> | <TH>Opis</TH> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td width="10%" align="center"> | <td width="10%" align="center"> | ||
| Linia 24: | Linia 27: | ||
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | |||
<td width="10%" align="center"> | |||
WORD | |||
</td> | |||
<td width="10%" align="center"> | |||
wPars | |||
</td> | |||
<td> | |||
<p>Rozmiar obrazu (bez nagłówka), liczony w [[paragraf]]ach: innymi słowy rozmiar w bajtach podzielić przez 16.</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td width="10%" align="center"> | |||
WORD | |||
</td> | |||
<td width="10%" align="center"> | |||
wSecSize | |||
</td> | |||
<td> | |||
<p>Rozmiar sektora w bajtach: $80, $0100 lub $0200.</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td width="10%" align="center"> | |||
WORD | |||
</td> | |||
<td width="10%" align="center"> | |||
wParsHigh | |||
</td> | |||
<td> | |||
<p>Najstarsze słowo rozmiaru w paragrafach (wprowadzono w REV 3.00).</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td width="10%" align="center"> | |||
BYTE | |||
</td> | |||
<td width="10%" align="center"> | |||
btFlags | |||
</td> | |||
<td> | |||
* bit 4 = 1 - ochrona przed zapisem | |||
* bit 5 = 1 - kopia z zabezpieczeniami ("bad sektorami") | |||
</td> | |||
</tr> | |||
<tr> | |||
<td width="10%" align="center"> | |||
WORD | |||
</td> | |||
<td width="10%" align="center"> | |||
wBad | |||
</td> | |||
<td> | |||
<p>Numer pierwszego "bad sektora" (jeśli bit 5 btFlags jest ustawiony).</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td width="10%" align="center"> | |||
DWORD | |||
</td> | |||
<td width="10%" align="center"> | |||
dwUnused | |||
</td> | |||
<td> | |||
<p>Cztery bajty nieużywane, równe $00.</p> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td width="10%" align="center"> | |||
BYTE | |||
</td> | |||
<td width="10%" align="center"> | |||
btUnused | |||
</td> | |||
<td> | |||
<p>Bajt nieużywany, równy $00.</p> | |||
</td> | |||
</tr> | |||
</table> | |||
=== Nagłówek APE === | |||
<table BORDER="1" cellpadding="5" WIDTH="100%" cellspacing="0"> | |||
<tr> | |||
<TH>Typ</TH> | |||
<TH>Nazwa</TH> | |||
<TH>Opis</TH> | |||
</tr> | |||
<tr> | <tr> | ||
<td width="10%" align="center"> | <td width="10%" align="center"> | ||
WORD | WORD | ||
</td> | |||
<td width="10%" align="center"> | |||
wMagic | |||
</td> | |||
<td> | |||
Kolejno wartości: $96 i $02 ($0296, suma 'NICKATARI') | |||
</td> | |||
</tr> | |||
<tr> | |||
<td width="10%" align="center"> | |||
WORD | |||
</td> | </td> | ||
<td width="10%" align="center"> | <td width="10%" align="center"> | ||
| Linia 36: | Linia 147: | ||
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td width="10%" align="center"> | <td width="10%" align="center"> | ||
| Linia 47: | Linia 159: | ||
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td width="10%" align="center"> | <td width="10%" align="center"> | ||
| Linia 55: | Linia 168: | ||
</td> | </td> | ||
<td> | <td> | ||
Najstarszy bajt rozmiaru w paragrafach | <p>Najstarszy bajt rozmiaru w paragrafach.</p> | ||
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td width="10%" align="center"> | <td width="10%" align="center"> | ||
| Linia 66: | Linia 180: | ||
</td> | </td> | ||
<td> | <td> | ||
32-bit CRC pliku ( | <p>32-bit CRC pliku. Wartość ta jest ważna jeśli bit 1 bajtu nr 15 (btFlags) jest ustawiony.</p> | ||
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td width="10%" align="center"> | <td width="10%" align="center"> | ||
| Linia 80: | Linia 195: | ||
</td> | </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td width="10%" align="center"> | <td width="10%" align="center"> | ||
| Linia 88: | Linia 204: | ||
</td> | </td> | ||
<td> | <td> | ||
* bit 0 = 1 - obraz tylko do odczytu | * bit 0 = 1 - obraz tylko do odczytu. | ||
* bit 1 = 1 - pole dwCRC zawiera ważną sumę kontrolną | |||
<p>Pozostałe bity są niewykorzystane i powinny być równe zero.</p> | |||
</td> | </td> | ||
</tr> | </tr> | ||
Wersja z 3 paź 2011, 14:25
Obraz dyskietki 8-bitowego Atari używany w emulatorach, APE itp. opracowany przez Nicka Kennedy'ego.
Istnieje też odmiana ATZ, jest to obraz dyskietki w formacie ATR skompresowany przy pomocy programu gzip. Format ATZ (i ATR też) jest obsługiwany przez emulatory Atari800 oraz Atari800Win PLus.
Nagłówek
16 bajtów zgodnie z poniższą tabelką. Istnieją dwie wersje, pierwsze siedem bajtów ma takie samo znaczenie w obu:
Nagłówek SIO2PC
| Typ | Nazwa | Opis |
|---|---|---|
|
WORD |
wMagic |
Kolejno wartości: $96 i $02 ($0296, suma 'NICKATARI') |
|
WORD |
wPars |
Rozmiar obrazu (bez nagłówka), liczony w paragrafach: innymi słowy rozmiar w bajtach podzielić przez 16. |
|
WORD |
wSecSize |
Rozmiar sektora w bajtach: $80, $0100 lub $0200. |
|
WORD |
wParsHigh |
Najstarsze słowo rozmiaru w paragrafach (wprowadzono w REV 3.00). |
|
BYTE |
btFlags |
|
|
WORD |
wBad |
Numer pierwszego "bad sektora" (jeśli bit 5 btFlags jest ustawiony). |
|
DWORD |
dwUnused |
Cztery bajty nieużywane, równe $00. |
|
BYTE |
btUnused |
Bajt nieużywany, równy $00. |
Nagłówek APE
| Typ | Nazwa | Opis |
|---|---|---|
|
WORD |
wMagic |
Kolejno wartości: $96 i $02 ($0296, suma 'NICKATARI') |
|
WORD |
wPars |
Rozmiar obrazu (bez nagłówka), liczony w paragrafach: innymi słowy rozmiar w bajtach podzielić przez 16. |
|
WORD |
wSecSize |
Rozmiar sektora w bajtach: $80, $0100 lub $0200. |
|
BYTE |
btParsHigh |
Najstarszy bajt rozmiaru w paragrafach. |
|
DWORD |
dwCRC |
32-bit CRC pliku. Wartość ta jest ważna jeśli bit 1 bajtu nr 15 (btFlags) jest ustawiony. |
|
DWORD |
dwUnused |
Niewykorzystane. |
|
BYTE |
btFlags |
Pozostałe bity są niewykorzystane i powinny być równe zero. |
Treść
Po nagłówku występują po kolei sektory danych.
Dla wielkości sektora równej 256 bajtów występują dwa sposoby zapisania pierwszych trzech sektorów obrazu dysku:
- jako obszaru 768 bajtów, w których "rzeczywiste" dane sektorów zajmują pierwsze 384 bajty, a druga połówka jest niewykorzystana
- jako trzech porcji danych po 128 bajtów
Ten drugi format uchodzi za prawidłowy, w tej sytuacji sektor nr 4 zapisywany jest w pliku o 384 bajty wcześniej niż wynikałoby to z prostego obliczenia wzoru:
((nr_sektora-1)*wielkość_sektora)+wielkość_nagłówka
Z kolei obrazy dla rozmiaru sektora równego 512 bajtów (DD 512) mają, podobnie jak te z sektorami 128-bajtowymi, wszystkie sektory tej samej wielkości - nie ma wyróżnionego obszaru odczytu wstępnego (zajmuje on zresztą tylko jeden sektor, pierwszy).
Narzędzia
- Do przygotowania pliku ATR na komputerze PC można użyć programu makeATR autorstwa Soudiego.
- Wtyczka dla programu Total Commander umożliwiająca operowanie na plikach ATR autorstwa Pajero Total Commander ATR Plugin
Zobacz też
Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.