Apple II a ochrana proti kopírování

Ochrana proti kopírování je věc, která uživatelům komplikovala život a komplikuje i teď, po 40 letech.

Když vyvíjel Wozniak diskový řadič pro Apple II, dostal vadné disketovky bez řídící elektroniky.
Což on nevěděl, a snažil se tak dlouho, dokud i tyto mechaniky nezačaly fungovat.
Místo připojování drahého řadiče použil jen pár levných obvodů a většinu řízení disketovky řešil softwarově.

Tak se stalo, že formát disket nebyl dán napevno (hard sectored, jako dříve u 8″ mechanik), ale libovolný (soft sectored).
Což autoři software využili – Pascal na Apple II využívá jiný formát, než DOS 3, a ten zas jiný formát, než ProDOS nebo než CP/M, která zas používá jiný formát, než standardní CP/M na jiných platformách…

Mimochodem pěkný přehled výrobků Apple (a Disk II je jedním z nich) nadete ZDE.

S Apple disketovkou jdou dělat kouzla.
Není to moc známý vtípek, ale když strčíte disketu se hrou Karateka do disketovky obráceně, sice se nahraje a spustí, ale veškerý obraz na obrazovce bude vzhůru nohama!

A hlavně – to, že si můžete s disketovkou dělat skoro co chcete, vedlo k vymýšlení sofistikovaných způsobů ochrany software proti kopírování.

A jaké že to ochrany se tedy na osmibitu od Apple používaly?

Je to téma, které vydalo na celou knihu.
Vřele ji doporučuju i neapplistům!

Typická DOS 3.3 disketa má 35 stop, 16 sektorů na stopu a velikost sektoru 256 bajtů, každý sektor začíná hlavičkou D5 AA 96 a končí kontrolním součtem.

Stačí cokoli z toho porušit, a nastávají problémy s čtením, takže kopírovací program nemusí disketu načíst.
Musel by být schopen pracovat s nestandardními hlavičkami, s kontrolním součtem počítaným kdoví jak, s nestandardním počtem sektorů na stopu nebo s nestandardní velikostí sektoru.

To samo o sobě poskytuje hned několik způsobů ochrany – všechny založené na nestandardním formátu.

Na stopě může být umístěno více sektorů s tím samým číslem, každý s jiným obsahem.
Načte se ten z nich, kam se disketa zrovna dotočila.
Originální program si zajistí, aby načetl ten správný, ale ostatní software s tím bude mít problém.

Data mezi sektory jsou jen synchronizační bity, ale pokud jsou místo nich zapsané informace, které si originální program kontroluje, máme další ochranu.

Protože vše pobíhá softwarově, je možno použít i jiné kódování, než stabdardní GCR tabulku.
Buď si připravit tabulku jinou, která bude sekvence bitů překládat na jiné bajty, nebo použít úplně jiné kódování.

S tím souvisí i synchronizace stop.

Počítači je normálně jedno, kde stopa začíná, nedetekuje otvor pro index signál.

Chráněný program ale může vyžadovat přesně dané úhlové posunutí mezi začátky jednotlivých stop.

Některé programy (Archon) používají stopu dvojnásobné šířky, dvě stejné stopy vedle sebe, a během čtení jezdí z jedné do druhé.

Pak jsou tu půlstopy – posun ze stopy na stopu vyžaduje 4 kroky motoru.

Program, chráněný pomocí půlstop, udělá jen dva kroky a čte data “mezi stopami”.
(Aby se data se sousedními stopami neovlivňovala, posune se obvykle ve skutečnosti o 6 kroků a místo dvou stop je tak jedna půlstopa, kterou v místě původních stop nejde načíst – například máme stopu 1, 2, 3.5, 5 a stopy 3 a 4 jsou obětované.)

Metoda zvaná Spiradisk (od Sierra On-Line) dokonce po načtení části dat z jedné stopy se posune o jeden krok (čtvrt stopy), po načtení další části zas o jeden krok (do půlstopy), pak zas (tři čtvrtě stopy) a zas, kdy disketa dokončuje otáčku a čtecí hlava už je o stopu dál a pokračuje takhle dál spirálovitě.

Nenahrané stopy (t.j. stopy, kde nebylo nic nahráno ani formátováno) interpretuje elektronika jako náhodné bity.
Stejně tak je schopna interpretovat sekvence více než tří nulových bitů za sebou jako náhodná data.

