ATR
From Atariki
Wersja z dnia 11:48, 3 paź 2011 KMK (Dyskusja | wkład) (+ linki do dokumentacji) ← Previous diff |
Wersja z dnia 12:25, 3 paź 2011 KMK (Dyskusja | wkład) (→Nagłówek - wstępnie) Next diff → |
||
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> | <tr> | ||
<td width="10%" align="center"> | <td width="10%" align="center"> | ||
WORD | 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> | ||
+ | <td width="10%" align="center"> | ||
+ | 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 (wprowadzono w REV 3.00). | + | <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 (dodano w APE?) | + | <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 (dodano w APE?). | + | * 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 dnia 12:25, 3 paź 2011
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.
Spis treści |
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.