Uplynulý víkend se uskutečnilo druhé letošní setkání Sharpistů na Tálském mlýně. Osazenstvo bylo velmi komorní, sešlo se nás jen 5, ale atmosféra byla vynikající, pracovní, kreativní a musím se pochlubit, že jsme odvedli slušný kus práce.
Uunek, Radek Suk, Mikeš a já jsme se sešli v pátek okolo 17. hodiny, Bohouš pak přijel o něco později, kvůli pracovním povinnostem. Já jsem mezitím využil čas a ze svého plně funkčního Sharp MZ-1500 jsem vyhodil GDG. Neobešlo se to bez komplikací, protože jsem si sice vzal všechno možné, ale nevzal jsem odsávací lanko, takže jsem musel páječkou přebytečný ChipQuik ”stírat”, což šlo jen částečně a když Bohouš zapájel zpět náhradu GDG, tak vykládal, při pohledu přes mikroskop, něco o hnusné ovesné kaši .
Pro neSharpisty, GDG je hlavní řídící obvod Sharpu, něco jako ULA u Speccy. Bohouš totiž při pokusech opravit Uunkův MZ-1500, který měl GDG vadné (a ještě asi min. 10 jiných součástek) se rozhodl, že GDG nahradí prostřednictvím CPLD. To se celkem povedlo, ale Uunkův počítač stále dost zlobil a Bohouš musel vyměňovat další a další součástky. Podle ohořelých cest u modulátoru to vypadá, že do něj asi vletěl blesk nebo nějaké vysoké napětí z televizoru. Problém byl, že se těžko dalo říct, jestli je problém v náhradě GDG nebo jsou vadné ještě další součástky. Náhrada GDG je poměrně důležitá věc. Byť tento obvod často neodchází, tak je jediný, který se nedá sehnat. Proto jsem “obětoval” jeden můj plně funkční MZ-1500, abychom v něm mohli náhradu GDG vyzkoušet a odladit. No a ladit ani nebylo třeba. Jak Bohouš náhradní obvod zapájel, tak Sharpík naskočil na první zapnutí. Žádná resuscitace, ani ladění firmwaru nebylo nutné.
Otestovali jsem pár různých programů a fungovali všechny, včetně hry Y2K, která mění znaky v každém mikrořádku, aby se vytvořila pixelová grafika na MZ-700. Bohouš je fakt dobrej! Klobouk dolů.
Při pokusech s MZ-1500 a srovnávání s druhým Uunkovým “nenapadeným” počítačem jsme zjistili, že Uunkův má jiné barvy resp. prohozenou zelenou a červenou. Bylo jasné, že některý ze scandoublerů má ještě prvotní neopravený firmware. Test barviček v BASICu a kontrolní srovnání s emulátorem ukázaly na Uunkův počítač. USB blaster byl po ruce a tak výměna firmwaru byla otázkou chvilky a poté už barvičky byly, jak mají být.
Tím jsem zdárně zakončili první den. Druhý den ráno s čerstvými hlavami jsme se, když už jsme měli na stole rozpitvaný MZ-1500 pustili do vymýšlené, jak enablovat/disablovat interní Quick disk. Mikeš totiž postupně do firmwaru Unikarty naimplementoval možnost výměny QD v manažeru a následně plánuje doplnit zápis na QD a možnost výměny strany QD za chodu pro spouštění oboustranných her, což je na MZ-1500 docela běžné. Jedna strana obsahuje obvykle redefinici znakového generátoru a druhá vlastní hru. Poměrně jednoznačně se nabízela cesta z adresního dekodéru LS139 k CS signálu Z80-SIO, které se stará o QD. Šlo jen o to, kde cestu přerušit, aby byl zásah do desky minimální. Nakonec jsme desku škrábli těsně u pinu SIO a tamtéž jsem zespodu desky připájel i 4k7 pullup.
To zajistí odpojení interního QD a možnost jeho emulace v Unikartě na standardních adresách (jinak emulace probíhá na adresách 74-77 místo standardních F4-F7). Hned jsme pak namysleli i způsob, jak toto ovládat přímo z Unikarty. Bohužel to bude chtít doplnit jedno OR hradlo a na desce asi není žádné volné. No, když už se do počítače pájí, tak se dá doplnit i to jedno hradlo. Pokud by Unikarta mohla vypínat HW SIO, šlo by pak vše ovládat z manažeru. Poslední navržená varianta je, že by Unikarta spustila defaultně emulaci na náhradních adresách a manažer by při spuštění otestoval, zda v počítači je SIO, resp. QD a pokud ne, přesunul by přes Unicard repository API emulaci na standardní adresy. Tím by se zajistilo, že by člověk nemusel pečlivě zkoumat, jak má nastavenou Unikartu, než ji zastrčí do počítače. Praktickým nechtěným pokusem Mikeš ověřil, že Unikarta interní SIO sice spolehlivě “přetlačí”, ale asi to není úplně zdravé .
Firmware emulující QD na standardních adresách jsme hned otestovali a opět vše šlapalo na první dobrou. Protože po ruce byl virtuální QD s MZ-800 demo, vyzkoušeli jsme ho pustit na MZ-1500. Chtělo to pár drobných úprav, jako např. výmaz na MZ-1500 neexistujícího příkazu SYMBOL a světe div se, ono se to rozjelo i s hudbou.
Úplně jsme si z toho sedli na zadek. Možná si říkáte, co je na předchozím prvním screenshotu tak zajímavé? On je to vlastně stejný snímek, jako ten druhý . Ten první je přes Unikartu, která v té době ještě neuměla emulaci grafiky přes PCG, ale k tomu se za chvíli dostaneme. V téhle chvíli nás plně uspokojil obraz přes Scandoubler a zvuk z repráčku. Jasan, že demo nechodilo stejně, jako na MZ-800. MZ-1500 má jinak udělanou podporu palety, neumí plynulý scroll a další vymoženosti MZ-800, ale šlapalo to. Pecka.
Asi jste si na fotkách už všimli, že jsme změnili dresskód. Na četné žádosti, že stará trička už jsou sepraná, jsem nechal udělat nová, tentokrát barevnější s postavičkami z Sharp her, které poctivě natípal Uunek, a můžete vidět, že dělají opravdu spokojené Sharpisty.
Kdyby někdo chtěl rozšířit naše Sharpistické řady alespoň tričkem, tak plánuji udělat další várku, takže se mi klidně ozvěte. Tričko by stálo 220 Kč vč. DPH, půjde to oficiálně přes firmu, takže normálně s dokladem s DPH, pokud si ho někdo chce odečíst na firmu.
Další úkol byl rozhodit GIT pro naše projekty. I tento se zdárně zadařil. Uunek rozchodil GIT na svém serveru a založil nějaké projekty. Chtělo to trochu poladit práva a přístupy, ale vše už funguje. Aktuálně je v GITu firmware pro Unikartu, MZVGA, UniUSARTShell a Mikešův KBDemulator pro připojení PS/2 klávesnice k MZ-2500. Zatím je GIT čistě privátní, ale časem ho asi zpřistupníme dalším. Je super, že můžeme společně dělat na projektech, navazovat, doplňovat se a projekty dále rozšiřovat.
Tálský Mlýn není jen o práci, takže samozřejmě byla spousta legrace, trochu se gamesilo a jelikož sobota bylo svatého Martina, tak padla i nějaká ta husička .
Když nám to tak pěkně šlo, řekli jsme si, že zkusíme opravit přenos dat z PC do Unikarty přes USB. Tohle nikdy pořádně na Bohoušově verzi Unikarty nechodilo. Na PC straně byl UniUSARTShell Michala Hučíka, který jsem drobně upravil, aby šel přeložit pod Windows. Program komunikuje po virtuálním sériovém portu, který vytváří Unikarta. Všechny základní příkazy fungovaly, dalo se vypisovat a nastavovat datum, listovat adresář, mazat soubory, ale jak došlo na přenos větších dat tam či zpět, tak se nikdy nedokončil správně. Hrál jsem si s timeouty sériového přenosu, ale moc to nepomáhalo. Bohouš se vrhnul na kód v Unikartě, zatímco já jsem upravoval Windows část. Mikeš nám oběma pomáhal, Radek menežoval a Uunek poskytoval podporu. Takto se nám zdárně podařilo přepsat celkem slušnou část kódu na obou stranách a UniUSARTShell teď po USB funguje perfektně. Nutno říct, že jsme si pomohli trochu nečistou praktikou, kdy PC strana při přenosu do Unikarty posílá data pomaleji, než by bylo možné, aby se nazahltily buffery pro ukládání na SD kartu v Unikartě, a že při resetu Sharpa je nutné resetnout i repository Unikarty přes UniUSARTShell, aby Sharp nezůstal viset ve WAITu, ale funguje to a je to perfektně použitelné. Není teď už nutné dělat diskotéku s microSD kartou a ničit si microSD slot na Unikartě. Přenos se dá nastavit do make file po překladu, prostě další zpříjemnění práce.
Nakonec došlo na již zmíněnou emulaci PCG v Unikartě. Unikarta poslouchá sběrnici počítače a jakmile zaznamená pohyb týkající se zobrazování, data přečte a emuluje ve vnitřní paměti a následně na VGA výstup. Unikarta původně vznikla pro MZ-800, který má zcela jiný grafický model. Firmware pro MZ-1500 vychází z MZ-700, který ale žádnou grafiku nemá. Sharp MZ-1500 má stejný textový režim jako MZ-700, ale navíc má ještě další vrstvu znaků, které jsou plně definovatelné. Každý znak se může skládat z 8×8 pixelů a každý pixel může mít 8 barev. Paměť PCG má 3×8 kB, takže definovatelných znaků je k dispozici 1024. Obrazovka obsahuje 40×25 znaků, takže na každou pozici obrazovky můžete umístit jiný znak a jejich redefinicí máte k dispozici plně grafický režim 320×240 pixelů. Pokud v BASICu MZ-1Z001 zadáte INIT”CRT:G”, stane se přesně toto. BASIC vyplní obrazovku znaky 0-999, nadefinuje je jako černé a PCG layer dá pod textový, který nastaví jako transparentní. Bez problémů pak můžete používat příkazy jako LINE, BOX, CIRCLE, atd. Tato funkcionalita zatím v Unikartě nebyla implementovaná, takže na MZ-1500 přes VGA výstup Unikarty nešlo hrát hry nebo provozovat aplikace, které využívaly PCG. Tohle zkoušeli Bohouš s Mikešem rozchodit už na OldComp party, ale úkol to nebyl jednoduchý a tak se nezadařilo. Tentokrát to bylo mnohem lepší a do cca 2 hodiny ranní jsme se dostali do fáze, kdy fungoval dobře Cruiser 3, ale BASIC zozbrazoval jen polovinu grafické obrazovky. Tak jsem to nechali na ráno a šli spát.
Ráno moudřejší večera. Po vydatné snídani byl Bohouš plný sil a nápadů a práce šla jako po másle. Chybu našel, opravil a my se mohli kochat demem z MZ-800 na MZ-1500 přes VGA výstup na Unikartě. Ještě jsme vyzkoušeli i pár her, které předtím zlobily a i ty šlapaly, jak mají.
Ještě není úplně jasné, zda správně funguje paleta, což jsme zjistili, že máme problém i vyzkoušet, protože nemáme návod k MZ-1500 BASICu MZ-1Z001 a nevíme, jak přesně funguje příkaz PAL. Další věc, co ještě bude chtít poladit je nastavení pořadí vrstev znaků a PCG a způsob jejich zobrazování. Pro většinu, nebo možná všechny hry, je toto ale naprosto dostačující.
Nějaký čas jsem věnoval i přebrání součástek na Mikešovu repliku 640 kB RAM disku Sharp MZ-1R37. Určitě se o něm ještě zmíním. Jedná se o RAM disk pro počítače Sharp MZ-2500/2800, ale dá se použít i do MZ-700/800/1500, jen na něj asi nebude software. MZ-2500 BASIC jej podporuje nativně, jako zařízení EMM: a funguje bez problémů. Tedy po odstranění drobné chybičky s přizemněným jedním vstupem AND hradla. Na to, že neexistovalo schéma a Mikeš vše překresloval z originálu, super práce.
Musím zmínit i příspěvek Vaška Peroutky, který se sice akce nakonec nemohl zúčastnit, ale připravil pro Sharp MZ-800 remake MSX hry SPHERES. Zatím má ještě nějaké moušky, ale to Vašek jistě v brzké době doladí.
V neděli okolo poledne jsme se rozešli ke svým domovům se spokojeným konstatováním, že tenhle Tálský mlýn se opravdu povedl. Už se těším na příští jarní setkání.
Fotky v článku jsou moje, Uunkovi i Radkovi. Kdybyste chtěli mrknout ještě na další fotky z akce, tak si je můžete prohlédnout tady: https://photos.app.goo.gl/QyIqdldtgtX1jou43
Zdravím Vás, mám dotaz, stihly by se trička potisknout a poslat do vánoc?
Urcite.
Tak bych vás požádal o email, abych mohl napsat objednávku. Děkuji…
Tričko vyzerá super, šlo by ho poslať aj na Slovensko (dobierkou)? Ďakujem.
Urcite slo, ale uz jsem je zadal do vyroby. Zkusim to tam vmacknout. Jakou byste chtel velikost?
Ďakujem, ak to ešte pôjde. Najlepšie XXL
Ahoj,
moc se omlouvám všem, kdo chtěli trička do vánoc, ale vánoční termín je bohužel nestíhatelný. Když jsem v pátek naběhl do výroby, tak mně zase hned hezky vypoklonkovali, že se jim toho nahromadilo hrozně moc a že to prostě nehrozí s ohledem na již naslibované zakázky. Takže bohužel trička budou až začátkem ledna. Zrušit to není problém, takže pokud začátek ledna je špatně, napište mi, zruším to. Omlouvám se, ale nic s tím teď nenadělám.
Krásný den
Martin
Ahoj, na základě dnešního rozhovoru na JHconu, objednávám triko Sharp ve velikosti XL až bude, dej vědět. Díky Mira
Jasan, dik, dam vedet. Mej se, Martin.
Hi, any chance to get a gdg1500 replika? I need one for my MZ700…
Hi Emiliano, as I wrote in the e-mail, all production documentation is here https://www.nobomi.cz/8bit/GDG1500/. You have to find someone who would make it (I do not have any spares left, sorry) and also someone to update the VHDL, as current version is for Japan NTSC only, not for PAL MZ-700.
Hi, ok I’m sorry but I never received your email, maybe goes in the spam and I dont see it 🙁
Thanks for reply, I will try to make one…
Regards