Originální program zkusí přečíst oblast náhodných dat několikrát za sebou, a pokud se jednotlivá čtení liší, je vše v pořádku.
Při zkopírování kopírákem jsou ale data natvrdo zapsaná a při opakovaném čtení se budou načítat stále stejně.
Nenahraná stopa se na disketu špatně zapisuje (bylo by potřeba její zápis úplně vynechat).

A k čemu to všechno?

Ochrana proti kopírování je zdánlivá výhoda pro vydavatele software, neb ten, kdo program chce, si jej nemůže zkopírovat a musí si koupit originál.

Na druhou stranu jsou tu samé nevýhody pro uživatele.

Nemůžete si udělat záložní kopii, když vám původní disketa umře nebo se poškodí, tak o software definitivně přicházíte, a to uživatele trápí hlavně teď, kdy původní média trpí vysokým věkem či opakovaným používáním a selhání je otázkou času.

Jasně, crackeři se vždy pokoušeli ochrany proti kopírování obejít, vytvářeli verze her, ochrany zbavené, ale někdy takovou verzi nenajdete, jindy mohl cracker zavléct chybu, která pak znepříjemňuje život, a někdy prostě člověk chce svůj originál (zvlášť, pokud za něj před 30 lety zaplatil nemalý valutový peníz).

Co tedy s tím?

Apple II není mrtvá platforma, a tak se můžeme setkat s tím, že se problém řeší i v dnešní době.

Sice máme moderní média, která nahradí disketovku (například MicroDrive Turbo, CFFA-II či CFFA-3000 a podobně), ale ta ochranu proti kopírování neřeší a ani běžné image disket nejsou schopny informaci o ochraně vůbec pojmout.

Disketovku lze sice nahradit zařízením SDFloppy II, které nahradí disketovku a používá image rozumného formátu .DSK, ale ochranu proti kopírování nezvládne.
Dalším drobným omezením je, že na SD kartě můžete mít 36 image disket.
(Zato se k němu dala dokoupit i mnohem stylovější krabička.)

Tož vznikly formáty image, do kterých se informace o způsobu ochrany a zvláštním formátu diskety (změna velikosti sektoru, “čtvrtstopy”, …) dají zaznamenat (takovými formáty jsou .nib/.nit, .a2r/.woz a .edf).

(.nib/.nit a .a2r/.woz používají odděleně soubor pro záznam dat na disketě a pro záznam časování.
Zařízení, která používají .nib image bez podpory .nit, nezvládnou zpracovat tolik ochran jako zařízení, která umí zpracovat i příslušný .nit soubor.)

Formát .woz obsahuje informace i o tom, zda je nějaká oblast disku zaplněna daty interpretovanými jako náhodná, a tak i tento problém řeší!

A také vzniklo zařízení Applesauce.

