Akcelerace

Z nějakého důvodu chceme, aby byly naše počítače co nejrychlejší. Jak na to, a má to vůbec smysl?

Na druhou otázku rovnou odpovím: Jak kdy.

Jasně, pokud provádíte časově náročný výpočet (posun kontinentálních desek, skládání Rubikovy kostky, prolamování hesel, fraktály), tak chcete, aby to lítalo jak z praku.

Mandelbrotův fraktál (program je psán v Basicu) počítá ZVT PP-01 asi 4 hodiny.
Sinclair QL počítá totéž v řádu minut, s turbokartou asi půl minuty.
Na moderních strojích pak Mandelbrotovou množinou prolétáte opravdu v reálném čase.

Příklad Sinclairu QL ale ukazuje jednu věc: větší vliv na rychlost, než samotná turbokarta, má použití novější a rychlejší verze Basicu!

Je celá skupina programů, kde, pokud nejsou opravdu špatně napsané, akceleraci nepotřebujete – například textové editory. Psaní ve WordStaru na FK-01 bude stejně rychlé, jako na Amize.

Nejmasivnější kategorií programů spouštěných na osmibitech jsou ale v dnešní době především hry (ty výpočty, kterým akcelerace pomůže, i textové editory, které akceleraci nepotřebují, se dnes pouští na něčem jiném).

Poučení opět ze Sinclairu QL:
Pokud si chcete pořídit turbokartu, pořiďte si k ní i celý druhý počítač, abyste měli jeden bez akcelerace na hry.
S dostatečně vysokou akcelerací se to totiž nedá hrát!

Jistě, jsou hry, zejména takové, které původní hardware ždímají na maximum, kterým mírné urychlení prospěje. Většinou ale při tom projeví nějakou jinou nectnost.

Klasické plošinovky a střílečky jsou obvykle dost svižné a při dalším zrychlení se už nedají hrát.
Pokud ale jsou v originále neskutečně pomalé, a nikdo je proto nehraje, pak jim mírné urychlení může prospět.
Třeba o Xevious na Apple II jsem četl, že se nejlépe hraje při akceleraci na 3 MHz.

Pokud hrajete 3D freescape hry od Incentive, jistě zatoužíte po akceleraci pro plynulejší pohyb, zvlášť na Commodore 64.
Podobně třeba letecké simulátory – Flight Simulator II na Apple II má asi 1 FPS, chtěli byste větší framerate.

S použitím akcelerátoru vás ale čekají komplikace.
V leteckém simulátoru se urychlí i běh času.
A ve 3D hrách na Commodore 64? Tam kvůli tomu samému máte najednou na splnění úkolu mnohem méně času.

Zklamat nás mohou i technické prostředky umožňující akceleraci – pamatuji si Philips NMS-8280, který měl 7 MHz turbo. Hry po přepnutí běhaly dvakrát rychleji, ale i veškerá hudba hrála o oktávu výš – protože na dvojnásobné frekvenci.

Z tohoto hlediska se nejlépe akceleruje v emulátorech – přerušovací a časovací systémy mohou běžet na původní frekvenci, stejně tak tónové generátory, a emuluje se jen urychlení činnosti procesoru.

Další zádrhel je typický pro procesory 6502 a připomíná dobu, kdy Apple provedlo první přechod na nové procesory – a tím byl přechod z 6502 na 65C02.

6502 nevyužívalo pro dokumentované instrukce všech 256 opkódů, ale i ty nedokumentované něco dělaly a občas někdo takovou instrukci použil.
65C02 zaváděla do dosud nedokumentovaných opkódů nové instrukce, a pokud někdo takovou instrukci použil, mohlo se stát, že na 65C02 dělala něco jiného, než programátor zamýšlel.

Tento problém se opakoval u počítačů, které měly původně 6502 a majitel si je osadil akcelerátorem s 65C02.

Původní osmibitový procesor příliš vysoko nevytaktujete, ale 16bitový 65816, který je s 6502 rodinou zpětně kompatibilní, vyženete bez obtíží na 20 MHz.
A 65816 proto využívají moderní akcelerátory (CMD SuperCPU, FastChip IIe, Rapidus pro Atari XE), pochopitelně i s příslušnými výhodami a naopak omezeními, a jedním z nich je i nekompatibilita v nedokumentovaných instrukcích.

