Zvuk na PMI-80



Již dlouho jsem hořel touhou vyluzovat ze svého PMI-80 také nějaké ty zvuky. Což o to. V literatuře již bylo lecos popsáno. Třeba v červeném amáru 1/1987 byl popsán speciální obvod s děličkou 7474, několika hradly a jednotranzistorovým zesilovačem, který dokázal přes telefonní sluchátko reprodukovat třeba Alžbětinskou serenádu. Nebo ve stejném časopise, ale číslo 11/87 byla popsána metoda, jak generovat melodie bez přídavných obvodů prostřednictvím MGF výstupu PMIčka. Ani jedno řešení se mi nelíbilo. První bylo moc složité a druhé moc jednoduché. A tak jsem použil obvod, který se mi již osvědčil u jednočipů.

Jedná se o jednotranzistorový zesilovač budící malý reproduktorek o impedanci 8-16 Ohmů. Báze tranzistoru je přes odpor přímo připojena na výstup nějakého portu. V případě PMI-80 lze volit některý z volných portů služebního či přídavného obvodu 8255. Na výběr jich máme dostatek. Já nakonec zvolil Port C přídavné 8255 (zesilovač lze připojit na libovolný pin portu C). Důvodem bylo i to, že se mi nechtěla bastlit další deska s FRB konektorem, a tak jsem využil programovací přípravek na EEPROM 28C64, který je vlastně představován ZIF paticí, jejíž piny jsou až na vyjímky přímo připojeny na porty přídavné 8255.


audiovystup pro PMI-80

audiovýstup pro PMI-80


Nyní tedy stačilo zbastlit malou destičku s tranzistorem a repráčkem a vybavit ji kolíky pro vsazení do té programovací patice. Kolíky byly potřeba tři: +5V, GND a signál (zde tedy PCx). Tím vznikla tato elegantní zvuková karta, zároveň vybavená rozhraním pro PC Loader a vypínačem napájení (Mute):


zvuková karta pro PMI-80
"zvuková karta" pro PMI-80
zvuková karta pro PMI-80
"zvuková karta" pro PMI-80
zvuková karta pro PMI-80
"zvuková karta" pro PMI-80
zvuková karta pro PMI-80
"zvuková karta" pro PMI-80


PMI-80 hraje Mozarta

Po dokončení zvukovky zbývalo rozhodnout "co si pustíme":-) Již dlouho jsem pokukoval po "skladbách" publikovaných kdysi v časopise Elektronika. Skladby byly určené pro počítače TEMS 80-03A (Mozart) a ŠMS Žilina (Beatles) a oskenovaný článek jsem publikoval právě u toho TEMSe. Nakonec jsem se odhodlal k činu a zvolil jsem známý Turecký pochod od Wolfganga Amadea Mozarta. Byl napsaný pro Temse a využíval stejný princip generování zvuku, jako výše popsaný. Tedy jednotranzistorový zesilovač připojený na jeden pin brány 8255. Nyní stačilo "jen" upravit program, který byl v článku publikován. Potíž byla v tom, že ten program vypadal takhle:


W.A. Mozart na PMI-80

Wolfgang Amadeus Mozart: Turecký pochod (pro i8080A + 8255A)


A aby toho nebylo málo, je to ještě psané po sloupcích a nikoliv po řádcích... Nicméně jsem zkusil tento postup:

V Malování jsem obrázek upravil - zarovnal jsem předposlední sloupec. Jelikož jsem nechtěl nic instalovat, zkusil jsem vyhledat nějaké online OCR služby. Z nabídky gůgla jsem vybral tři a poslal jim obrázek s programem. Nejlepší výsledek jsem stáhnul do texťáku a ke slovu přišel můj oblíbený PSpad. Nejprve jsem použil automatické náhrady a nechal nahradit všechna písmena "o" a "O" nulou. Následně všechna "i" a "l" jedničkou. Pak už přišla ke slovu ruční kontrola a oprava chyb, kterých bylo kupodivu velmi málo. Teď co s tím sloupcovým zápisem... Využil jsem nástroj sloupcového výběru. Do schránky jsem vybíral jednotlivé sloupce, kopíroval je na volné místo a Deletem z nich dělal řádky. Nakonec jsem měl zápis, který vypadal jako binárka, jenže to byl pořád texťák. A tady nastal problém. Jak z toho texťáku udělat skutečnou binárku? Gůglil jsem jak zběsilej a nic. Jenže zoufalí lidé dělají zoufalé věci a tak jsem zkusil toto:

Zápis jsem upravil tak, aby opticky vypadal jako binární soubor v hexadecimálním zobrazení a celý zápis jsem jako sloupcový blok zkopíroval do schránky. V PSpadu jsem otevřel skutečný binární soubor, zápis jsem označil a normálně jsem přes něj fláknul obsah schránky. Je to šílený a dodnes nevím jak to ten PSpad udělal, ale udělal to dobře. Soubor stačilo uložit a měl jsem pravou binárku. Tu bylo možno disassemblovat a měl jsem zdroják. Paráda!

Zdroják jsem poupravil a zakomentoval podle popisu v článku. Relokace na jiné adresy umístění v paměti a jiné připojení 8255 nebyl problém. Zbývalo dořešit časování. Nakonec jsem dospěl k následující dedukci. Tems je taktovaný krystalem 18MHz, kdežto PMI jen 10MHz. 10 je skoro půlka z 18 a tak jsem všechny konstanty ovlivňující kmitočet vydělil dvěma:-) Dělil jsem vědeckou kalkulačkou ve Windows přímo hexačísla. Následně jsem zdroják opět přeložil, PCLoaderem natáhnul do PMI a... Vono to hrálo!


    PMI Mozart


K dispozici jsou dvě verze. První po spuštění ihned hraje, druhá vypíše text Mozart a po stisku libovolné klávesy začne hrát. Hraje se v nekonečné smyčce pořád dokola, ale pozor! V 5-6 kole se na práh šílenství dostávají i ti nejodolnější jedinci. Náprava je jednoduchá a k nastolení ticha stačí Reset:-) Jinak kromě zvukovky nepotřebujete nic. Využijete-li volný port služební 8255 (viz. komentáře ve zdrojácích), můžete muzicírovat i na nerozšířeném PMIčku. V ZIPu naleznete i původní neupravenou verzi pro TEMS 80-03A.

Mozartův Turecký pochod byl již zaranžován do různých hudebních žánrů od klasiky, přes pop, až po tvrdý rock. Výhodou této PMI verze je to, že spojuje všechny tyto aranže v jedinou:-) Na své si tak přijdou příznivci klasiky, popíku i rocku. Pochopitelně za to vděčíme jednobitovým obdélníkům. Jak málo stačí k dokonalosti...

Původně jsem chtěl muziku stočit do MP3 a dát sem k poslechu, ale to by bylo moc jednoduchý. Zvukovku zbastlíte za 10 minut a odladěný program jsem vám strčil přímo pod nos. Tak si to prostě poslechněte na svém vlastním železe:-)


Co dál?

Přiznám se, že mě lákají také ti Bítlsáci ze stejného článku, v jakém byl Mozart. Jsou napsaní pro Žilinu a využívají timer 8253. Jenže 8253 mám také na své úžasné rozšiřující kartě k PMI-80, a tak by se mohlo podařit to upravit

A možná by časem mohlo dojít i na tu Alžbětinskou serenádu z ARA 1/1987. Jen ten čas. Ten čas...


RET



Odladěno na MS IE 8.0 a Firefoxu při rozlišení min. 1024 x 768 pixelů
www.NOSTALCOMP.cz    2010  -  2017