Sharp MZ a X1 VGA video konvertor MZVGAv3

O video konvertorech na VGA pro Sharp MZ-800 už jsem psal celkem dávno. Ne úplně správně jsem je tehdy nazval jako scandoublery, přičemž opravdový scandoubler máme pro MZ-1500 teprve krátce. Bohouš už před nějakou dobou svůj externí VGA převodník MZVGA inovoval a udělal jej univerzálnější. Zvětšil CPLD a umožnil nastavovat některé parametry obrazu z MCU resp. parametrů na SD kartě. Udělal 3 prototypové desky, z nichž jednu jsem měl to štěstí mít doma a s úspěchem použít u více různých Sharpů. Protože vše vypadalo OK, podařilo se mi Bohouše ukecat k udělání menší série 10 kousků.

MZVGAv3_Martin_finished_top-front   MZVGAv3_Martin_finished_top-back   MZVGAv3_Martin_MZ-1500_working

Bohoušovi to nedalo a ještě vyměnil stabilizátor za jiný lépe dostupný a také propojil JTAG piny CPLD s MCU, aby bylo v budoucnu možné nahrávat a updatovat firmware CPLD přímo z MCU bez nutnosti vlastnit Altera USB Blaster nebo jiné vhodné JTAG udělátko.

Na základě BOM od Bohouše jsem objednal 10 sad součástek a ty jsme roztřídili a rozebrali si na podzimním Tálském Mlýně, kam Bohouš dovezl hotové desky plošných spojů. Chvíli mi trvalo, než jsem se k tomu dostal a desky osadil, ale vlastní práce šla poměrně hladce. Desky se pájely dobře, firmware do CPLD jsem nahrál přes již zmíněný Altera USB Blaster a pro MCU přes integrovaný bootloader, jako soubor na virtuální diskové zařízení. Vše šlapalo na první zapojení. Tak to mám rád Mrkající veselý obličej.

MZVGAv3_Martin_finished   MZVGAv3_Martin_MZ-1500_bootscr

Víc práce bude odladit parametry pro jednotlivé stroje. Aktuálně se VGA konvertor chová tak, že z SD karty přečte textový konfigurační soubor MZVGA.CFG, ze kterého si načte parametry pro přepočet obrazu a ty nahraje do CPLD. Napájení MZVGAv3 je řešeno přes mini USB. Pokud připojíte USB kabel k počítači, připojí se vám SD karta, jako běžná disková jednotka. Můžete tak snadno měnit konfigurační soubor nebo nahrávat screenshoty. Vždy při stisknutí tlačítka se zařízení na chvíli odpojí, obsah aktuální obrazovky se jako BMP soubor uloží na SD kartu a diskové zařízení se opětovně připojí k počítači. Je to snadné a velice pohodlné.

Bohoušova idea je, aby se ze souboru, ve kterém by bylo více konfigurací, automaticky rozpoznala ta nejvhodnější pro aktuální obraz. Takto funkce ale zatím není implementována a tak je nutné soubor měnit ručně. Nejsou lidi Smutný obličej a nikdo jiný, než Bohouš si na toto zatím netroufne. Ale snad třeba možná jednou … Konfigurační soubor vypadá prozatím takto:

[MZ800]          … tady může být zatím cokoliv v hranatých závorkách
CLOCK = 17734375 … hodiny (pokud je rozlišení 640 px/ř., tak dvojnásobek)
PHASE = 18       … jemné doladění fáze hodin pro samplování pixelů 0-100%
WIDTH = 800      … šířka skenovaného obrazu v pixelech
HEIGHT= 282      … výška obrazu v pixelech
HSHIFT= 260      … počet hodin od začátku horizontální synchronizace po
                   první pixel (posun obrazu horizontálně)

VSHIFT= 24       … počet řádků bez obrazu za vertikální synchronizací (pokud
                   nahoře řádky chybí, tak ubrat, přebývají, tak přidat)

LINES = 312      … celkem počet řádků
HPOL  = 0        … aktivní hodnota horizontální polarizace
VPOL  = 0        … aktivní hodnota vertikální polarizace
FRAME = 64       … na kterém řádku přepnout double buffer (je poznat jen při
                   velmi rychlém překreslování obrazovky)

HSIZE = 1        … 1 zobrazovat pixely, tak jak jsou načtené
                   2 horizontálně zdvojovat (použít pro základní frekvence)

VSIZE = 2        … 1 řádky tak jak jsou, 2 zdvojovat pixely na výšku
TOP   = 18       … kolik řádků VGA vynechat shora než se začne vykreslovat
LEFT  = 0        … to samé pro odsazení vlevo
VMIN  = 50.000   … vertikální frekvence od/do (zatím nepoužito)
VMAX  = 50.040

Aktuálně mám, s vydatnou Bohoušovou pomocí odladěny konfigurace pro evropské verze MZ-700, MZ-800, MZ-3500 a Japonské MZ-1500, MZ-2500 (low) a X1. Pro Sharp X1 je potřeba jiný kabel. Zatímco počítače MZ mají 8-pinové DIN konektory, počítače X1 mají 6-pinové DIN konektory. Většina z počítačů také nepoužívá signál intenzity a umí jen 8 barev. Intenzita také není implementována ve firmwaru, resp. je, ale počítá se s ní vždy, tak jak to má třeba MZ-800, takže občas vznikají zvláštní situace. Např. při použití kabelu k MZ-800 na MZ-1500, je na pinu, kde má MZ-800 intenzitu, u MZ-1500 kompozitní černobílý výstup generovaný ze znakové videoram bez ohledu na PCG a jeho nastavení, takže se na obrazovce v některých hrách lehce šedě se slabou intenzitou objevují znaky, které tam jinak vůbec nejsou a jsou překryté znaky z PCG. Ale to je relativní drobnost, kterou se snad brzy podaří Bohoušovi opravit, resp. doufejme, že bude mít chvilku času se tomu věnovat.

MZVGAv3_Martin_in-box-open   MZVGAv3_Martin_X1_finished

Jsem moc rád, že se mi zatím podařilo rozchodit všechny počítače Sharp, které jsem potřeboval a těším se, že udělám nějaké pokusy s pro mně “exotičtějšími” platformami, jako je C128 (tedy jestli se mi ty dva kousky, co se mi už rok válí v pracovně, podaří opravit) nebo PC s CGA, kde si myslím, že by Bohoušův VGA konvertor měl také šlapat.

Kromě Bohouše, kterému patří největší dík za vytvoření této super krabičky, nesmím zapomenout také na Mikeše, který nakreslil panely na krabičku a upravil moji starší samolepku a Pavla Urbančíka, který mi ty černí panely perfektně vytisknul na 3D tiskárně. Takže všem díky!

Příspěvek byl publikován v rubrice MZ-1500, MZ-2000/2200, MZ-3500, MZ-700, MZ-800, SHARP se štítky . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

1 komentář u Sharp MZ a X1 VGA video konvertor MZVGAv3

  1. Pingback: Sharp setkání Tálský mlýn – jaro 2017 | Martinův 8-bitový blog

Napsat komentář

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