————————————————————————————————————————

Jaké jsou tedy (podle mých skromných a sporých informací) možnosti akcelerace?

Acorn BBC

S jistou výjimkou (Acorn Electron) jsou ostatní Proton (BBC A) kompatibilní stroje (BBC, BBC B, BBC B+64, B+128, BBC Master, BBC Master Compact) přímo předurčeny k tomu, aby se k nim připojovaly všemožné procesory na všemožných frekvencích.

Takže nepřekvapí, že už kdysi pro ně vznikaly „second processor“ 6502 a 65C02, Z80 (s možností provozu CP/M nebo Z80 verze BBC Basicu), 8086 (s možností provozu MS-DOSu) a vývojový kit procesoru ARM.

Podobná rozšíření vznikala i v nedávné době, třeba ReCo (založené na moderní replice ULA pro „second processor“) s možností osadit 6502 do 14 MHz nebo 65816 do 20 MHz.

Stále ještě se dá koupit ReCo6502Mini, které se nepřipojuje externě, ale zabuduje se dovnitř počítače (pouze pro Master 128).

A pomocí dostupných vývojových desek si můžete sami připravit externí akcelerátor s 6502 (30-90 MHz!), se Z80 (30-160 MHz!), případně s 32bitovým procesorem National Instruments 32016 (50 MHz, 8 MB RAM).

V současné době se pracuje na možnosti připojit jednoduchým hardware Raspberry Pi a pomocí balíku PiTubeDirect na něm emulovat všelijaké akcelerované procesory (274 MHz 65C102, 60 MHz Z80, …) včetně třeba 80286 nebo nativního 1 GHz ARM.

Amstrad Archimedes a RiscPC

Urychlení původních Archimedes strojů (včetně řady A3010/3020/4000) není triviální, i když na to existují návody.

Naopak RiscPC je urychlitelné od přírody, neb obsahuje výměnnou procesorovou kartu (vlastně hned dvě, ale druhý slot je určen pro 80386, 486 nebo 586), a tak se dá kromě ARM 610 (od 30 MHz) a ARM 710 osadit i StrongARM (do asi 233 MHz).

„Urychlení“ pomocí zařízení PiPod je založeno na tom, že i na Raspberry Pi lze kromě Linuxu nabootovat RiscOS.

K původnímu počítači se PiPod připojí pomocí ethernetu (musí být tedy v počítači osazen Ethernet podule!) a ovládá se buď přes VNC z něj, nebo se k Raspberry připojí HDMI monitor a „Acorn“ se může ovládat pomocí USB klávesnice a myši připojené k Raspberry.

Raspberry má sice dosti odlišný procesor od původních Archimedů, ale hry je možné stále spouštět i v RiscOS pod emulátorem.

Navíc kromě možnosti nabootovat RiscOS je možné nahodit i Raspbian a mít tak „Linux na Acornu“.

(PiPod je ve formě podule a dá se v případě RiscPC nebo starších Archimedů zastrčit dovnitř počítače, zatímco stroje 3010/3020/4000 používají mini podule a PiPod musí být venku; Acorn 3000 má sice konektor pro podule, ale ne slot, takže se k němu poduly připojují tak jako tak externě.)

Amstrad CPC

CPC lze sice přetaktovat na 6 MHz, ale nelze pak číst diskety z neurychleného počítače, obraz se splácne a zvýší se frekvence zvuku. Takže se původní hardware CPC obvykle neurychluje.

Urychlení přichází ve FPGA verzi na T-Rex desce (která se tak stala platformou pro provoz systému SymbOS).
(Nepodařilo se mi zjistit, zda mají Amstrad CPC jádra třeba pro ZX Uno nebo MiST akceleraci.)

Apple II

Pro Apple II existují historické, ne moc rychlé a velmi předražené akcelerátory (SpeedDemon, Saturn/Titan, ZipChip, RocketChip, TransWarp).
Akcelerátor nepotřebuje Apple //c+, které obsahuje zabudovaný klon RocketChipu.

