Binární soubory
Úvod
Binární soubory používají disketové operační systémy (DOS) pro ukládání spustitelných programů, podobně jako operační systém Windows používá soubory .EXE.
V jednom z nejrozšířenějších DOSů pro počítače Atari – Atari DOS 2.5 se k zavedení a spuštění binárního souboru používá funkce L – BINARY LOAD.
Vnitřní struktura binárních souborů
Binární soubor začíná speciální hlavičkou – dvojicí bytů o hodnotě 255 ($FF).
Dále následují segmenty binárního souboru.
Segment je blok dat, který se při zavádění umístí do paměti počítače na adresy určené v segmentové hlavičce. Hlavička obsahuje počáteční a koncovou adresu segmentu. Volitelně může být před hlavičku předřazena dvojice bytů o hodnotě 255 ($FF). Binární soubor může obsahovat libovolné množství segmentů. Segmenty se mohou navzájem překrývat.
Některé segmenty mají zvláštní význam.
- Segmenty INIT zaváděné na adresy 738 a 739 ($02E2 a $02E3) dovolují provést odskok a vykonání libovolného kódu v průběhu zavádění.
- Segmenty RUN zaváděné na adresy 736 a 737 ($02E0, $02E1) označují startovací adresu. Po zavedení všech segmentů je zavedený binární soubor odstartován skokem na tuto startovací adresu.
Příklad
Toto je výpis segmentů hry SWAPZ.
DATA 08192-08941 [2000-22ED] INIT 00738-00739 [02E2-02E3] {08192 [2000]} DATA 08192-08251 [2000-203B] DATA 12288-15436 [3000-3C4C] INIT 00738-00739 [02E2-02E3] {08192 [2000]} DATA 24351-47709 [5F1F-BA5D] INIT 00738-00739 [02E2-02E3] {47626 [BA0A]} DATA 47104-49149 [B800-BFFD] RUN 00736-00737 [02E0-02E1] {08192 [2000]}
Během zavádění se zavede celkem 9 segmentů a provedou tři odskoky. Po zavedení je hra spuštěna od adresy 8192 ($2000).