Emulátor TESLA SAPI-1: postavte si vlastní sestavu

Už nějakou dobu mi v hlavě vrtala myšlenka naprogramovat si vlastní emulátor SAPI-1. Jenže SAPI-1 je HODNĚ komplexní počítač, spousta sestav, spousta karet a jejich nekonečné možnosti kombinací. A do toho karty nové. Hlavně software se bez emulátoru píše blbě, tak se nemůžeme moc divit, že skoro žádný pro SAPI není. Jediná světlá výjimka je Libor Lasota, který si vyvíjí vlastní hardware a k němu si píše i vlastní software. Ovšem v dnešní době, kdy si člověk může k ruce vzít AI pomocníka, nebo dva, tři, deset, je vývoj softwaru výrazně jednodušší. Tak jsem konečně dal emulátor SAPI-1 do kupy tak, aby splňoval moje představy. I tak to stálo hodně času i tokenů, a jestli výsledek stojí za to, to musíte posoudit sami.

O emulátoru jsem měl od začátku poměrně jasné představy. Chtěl jsem, aby běhal pod Windows i pod Linuxem. Měl by podporovat téměř všechny dostupné SAPI karty a měl by mít co nejpřesnější časování, resp. pokud možno co nejvíce odpovídat reálnému hardwaru. No a pro vývoj softwaru nesměl chybět debugger a pro AI potřebujete CLI a MCP server.

První nástřel byl hotový velmi rychle nejen díky Claude Code, ale hlavně díky perfektním podkladům, které shromáždil EC1045 na svém serveru www.sapi.cz a díky obrovskému množství práce, které věnoval překreslování karet. Emulátor jde díky tomu do takových detailů, jako je práce s originálními PROM pro nastavení mapování karet. Kromě původních karet jsem implementoval i nové Liborovy karty, protože na vývoj nebo portaci her se emulátor hodí úplně nejvíc. To byl ovšem jen začátek, karet bylo obrovské kvantum a všechno bylo nepřehledné a složité na konfiguraci. Tak jsem udělal přednastavené sestavy s možností jejich nastavování a ukládání.

Aby byla emulace dostatečně přesná, věnoval jsem hodně času i měření na reálném SAPI s originálními i novými kartami. To bylo velké množství práce a navíc časově hodně náročné. Ovšem i tady jsem si vypomohl AI pomocníky. Do procesorové desky přišla PicoROM, na sběrnici logický analyzátor Saleae, který umí měřit digitálně i analogově, a jeho software Logic 2 podporuje automatizaci a má zabudovaný i MCP server. Komunikace fungovala převážně po sériové lince, a kde to nešlo, tak PicoROM má poměrně chytrý způsob oboustranné komunikace, přestože je to „jen“ ROM 😉 Takže agent si psal kód do ROM, sám SAPI ovládal, komunikoval a sám měřil a zapisoval hodnoty, podle kterých pak upravoval emulátor. V určité chvíli jsem byl degradován na pouhého vyměňovače karet v sestavě a přepichovače sond. V tom jsem se ovšem poměrně osvědčil a navíc jsem se tak ujistil, že se bez nás zatím neobejdou 😉 Zjistili jsme poměrně hodně detailů a já jsem o SAPI spoustu věcí naučil. Emulace se zpřesnila a to nejen po stránce přesné časování a simulace paprsku na CGA-1V, ale třeba i drobností, kdy emulátor posílal 3 znaky po DSM-1V, zatímco originální HW jen dva.

Jen tak seskládat k sobě karty je relativně jednoduché, ale ne úplně zábavné, proto v emulátoru najdete třeba i sestavu APS-5 s původním firmwarem a emulovanými pecemi. Samozřejmostí k většině sestav je i návod, jak to všechno ovládat. K dispozici jsou i další zajímavosti, jako emulace IMS-2 multimetru a zdroje napětí, grafických plotterů a dnes již raritních jednotek KZD-1, RKD-1 nebo pásky RMP-1. Všechno jsem prozkoumal, a kde to šlo, tak jsem oprášil původní software a případně doplnil vlastním, aby se to všechno dalo používat. A věřím, že když vyhrabete někde fyzický hardware, tak tady máte software, se kterým ho oživíte.