Zatímco většina akcelerátorů jsou karty určené do rozšiřujícího slotu, ZipChip a RocketChip mají opravdu podobu jakéhosi čipu s velkým pouzdrem a umisťují se do patice určené pro procesor.

Apple II GS, které obsahuje procesor 65816 už v základu, a kromě rychlosti běžného Apple II umí běhat i na vyšší, potřebuje pro akceleraci TransWarp GS nebo Zip GSX.

Existuje moderní rumunský FastChip //e.

Určen je pro Apple //e a poskytuje i paměťové rozšíření kompatibilní s RAMWorks a RAMFactor, v zásadě vychází ze ZipChipu.
Výhodou je plynule měnitelná frekvence, kterou je tak možné přizpůsobit potřebám konkrétní hry.
Dokonce umí běhat i pomaleji, než je originální rychlost procesoru!

Je sice drahý, nicméně proti původním akcelerátorům je to zadarmo.
Asi proto je ale vyprodán.

V Brazílii vyvíjeli akcelerátor Tecnowarp, ale zdá se, že práce na něm byly zastaveny.

„Akcelerace“ pomocí připojení Raspberry Pi pro Apple II rovněž existue.
Můžete si sice na Raspberry normálně spustit emulátor GSPort, emulující Apple II GS, ale s použitím balíku Apple2pi to bude jiné. Raspberry bude využívat klávesnici, myš a disky původního Apple II. Akorát si „k Apple II“ musíte připojit HDMI monitor.
Odměnou vám bude nejen možnost pouštět „na svém Apple II“ Apple II GS s procesorem 65816 na nějakých 20 MHz (v emulátoru GSPort), ale i možnost vyskočit do Raspbianu a mít tak „Linux na Apple II“.

Jen škoda, že původní připojovací adaptér Apple2pi se dávno vyprodal.

Atari 800

Lotharek prodává Rapidus s procesorem 65816 pro Atari 800 XE.
Pomocí dodatečného adaptéru lze zabudovat i do Atari 800 XL.

Originální Atari 400/800 si asi neurychlíte.

Commodore 64

Drahý a vzácný je SuperCPU s procesorem 65816. Přestal se dělat už krátce po roce 2000.

Podobně dopadl i FPGA počítač Turbo Chameleon, který lze provozovat buď samostatně, nebo jako akcelerační cartridge pro Commodore 64.
Neakceleruje sice pomocí emulace 65816, takže hry pro SuperCPU nespustíte, má „jen“ 6510, ale tím zachovává původní kompatibilitu včetně nedokumentovaných instrukcí.
(Nechápu, proč nebylo možné vyrobit další várku zařízení založeného na FPGA. Nicméně Chameleon se sice nyní obchoduje za nehorázné částky, ale na webu Individual Computers se uvádí, že by nová várka přijít mohla.)

Nadějí pro Commodoristy by mohl být Rapidus z Atari 800 XE, ale sekce Commodore 64 z Lotharkových stránek zmizela, takže s tím snad byly těžkosti a asi se s Rapidem pro C64 už nepočítá.

Stejně tak externí F7 Turbo Card pro Commodore 64 vyznívá do ztracena.

MSX

Na tuto platformu bych zapomenout neměl.
Už původní výrobci akcelerovali ad nauseam (například pomocí Turbo R, jehož druhý procesor už nebyl se Z80 příliš kompatibilní, ale byl rychlý).

Ačkoli existují MSX jádra například pro ZX Uno, akceleraci zřejmě nenabízejí (podle mých zpráv ZX Uno emuluje jen MSX1 s rozšířenou pamětí, bez MSX2 grafických režimů).

Chystá se ovšem Zemmix FPGA MSX, což je MSX2+ se 4 MB RAM, zabudovanými zvukovými kartami SCC+ a FM-PAC, s turbo režimy 5 a 8 MHz, za přijatelnou cenu a dokonce, podobně jako reálné počítače, s dvěma rozšiřujícími sloty (které MSX hojně využívá, ale běžné FPGA klony je nenabízí).

PMD-85 a Consul 2717

Zatím mi není známo, že by tyto nebo jiné československé počítače někdo urychloval.