Applesauce je zařízení, ke kterému připojíte Apple ][ disketovku, ono umí chráněné diskety přečíst “i s chlupama” a jejich image poslat přes USB do mnohobitu.

A naopak, image uložený v mnohobitu pošlete přes USB do Applesauce a ono jej zapíše na disketu tak, že vznikne funkční (a stále proti kopírování chráněná) kopie.

Applesauce by šlo přirovnat k zařízením Catweasel nebo Kryoflux, ale je orientované specificky na Apple ][, protože zrovna ta dvě předchozí zařízení ve čtení Apple ][ disket významně pokulhávala a především měla problém s jejich zápisem (podobně postiženou platformou je prý i osmibitové Atari).

Velkou sbírku (víc než 1680 titulů) už hotových .a2r/.woz image pro Applesauce najdete ZDE (při volbě stažení jako TORRENT).

Navíc Applesause umí i diagnostiku disketové jednotky, včetně třeba testování rovnoměrnosti a rychlosti otáček.
Můžete tak proměřit své disketovky a pro zálohování používat tu nejlepší.

Případně aspoň víte, na co se máte nejvíce zaměřit při opravách.

Video s použitím Applesauce jste mohli natrefit i v mém minulém článku.
Applesauce předvádí Chris Torrence z Assembly Lines.

Vzhledem k tomu, že magnetické placičky v plastovém pouzdře o velikosti 5,25″ začínají být čím dál vzácnější zboží a už je nejspíš nikdo nevyrábí, uživatelé by rádi, aby se k řadiči místo disketové jednotky dalo připojit zařízení, které ji nahradí a s ochranou proti kopírování si poradí.

SD Disk ][ Emulator od mocného korejského Kima je interní zařízení zasouvané do slotu v počítači a nahrazující diskový řadič, pracuje (kromě .dsk a .po) s .nib imagemi a některé ochrany proti kopírování umí.

SD Smart Drive od stejného korejského Kima je zařízení naopak externí, zasouvané do Smart portu nebo do konektoru pro připojení disketovky, taky umí .nib/.nit image (a .dsk, .po, .2mg, .hdv) a tak zpracuje i mnohé ochrany proti kopírování.

Zařízení FloppyEmu se snaží být univerzálnější – dá se připojit místo disketovky ke starším Macintoshům, k Lise, ba nahrazuje i harddisk starších Macintoshů nebo HDD pro Apple II přes SmartPort (podobně jako SD Smart Drive).

Protože ale také při práci u Apple ][ používá “jen” .dsk, .do, .po, .2mg, .nib image, zvládne jen ty ochrany proti kopírování, které .nib image řeší.

Už se ale pracuje na podpoře .woz formátu.

Štěstím je, že se FloppyEmu dá ještě stále koupit.

Pak je tu nové zařízení wDrive.

Připojuje se k řadiči místo disketové jednotky.

Podporuje image .nib, .edf a .woz, zvládá mnohé ochrany proti kopírování a v budoucnu by měl (s updatem firmware) umět i “čtvrtstopy” a “spiradisk”.
Nepodporuje ovšem (se současným firmware 0.43) .dsk image.

Nemá taková omezení, jako SDFloppy II.
Pojme v adresáři 100 souborů a zvládne 10 vnoření adresářů.

Zobrazuje mnohem víc informací na displeji.
A ovládá se přitom jen třemi tlačítky.

To vše v 3D tištěné krabičce s designem jednotky UniDisk.

Zařízení v akci můžete vidět v recenzi Chrise Torrence ZDE.

A recenzi novinek, které od pořízení videa přibyly, najdete v novějším videu.
Opět Chris Torrence z Assembly Lines.

Pěkný přehled jednotlivých zařízení, jejich kompatibilitu s jednotlivými počítači nebo naopak s různými způsoby připojení, cenu a aktuální dostupnost můžete najít ZDE.

A ještě jedna věc:

Některé “až příliš chráněné hry” spustíte jen na určitých modelech Apple ][ a na jiných fungovat nebudou.

Může to být tím, že provádějí kontrolní součet ROM a nespolupracují s novějšími verzemi nebo klony (//e, //c, IIGS, Franklin, Prazetz, …), nebo tím, že jim vadí novější procesor 65C02 místo původní 6502.

Takové hry obvykle hlásí po bootu chybu “M” nebo se donekonečna rebootují.

Jak je zprovoznit zrovna na tom počítači, který máte k dispozici?

Přeci si kvůli nějakým 35 hrám, které to postihuje, nebudete pořizovat všemožné modely osmibitů od Applu.

Proto je tady program Anti-M.

Vpravdě crackerský nástroj!

Spustíte Anti-M, z diskety nebo harddisku, je to jedno.

Program vás vyzve k vložení originální diskety, která vám dělá problémy.

A voila – nabootuje.

Na disketě se nic nepřepisuje, veškeré záplatování původního kódu probíhá jen v paměti počítače.

Anti-M v současné době umí spustit tyto hry (převážně od firem Broderbund a Gebelli):

Beer Run, Bug Attack, Choplifter, David’s Midnight Magic, Dueling Digits, Eggs-It, Frogger, Gamma Goblins, Genetic Drift, Hard Hat Mack, High Orbit, Horizon V, Jawbreaker ][, Juggler, Labyrinth, Lazer Silk, Lunar Leepers, Neptune, Orbitron, Pest Patrol, Phaser Fire, Quadrant 6112, Red Alert, Russki Duck, Seafox, Serpentine, Sky Blazer, Space Eggs, Space Quarks, Star Blazer, Star Thief, Trick Shot, Zenith, všechny třináctisektorové disky a ProDOS disky.