Hardware

To je on, 6502. Není krásný?

Jak si možná vzpomenete, opustil jsem javovou versi svého emulátoru poněkud znechucen z důvodu, že bez proprietárního blobu nelze zajistit synchronisaci mezi obrazem a zvukem, resp. vůbec souvislý a nepřerušovaný, výstupům hardwaru odpovídající zvukový proud. V JavaScriptu podobný problém existuje rovněž, avšak je, minimálně s moderními prohlížeči, řešitelný.

Jednou z nedávných vymožeností browserového API je totiž AudioWorkletNode, což je skript generující surový zvukový výstup, který běží v samostatném vlákně. Plynulý zvuk tak mohu zajistit tím, že hlavní event loop nechám pro interakci s uživatelem, emulaci hardwaru spustím ve workeru a ve třetím vlákně mi poběží zvuk. Druhé vlákno bude tomu třetímu posílat, jaký zvuk se má hrát, prostřednictvím message kanálu anebo sdíleným bufferem: obojí jsou víceméně ekvivalentní řešení, přičemž pro osmibitové počítače se jeví kanálové řešení zcela dostačujícím.

Investice, zatím na mém pracovním stole.

Je dobře zajistit se včas na stáří. Já jsem se rozhodl spojit příjemné s užitečným a zakoupil jsem tři investiční čipy Tesla MHB8048/18, každý v ceně 20 Kč. Pokud to dobře půjde, za 15–20 let by mohla jejich hodnota dosáhnout i stokoruny.

Kromě toho, že je budu mít uloženy v trésoru, mi pomohou s dokončováním emulátoru. Mikroprocesory, resp. mikrořadiče, v té době ještě poskytovaly fully static operation, což mi dovolí přesně otestovat každou instrukci s pomocí Arduina. Výsledkem by mohl být klasický instruction exerciser; uvidíme.

A teď (na chvíli) o něčem úplně jiném…

V historii začátků osobních počítačů hrají svou roli i poněkud neobvyklé školní stroje, které nepracovaly přímo s instrukcemi mikroprocesoru, nýbrž implementovaly svou vlastní – emulovanou – instrukční sadu, obvykle jednodušší a vhodnější pro účely výuky např. tím, že používala nikoli hexadecimální, nýbrž dekadickou representaci číselných hodnot.

Popsané uspořádání bylo typické pro počítače využívající mikroprocesory/mikrořadiče s harvardskou architekturou, v nichž nebylo možné zapisovat do paměti programu; takovými byly např. řady Intel 8048/8051.

Na prvně jmenovaném mikrořadiči, resp. jeho variantách, jsou založeny dva počítače vyráběné v 80. letech: západoněmecký Kosmos CP1 a československý Petr.

Zde se můžete podívat na živé preview PMI-80 v akci, zatím bez magnetofonu, debuggeru a dalších nezbytných funkcí; kod je nepochybně plný chyb, po hrubé konversi z Javy ho teprve budu čistit, smýčit a testovat, tak i v tomto případě prosím při posuzování díla o mírnost:

Dlouhou dobu jsem žil v představě, že časování videoprocesoru u PMD 85 je provedeno tak, aby s činností CPU nekolidovalo, tedy že videoprocesor CPU nebrzdí. Roman Bórik mě však upozornil, že podle příručky je procesor brzděn, a to o nějakých 8 %.