Sinclair QL

V poslední době se podařilo zreplikovat populární akcelerátor Gold Card a dá se koupit.

Ovšem pozor, 68000 na 16 MHz a 2 MB RAM umí hrám i zatopit.
Může se stát, že některé hře bude RAM moc velká.

A o tom, že vysoká frekvence procesoru může způsobit nepostřehnutelně rychlé poletování objektů po obrazovce a tím i nehratelnost hry, jsem už psal.
„Zpomalovací“ příkaz SLUG pomůže jen někdy.

Pokud jde o hry, doporučuji raději kombinaci IDE řadiče a rozšíření RAM na 640 kB, nebo IDE řadiče s Trump kartou – rozšíření RAM na 896 kB a k tomu disketový řadič.

Sinclair ZX Spectrum

Nejsnazší cestou, jak urychlit svoje Spectrum, je pořídit některý moderní klon.

Ať už s FPGA, jako Speccy 2010 (7, 14 a 28 MHz), ZX Spectrum Next (které se ale momentálně nedá koupit) s turbo režimy 7, 14 a 28 MHz či ZX Uno nabízející (podle použitého jádra) turbo 7 a 14 MHz, nebo i 28 MHz.
Nebo s reálným procesorem, jako ZX Evolution (7 a 14 MHz).

Sord m5

Není mi známo, že by někdo Sord urychloval.

Thomson MO a TO

Není mi známo, že by tyto počítače založené na procesoru Motorola 6809 někdo urychloval.
Vzhledem k tomu, že solidní emulátor najdete snad jen pro Windows, nehrozí zatím ani „akcelerace“ pomocí emulátoru na Raspberry Pi.

————————————————————————————————————————

Jaký je hlavní problém moderních udělátek?
Nejen těch akceleračních?

Jejich dostupnost.

Valnou většinou se prodávají jen po určitou omezenou dobu, a především obskurními kanály.

Hlavně pro platformy pro nás exotické (Amstrad, Thomson, v určité míře i MSX, nebo třeba Mattel Aquarius, …) probíhá distribuce prostřednictvím podivných webových fór, kam se musíte zaregistrovat a ohlásit svůj zájem do správného vlákna (nebo soukromou zprávou přímo autorovi, což většinou nejde, dokud nemáte dostatečný počet schválených příspěvků ve fóru).
Touto cestou nám pak unikají mnohdy zajímavé věci (mně třeba C4CPC nebo M4 karta pro CPC).

Někdo prodává na eBayi, občas i tak, že pouští jednotlivé kusy svého výrobku ne za pevnou cenu, ale draží, takže se ceny u zajímavějších kusů šplhají nepříjemně vysoko.
Něco se najde naopak jen na sellmyretro.com.
Většinou ale platí, že je to do vyprodání určité série a není jisté, zda se pak výrobek objeví znovu.

Další používají různé vlastní shopy, které většinou bývají vyprodané.
Tak trochu sem patří i Rich Dreher se svými CFFA interface pro Apple I a II – CFFA 1 je v nabídce stále, ale CFFA II a novější CFFA 3000 se, i když je vyrábí už 16 let, navíc v sériích čítajících stovky kusů, objednává na dlouho dopředu a počet kusů je limitovaný.

Podobně funguje prodej 1541 Ultimate už od první verze.

V poslední době používají hlavně Američani obchod Tindie, ale platí pro něj to samé, co pro ostatní shopy – vyprodá se vyrobená várka a je pokoj.
Navíc se na něm špatně hledá, k výrobku se většinou dostanete jen odkazem z webu autora.

Malé série vedou i k tomu, že výrobce (často sám autor) nenakupuje součástky s množstevními slevami a výsledný výrobek je pak dražší (jako třeba MISE pro Tandy TRS-80 se svými cenami).

V nezanedbatelném počtu případů autor jenom zveřejní (úplně nebo částečně) výrobní dokumentaci, vyrobí jeden nebo několik málo exemplářů a tím končí.

Škoda je, že se to týká hlavně těch zajímavějších, minoritních počinů, jako je analogový počítač Dr. Vogela nebo replika LittleGP-30.