Kdyby někdo nebyl na hardwarové hrátky, tak najdete v emulátoru i nové Liborovy karty CGA-1V, MPH-1V apod., takže si můžete užít i nějaké ty hry a multimédia. Emulátor jsem úspěšně otestoval několika konverzemi známých her nebo dem z jiných platforem, takže na SAPI teď běží Fuxoft Soundtrack 4, Bad Apple, Flappy nebo neoficiální port Prince of Persia. Všechny jsou součástí emulátoru. Součástí emulátoru je i moje úplně nová karta DPI-1L, která mimo jiné připojuje SAPI-1 k WiFi a do Internetu, takže si můžete užít i BomberNet přes MZPICO.

Největší práce byla paradoxně emulátor trochu vyleštit, zoptimalizovat menu a ovládání, aby s ním mohl pracovat kdokoli. Složité je to jako mlátička. Ale to je vlastně SAPI. Koneckonců zkuste sami. Emulátor je ke stažení v releases na github.com/mlukasek/SAPIemu nebo verze pro Windows 10 a 11 přímo tady:

https://www.8bity.cz/files/SAPI/SAPIemu-0.7.1-beta-win64.zip

Stačí rozbalit zip do libovolného adresáře se zachováním adresářové struktury a spustit sapiemu. Budu rád, když mi pošlete připomínky, náměty, nápady do e-mailu a chyby ideálně reportovat na GitHub issues. Pomůže vám s tím i funkce Nápověda – Nahlásit chybu, která zkopíruje diagnostiku.

AI slop disclaimer: Jak tak hodně z nás vyvíjí s AI nové a nové softwary, vzniká vůči všemu s AI trochu averze. Nebýt Claude Code, tohle by nikdy nevzniklo. Většinu kódu napsal Claude a nestydím se za to, nápady, kreativita, architektura a vedení celého vývoje emulátoru bylo na mně a bylo to hodně práce. Dotahoval jsem věci do detailů, měřil proti skutečnému hardwaru a fak jsem se snažil, aby byl emulátor užitečný. Proto ho neberu jako AI slop, ale jako moje dílo, na které jsem měl najaté kodéry a testery. Bez AI by emulátor asi nevznikl, ale beze mně taky určitě ne. A díky emulátoru už vzniklo pár dalších pěkných projektů. Tak mu dejte šanci 😉

Příspěvek byl publikován v rubrice Československé počítače, SAPI-1 se štítky . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

6 komentářů: Emulátor TESLA SAPI-1: postavte si vlastní sestavu

  1. rpolasek napsal:

    ja nemam slov – wau 😮

    konecne si i ja muzu sapi vyzkouset, protoze jsem popravde nikdy nemel v planu ho mit jako realny hw – tohle me ale velmi laka, testuju…

  2. Sillicon napsal:

    Spadla mi brada… dobrá práce
    asi konečně vezmu SAPI-1 na milost 😉

  3. mz-fuzzy napsal:

    Dobrá práce Martine. Dobře jsi to napsal s tím AI. Super že BomberNet jede na další platformě. Mimochodem nemáš víc info o tom Princovi na SAPI? Teď se potýkám s Princem na Sharpa a není to tedy žádná sranda ani s bandou AI umpa lumpů.

    • Martin napsal:

      Dal jsem Ti přístup do repo SAPI-Prince-of-Persia, mrkni. Jako byla to docela drbka. Nejdřív jsem to pojal jako port z Apple 1:1, pak jsem to rozšířil na 320 px na šířku a pak jsem na stejnou logiku rouboval grafiku z DOS. Možná jsem měl začít rovnou portem z DOS, bylo s tím dost komplikací. Ale nakonec to běhá celkem hezky. Repo udělám časem public, ale ještě to asi trochu poleštím a nechci aby se na mně někdo vozil kvůli autorským právům.

  4. Krupkaj napsal:

    Dobře ty, na SAPI jsem vzdycky koukal, ze se mi to domu nevleze. A vyzkouset si ho na vlastni kuzi jsem mel malo prilezitosti. Tohle vypada paradne. Se mi libi vizualizace zdroje a pasek, nadhera.

  5. Krupkaj napsal:

    BTW kdysi jsem od kamarada dostal ADC kartu, kterou jsem pak mel pripojenou jako sampler k Atari ST.

    A na AI slop kasli, koukam na to, jako na dalsi nastroj, ktery je potreba umet pouzivat. Bohuzel to s sebou nese i spoustu nedodelku. K nim ale tohle urcite nepatri.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *