Je nutno rozlišit, zda původní disketa byla bootovatelná, nebo nikoliv. Bootovatelná znamená, že se program co na ní je spustí tak, že se prostě disketa zasune do mechaniky, zapne Atari a Atari program z diskety natáhne (nabootuje). Pokud je soubor s disketovým image obrazem bootovatelné diskety, lze ho přímo nechat bootovat v emulátoru, nebo přes program pro diskovou emulaci nechat bootovat do Atari. Tohle se týká drtivé většiny programů, zejména her.
Pokud soubor s disketovým image není obrazem bootovatelné diskety, pak to znamená, že je nutné se na něj dívat z Atari nebo emulátoru přes nějaký další program (typicky přes DOS).
Nejjednodušší cesta, jak poznat, zda disketový image je bootovatelný je ta, že ho zkusíte nabootovat.
Kazetové image
Zde máme štěstí, že je jen jediný užívaný formát, to je .cas. Takový soubor je obrazem
kazety, t.j. nese informace o obsahu jednotlivých bloků kazetového záznamu, délku mezery mezi
bloky a nějaké další informace. Tyhle soubory se dají přímo spouštět v některých emulátorech. Chcete-li ho natáhnout do Atari, použijte můj systém
atart.
Původní Atari soubory
uvědomte si, že teď bude řeč o něčem jiném. Formáty zmíněné výše představují obraz nějakého média.
Takové soubory dáte k dispozici Atari (nebo emulátoru), ale při práci s Atari je už neuvidíte.
Atari se bude dívat dovnitř těchto souborů, ale bude si přitom "myslet", že se dívá na disketu
nebo kazetu.
Nyní bude řeč o souborech, které si Atari najde uvnitř těchto obrazů, nebo je uvidí při práci s originálními periferiemi a médii.
DOS 2.5 binární soubory
Zde se užívá spousta přípon - .bin, .exe, .com, .obj a další, znamenají však všechny totéž. Tyhle soubory představují
analogii souborů .EXE a .COM známých z PC, jde o spustitelné soubory, tedy programy. Poznáte je
tak, že první dva byty jsou vždy FF FF šestnáctkově (255 255 desítkově). K jejich
spuštění je nutné mít zaveden Atari DOS, nebo jiný program, který to zajistí. Uživatel zvyklý z DOSu a Windows na to, že spustitelné soubory mají pevně definované přípony je obvykle zmaten tím, že tyhle soubory mohou mít libovolnou příponu. Inu jiná platforma - jiný mrav. Uvědomte si, že např. v unixu jsou spustitelné soubory odlišeny zase jinak, a to speciálním atributem x.
Obecný formát je jednoduchý, soubor má jeden nebo více částí formátu:
FF FF (dvoubytová hlavička)
2 byty počáteční adresa v pořadí nižší byte, vyšší byte
2 byty koncová adresa v pořadí nižší byte, vyšší byte
datová série
Přičemž platí:
Hlavička FF FF je povinná pouze u první série
soubory obvykle na konci obsahují sekvenci
E0 02
E1 02
2 byty startovací adresa v pořadí nižší byte, vyšší byte
mohou obsahovat i sekvenci
E2 02
E3 02
2 byty inicializační adresa v pořadí nižší byte, vyšší byte
Uvědomte si, že tyhle dvě zmíněné sekvence z hlediska obecného formátu představují uložení
startovací adresy na $02E0 (RUNAD), popř. na $02E2 (INITAD), což se při nahrávání těchto
souborů skutečně stane. Po přečtení každé série je totiž proveden odskok na tyto dvě adresy.
Z inicializační rutiny je možné se vrátit pomocí instrukce RTS (návrat ze subrutiny). Takhle
je možno např. nejprve zavést a spustit (přes INITAD) program, který zobrazí obrázek a až potom
nahrát vlastní program a spustit přes RUNAD. V praxi to bude vypadat takto:
FF FF
2 byte počáteční adresa programu na nakreslení obrázku
2 byte koncová adresa programu na nakreslení obrázku
programový kód pro nakreslení obrázku zakončený instrukcí RTS
E3 02 E4 02
2 byte spouštěcí adresa programu na nakreslení obrázku
2 byte počáteční adresa programu
2 byte koncová adresa programu
programový kód
E0 02 E1 02
2 byte spouštěcí adresa programu
Poslední poznámka - jiné verze Atari DOSů užívaly odlišný formát spustitelných souborů, nenašly však větší rozšíření. Standardem se stal zmíněný formát DOS 2.5.
Bootovatelné soubory
Jde o soubory, které je Atari schopné bootovat, t.j. natáhnout po zapnutí. V praxi jde o první sérii bloků standardního
kazetového záznamu (natahuje se pomocí START a Enter při studeném startu počítače, většinou je potřeba stisknout ještě OPTION, což vyřadí ROM BASIC), nebo obsah bootsektorů diskety
(pokud při studeném startu není stisknuto START, Atari vždy zjistí, zda je připojena disketová jednotka a pokud ano, pokusí se z ní bootovat. Dále je zde dobré poznamenat, že Atari disketa může mít až 256 bootsektorů. I při bootu z diskety můžeme vyřadit ROM BASIC pomocí OPTION). Formát těchto souborů je takový, že nejprve je 6 bytů hlavička:
00
1 byte počet bloků záznamu (1 blok=128 bytů)
2 byte počáteční adresa
2 byte startovací adresa
pak následuje programový kód
Přičemž nutno upozornit:
- Na počáteční adresu definovanou v hlavičce se ukládá i samotná hlavička, kód se nahraje až za ní
(tedy o 6 bytů dále)
- Atari bootovací procedura vykoná nejprve skok za hlavičku, zde musí být povinně inicializační
procedura obsahující přinejmenším instrukce CLI a RTS. Až po návratu z inicializační procedury
se provede skok na startovací adresu. Pokud se běhěm inicializační procedury neprovede CLI,
spustí se self test.
- poslední datový blok je zkrácen na 127 bytů.
U těchto souborů užívám příponu .bot
Soubory Atari Basicu:
.lst uložené pomocí LIST "D:xxxx.lst" nebo LIST "C:", jde o textové soubory v kódu atascii
a lze je snadno pomocí konverzních programů učinit čitelnými i na PC
.bas uložené pomocí SAVE "D:xxxx.bas" nebo SAVE "C:", jde o záznam v tzv. tokenizované
formě