Binární soubory: Porovnání verzí
(Přidán algoritmus zavádění binárního souboru, upraven úvod a přeformulována informace o zavádění do překrývajících se oblastí paměti.) |
m |
||
Řádka 22: | Řádka 22: | ||
== Přípony binárních souborů == | == Přípony binárních souborů == | ||
Na počítačích Atari se pro binární soubory většinou používaly přípony '''.COM''' a '''.OBJ'''. | Na počítačích Atari se pro binární soubory většinou používaly přípony '''.COM''' a '''.OBJ'''. | ||
− | V moderní době se široce používá přípona '''.XEX'''. Tato přípona byla zavedena kvůli možnosti pohodlně pracovat s binárními soubory na PC | + | V moderní době se široce používá přípona '''.XEX'''. Tato přípona byla zavedena kvůli možnosti pohodlně pracovat s binárními soubory i na PC. |
== Binární zavaděče == | == Binární zavaděče == |
Aktuální verze z 1. 3. 2019, 09:23
Obsah
Úvod
Binární soubory používají disketové operační systémy (DOS) pro ukládání kódu a dat v kompaktní podobě s přesně definovanou strukturou. Ve většině případů se binární soubory používají na uložení spustitelné podoby programů.
Binární soubory v současné podobě byly zavedeny diskovým operačním systémem DISK OPERATING SYSTEM II VERSION 2.0S od společnosti Atari.
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 zavádět do překrývajících se oblastí paměti.
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 a $02E1) označují startovací adresu. Po zavedení všech segmentů je zavedený binární soubor odstartován odskokem na tuto startovací adresu.
Přípony binárních souborů
Na počítačích Atari se pro binární soubory většinou používaly přípony .COM a .OBJ. V moderní době se široce používá přípona .XEX. Tato přípona byla zavedena kvůli možnosti pohodlně pracovat s binárními soubory i na PC.
Binární zavaděče
Binární zavaděče jsou komponenty operačních systémů nebo samostatné programy, které provádějí zavádění binárních souborů. Disketové operační systémy mají většinou binární zavaděč vestavěný a lze jej vyvolat volbou z nabídky nebo zadáním příkazu. Existují i kazetové verze binárních zavaděčů, nebo binární zavaděče pro zavádění z cartridge.
Zavedení binárního souboru
Zavádění binárního souboru probíhá dle následujícího algoritmu:
01 Otevři binární soubor 02 Zkontroluj hlavičku. Nemají-li první dva byty hodnotu 255 ($FF) zobraz chybové hlášení a skonči 03 *** Hlavní smyčka *** 04 Je-li konec souboru, jdi na 10 05 Přečti hlavičku segmentu 06 Přečti data segmentu, umísti data segmentu na adresu určenou v hlavičce segmentu 07 Změnil-li se vektor INITAD, proveď odskok do podprogramu na (INITAD) 08 Jdi na 04 09 REM **** Konec zavádění **** 10 Změnil-li se během zavádění vektor RUNAD, proveď odskok do podprogramu na (RUNAD) 11 Konec
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).