Tento článek popisuje účel a způsob použití obrazů modulů cartridgí (ROM, CAR, …​) Přidává také informace o možnostech převodu mezi těmito formáty.

Účel obrazů cartridge

Obrazy modulů cartridge jsou, jednoduše řečeno, obsahy pamětí ROM vyčtené (dumpované) z těchto modulů a uložené do souboru.

Takové soubory mohou sloužit buď pasivně, tedy jen k uchovávání obsahu (pro případ ztráty či zničení cartridge), příp. pro jejich vypálení do jiných pamětí (EP)ROM k vytvoření kopie původní cartridge.

S moderními nástroji lze ovšem využívat obrazy modulů cartridge i aktivně:

  1. Emulátory počítačů Atari (např. Atari800, Atari++, Altira) umožňují použít obraz modulu jako skutečnou cartridge, tj. spustit jeho obsah v emulátoru.

  2. Univerzální cartridge (S/XEGS RAMCART 128KB, UnoCart, A8PicoCart, Ultimate Cart, AVG/SUB/DUMP CART, …​) umějí spustit obsah obrazu cartridge přímo na Atari.

Definice formátů

ROM

Nejjednodušším formátem pro obrazy modulů cartridge je jejich prostá kopie. Prostě tak, jak vyčítáme obsah paměti ROM z cartridge, ukládáme jej byte po bytu do souboru.

Takový soubor má přesně stejnou velikost jako původní ROM a neobsahuje jakákoli metadata. Označuje se koncovkou ROM, příp. BIN.

Tento způsob je vhodný především k pasivnímu uchovávání obsahu. Pro aktivní použití v emulátorech či univerzálních cartridgích však působí komplikace.

Protože 8bitový počítač nemůže číst celý obsah (větších) pamětí ROM najednou, je mu tento servírován po částech, kterým se říká banky. Jelikož nebylo standardizováno, v jakém pořadí mají být jednotlivé části ROM počítači předkládány, dělali si to jednotlivý výrobci tak, jak je napadlo. Tím vzniklo mnoho druhů cartridgí, z nichž každý pracuje s obsahem ROM odlišně.

Aby tedy bylo možné většinu obrazů ROM použít pro emulaci či v univerzálních cartridgích, je třeba znát způsob, jakým je původní cartridge bankovala. Tento způsob je třeba nastavit (vybrat ze seznamu) před jejich použitím.

CAR

Autoři emulátoru Atari800 se rozhodli vyřešit problém nutnosti nastavení způsobu bankování obrazů cartridgí tím, že zavedli vlastní formát.

Udělali to poměrně jednoduše. Vzali formát ROM a na jeho začátek přilepili hlavičku o velikosti 16 bytů s následujícím obsahem:

Table 1. Hlavička souboru CAR
Byty Význam

1 - 4

Identifikátor formátu souboru (znaky "CART")

5 - 8

Identifikátor typu cartridge, resp. způsobu bankování (ve formátu MSB)

9 - 12

Kontrolní součet (checksum) původního obsahu ROM (ve formátu MSB)

13 - 16

Prázdné (null)

Formát CAR je tedy vždy o 16 bytů delší než je kapacita původní ROM, jejíž obsah soubor uchovává.

Výhoda tohoto formátu je zřejmá. Uživatel nemusí znát nebo typovat způsob bankování původní cartridge, když chce její obsah použít v emulátoru nebo spustit pomocí univerzální cartridge.

Díky své užitečnosti, jednoduchosti a otevřenosti se formát CAR ujal jako nepsaný standard. Podporují jej i jiné emulátory a většina univerzálních cartridgí.

Konverze

Převod z formátu CAR na ROM je jednoduchý. Stačí prostě ze souboru odstranit prvních 16 bytů.

Obrácený postup (tj. převod ROM na CAR) již vyžaduje více aktivity. Především je třeba zjistit identifikátor typu cartridge. Ten lze najít v souboru s definicí formátu CAR, který je součástí zdrojových kódů emulátoru Atari800. Dále je třeba spočítat kontrolní součet ROM. Nakonec ze zjištěných údajů vyrobit 16bytovou hlavičku a přidat ji na začátek souboru.

Aby byla konverze mezi ROM a CAR jednodušší, vzniklo několik utilit, které ji provádějí. Zde jsou 2 z nich:

  • Atari ROM Maker je Java program, který vytvořil Jac! Funguje v prostředích GNU/Linux, Mac OS X a MS Windows.

  • Atari 8-bit ROM to CAR file conversion je webová aplikace, kterou napsal Robin Edwards. Stačí stáhnout soubor HTML, otevřít jej ve webovém prohlížeči (testováno pro Firefox a Chrome) a na označené místo myší přetáhnout soubor ROM. Množina podporovaných typů cartridgí je však omezená.

  • rom2car

Odkazy