ePMD85 v1.6

Nestává se to často, že bych připravil novou verzi emulátoru tak brzy, ale protože už si hovím na vánoční dovolené a mám dostatek času, vrhl jsem se na dokončení toho, co mě poslední roky vadilo nejvíce, ale moc se mi do toho nechtělo – emulace čtení a zápisu na mgf pásku.

Do teď jsem emulátor používal hlavně jako konzoli pro rychlé hraní – přetáhnu ptp soubor a už jedu – a pro ladění nových projektů. Ukládání tedy nebylo zapotřebí a čtení bylo patchnuté. Ale přeci jen mi to svědění v hlavě nedalo spát a cítil jsem, že dokud nevyřeším tu pásku, nemůže být ePMD85 považován za plnohodnotný emulátor. No a tak je to tady! Jak to funguje a jak se s tím pracuje je uvedeno na stránce http://maximalne.8u.cz/emulator-epmd85/ , pořád ale platí, že sázím na maximální jednoduchost a rychlost v ovládání.

Kromě toho je emulátor vybaven novým barevným režimem WGRM, který mělo PMD85-3 na svém videovýstupu. Je použit např. v remastrované hře Flapyy2k. A taky se reorganizoval kód a opravilo pár chyb. Kvůli té reorganizaci je ale možné, že vznikly chyby nové, na které se přijde až delším používáním.

36 komentářů

  • Zdeněk K.

    verze ePMD85: 1.6
    verze OS: W10, build 1909-18363.535, 32 bit, zvuk.karta HDA, DirectX 12

    – při použítí OBRAČE ČASU ( ALT + LEFT) – dochází k náhodnému chybovému hlášení
    ( program přestal pracovat ) a dojde k ukončení ( bez výpisu, ani v CLI )

    – při použítí DRAG & DROP ( jen u souborů PMD32 ) nedojde k načtení ( pravděpodobně nefunkční )

    – v MONITORU absence funkčnosti kláves ( kurzorové šipky L, R, BACKSPACE )
    “ chyba nebo se jedná o vlastnost ? “

    Pozn:
    ve hře FLAPPY 2K
    – položka P: PASSWORD nefunguje klávesa ENTER ( EOL ) – potvrzení zadaného kódu
    – položka S: SETUP – J: JOYSTICK při změně dojde k zaseknutí hry, ale EPMD85 reaguje

    • Zdeněk (maximalne.8u.cz)

      Díky za otestování.

      – obraceč mi zatím nespadl, tak nevím, kde by mohla být chyba 🙁 Budu zkoumat… Tam jsem se v tom trochu hrabal, doktore 😀
      – Drag & Drop u PMD32 nevyvolá automatické spouštění, je třeba nastavit typ PMD85-3, vložit image a pak restartovat. Hodilo by se udělat i tady auto start? Já tu emulaci PMD32 mám jen v takové počáteční fázi…
      – ta absence kláves mi je záhadou, to jako nejde napsat např. MGLD, protože nefunguje L? Toto je tak divná chyba, která se mi nestala na žádném z počítačů/notebooků, kde jsem testoval. Proč zrovna tyto klávesy? Není to nějaká speciální herní klávesnice, nebo nemáš k tomu puštěný nějaký multimediální přehrávač, který ty klávesy používá k ovládání? Používám ještě stařičký DirectInput, toho se ale taky v nejbližší době budu chtít zbavit…
      – klávesy EOL jsou dvě, jednu mám namapovanou na alfanumerický Enter a druhou na numerický Enter. Zadávání kódu u Flappy mi jde potvrdit v numerické části
      – po volbě joysticku v nabídce, je nutné tento ještě „připojit“ i v emulátoru (Alt+J). Sám Flappyho hraji na emulovaném joysticku, ten je pak namapovaný na kurzorové klávesy a pravý CTRL (fire).

      • Zdeněk (maximalne.8u.cz)

        Tak už vím, proč ty kurzorové klávesy nejedou, to není chyba, ale konfigurace emulátoru. Když je zapnutý joystick, tak jsou právě kurzorové klávesy vyhrazené pro ovládání joysticku. Stejně tak backspace, který je vlastně šipka doleva. A už i chápu ten komentář – L,R jako levá a pravá šipka, ne jako klávesa L a R.

    • Zdeněk K.

      ad ) “ Drag & Drop u PMD32 “ – ani při nastavení modelu PMD85-3, vložení IMG *.p32
      a restartu se nic nespustí 😑
      – vytvořit autostart COOL 👍
      – PMD32 by měl být fce ve všech modelech 👍

      u modelu PMD85-3 při inicializaci ROM dochází k nežádoucím obrazovým anomálií – někdy se nespustí ani s BOOST ( ALT + B )
      viz. http://zkolar.sweb.cz/pmd85/ePMD85-1.6/neinicializacePMD85-3.png

      ad ) v MONITORU absence funkčních kláves ( kurzorové šipky LEFT a RIGHT, BACKSPACE )
      vznikne za předpokladu nastavení volby zapnutého JOYSTICKu ( ALT + J ) na GPIOA nebo GPIOB
      v ePMD85 ( následně problém např. ve hře FLAPPY 2K )

      info: v MONITORU funguje alfanumerický i numerický ENTER ( EOL )

      FLAPPY 2K
      – funguje pouze numerický ENTER ( EOL )

  • Zdeněk K.

    AD ) FLAPPY 2K
    – při nastavení volby zapnuté PMD32 ( ALT + P ) v ePMD85 ( bez ohledu na volbu JOYSTICK ( ALT + J ) ) nelze změnit ve hře právě položku S: SETUP – J: JOYSTICK ( nebo pouze 2 krát-při vícenásobném stisknu již nelze )

  • Zdeněk (maximalne.8u.cz)

    Tak všechny zde popsané problémy jsou způsobené ne příliš dokonalou emulací PMD32. Neboť:
    – původní PMD85-3 má v monitoru zavaděč boot sektoru z PMD32. Po restartu se automaticky pokouší načíst bootsektor. Pokud je tedy zapnutá emulace a v disketovce nic není, dojde k tomu pádu po resetu (dle odkazovaného obrázku), neboť nemám ošeřeno, aby PMD32 nereagovala, když tam nic není – toto se dá opravit.
    – ostatní modely tento zavaděč nemají, disketovka tam funguje taktéž, jen je třeba do ROM modulu vložit booter. Až si jej napíšu, může být součásti emulátoru a pak pojede ve všech verzích.
    – PMD32 se připojuje k portu GPIOA, kam se současně dá připojit joystick. Proto jeho zapnutá emulace může při volbě joysticku na portu A vést k tomu „zaseknutí“ – pokud se PMD32 odpojí, zase je to ok.

    Závěr: emulace PMD32 je opravdu jen v první experimentální fázi – pro klidnou práci raději ponechat vypnuté.

    Nasbíralo se pár podnětů, co dále vylepšit, díky 🙂 Ale to bude až v roce 2020.

    Pozn.: při použití odkazu v komentáři, musí být tento komentář nejprve schválen, tak mám nastavenou antispamovou ochranu, samozřejmě mi normální odkazy nijak nevadí. Zajímavé je, že nejvíce spamu chodilo v azbuce pod článkem o ruské potvoře…

  • Zdeněk K.

    Zdeněk
    Bylo jménem středověkých šlechticů a rytířů….
    Tak všechno nejlepší 😉😎 kolego

    • Zdeněk (maximalne.8u.cz)

      Díky a recipročně přeji rovněž vše nejlepší, kolego!

      • Díky kolego,
        máš pro nás zase něco nového, když jsme již v Novém roce 2020 a já mám dneska navíc ještě narozeniny ? 😎😉

        • Zdeněk (maximalne.8u.cz)

          Nového nic. Moje Ježičice mi nadělila VR brýle, tak prozkoumávám Unreal Engine a 8 bity teď na chvíli nechávám u ledu. No ale abys neřekl, že Tě na narozeniny zklamu, tak tady něco spešl pro Tebe mám:
          http://maximalne.8u.cz/wp-content/uploads/2020/01/Happy.zip

          • Zdeněk K.

            Njn, tak kolega “ honí “ VRko…tak to je zabitý…to se Tě dočkáme nejdřív za 1/2 roku 😎😉
            Tak díky za dárek, kouknu co pa to je …

          • Zdeněk K.

            Tak to jsem fakt HAPPY Lemmings ;-), díky, díky

          • Zdeněk K.

            ..tak ještě Tě to VRKO nepustilo?
            Teď tu máme jinou hračku místo VR značka VIR 😉😆
            Nějaké novinky?

  • Zdeněk K.

    Zdravím kolego!
    tak co stále “ zahrábán “ s VR ve VR ? 😆😉

    Tady je něco, co by Tě taky možná mohlo zajímat …
    https://robot-matylda.webnode.cz/o-matylde/
    https://opentechlab.webnode.cz/arduino-workshop/

    Zatím, zlom vaz 👍a snad brzy u dalších novinek ✌

    • Zdeněk (maximalne.8u.cz)

      Tak ty na mě s hw projekty, taky tu mám něco načnutého:

      • Nějaké “ spešl “ rozšíření pro PMD85? ( ze by to byl Lenin ) ✌😆😉

  • Zdeněk K.

    ..tak ještě Tě to VRKO nepustilo?
    Teď tu máme jinou hračku místo VR značka VIR 😆😉
    Nějaké novinky?

    • Zdeněk (maximalne.8u.cz)

      Zdeňku, ty mě vždy probereš ze zimního spánku 🙂 VR spinká, čeká na Half Life: Alyx 😛
      Stavím si PMD85 s procesorem 8085, CPU+RAM+VIDEO by bylo, teď bych chtěl glue-logiku nahradit nějakým CPLD, aby byl design co nejjednodušší. Momentálně zkouším vybudovat programátor na ATF22V10. Když mi to nepůjde, ulámu tomu nožičky, hodím do koše a už to nebudu chtít nikdy vidět… A nebo si ten programátor prostě koupím…
      Po stránce vývoje sw jsem rozpracoval základ hry, která by využívala myšku a světlo světa spatří v roce 2345, až koroňák opadne a my budem moci vylézt ven. Vlastně jsem načl dvě. Ne vlastně tři, ale ta třetí nepoužívá myšku, za to je izometrická, a to mě vždycky lákalo si něco takového naprogramovat.

      Ale ty poslední měsíce jsou pro mě docela depresivní a COVID za to může jen trochu. Až bude slunce pálit do tváří, nabiju si baterky, a pak bude radost tvořit.

      • Zdeněk K.

        Jsem rád, když můžu pomoct 😉✌

        Bohužel, zdaleka nejsem takový “ borec “ jako Ty a Libor L.A. a Vám podobní …
        ( nejsem vůbec programovací typ, ale snažím se pochopit, alespoň logiku… )

        Hold, každej dělá to co umí a nemůžem bejt všichni stejní …

        Jsem rád, že jsi taky něco víc utrousil na čem třeba teď děláš, protože sdílných lidí je po málu 😈
        Zrovna L. L.A. sondoval jestli nevím, kde co kdo kutí a ejhle … tak jsme mu dal dokonce spravný typ
        a odhad, aniž bych ještě četl tvůj vyčerpávájící, vtipný a výživný poslední komentář 😆😉

        To bude asi tím mým 6 smyslem a fotografickou pamětí
        ( prý, ale nic takového jako “ fp “ neexistuje ) ✌

        A jak říká jeden ze spolužáků ještě ze ZŠ a nynější náčelník a pokračovatel největší české expedice TATRA KOLEM SVĚTA ( číslo 2 ) …

        … “ hlavně se z toho nepo***t “ ✌😆😉
        Tím končím referát a otevírám diskuzi …

      • Zdeněk K.

        Přijď si taky pohrát na “ pískoviště “ k L. L.A. je to paráda, sleduj 😈
        https://www.pmd85.cz/?page_id=1178#comment-957

  • Zdeněk K.

    Zdravím birce a “ medvěda Brtníka z Brtníku “ ✌😉😆
    Tak jak “ kolego “ ? Nějaké novinky z brdlohu?
    Nevaž se, odvaž se …
    Netrpělivě čekám(e) na zprávy COVID neCOVID.. jinak slunce už začíná palit do tváří.
    Zdar a sílu najdeš v týmu PMD85 a spol.

    • Zdeněk K.

      hej Zdenále, už nespi.. slunce už je vysoko 😆😉✌
      Ohrom nečím celý svět ( máš už lék na COVID-19 ) nebo aspoň tu naší kotlinu českou a slovenskou …

      • Zdeněk (maximalne.8u.cz)

        No Zdeňku, je to těžký. Mám už 14 dní home office, takže programuji jako že v práci a pak už se mi ani nechce programovat pro sebe. Asi se půjdu zavírat do sklepa, abych měl pocit, že střídám práci-domov.
        Ale dobrá zpráva je, že programátor ATF22V10C se mi podařilo sestrojit v USB variantě, možná alespoň o tom vydám článek. Pak bych si mohl dodělat to PMD s 8085, k tomu upravit monitor s využitím utajených instrukcí 8085, přidělat čtení z SD karty (nechci na tom CP/M ani Mikros, spíše simulaci pásky – ale tohle už jsem dělal, to půjde rychle) a SAA1099, abych to konečně slyšel hrát naživo. Ale v půlce té práce mi v hlavě blikne nějaká blbost, jako třeba když jsem byl kluk a chodil se koukat na automatový Double Dragon, že by to byla hezká hra pro péemdéčko (v nějaké zjednodušené variantě) a jak by se dalo rozdlaždičkovat pozadí, aby se to vlezlo to paměti, tak přehodím výhybku, protože se řídím heslem, dělej to, co chce Tvé srdce a budeš šťastný.

        A co u Tebe? Taky něco programuješ, laboruješ a nebo jsi jen profesionální komentátor? 😀

        • Libor L.A.

          Ty mi čteš myšlenky! Double Dragon v maringotce u Flaxa (nebo tak nějak jsme mu říkali..) kousek od Slovanu! Nechodil jsi tam? Já jsem všemi deseti pro. Pokud by ses do toho pustil, budu v sedmém nebi a budu držet palce!

          • Zdeněk (maximalne.8u.cz)

            Já chodil na Terase na parkoviště za domem služeb. Bylo mi asi deset, když jsem tam vlezl a první jsem viděl právě Double dragon – ta grafika a ta hudba, mělo to příběh, nic co se hraje dokola na body – do té doby jsem nic takového neznal a zanechalo to na mě veliký dojem. Snad i proto mě nejvíce zajímají retro systémy s grafikou. Např. kity, které si někdo staví, aby k tomu přilepil 7 segmentový displej (ala PMI80), mě ponechávají chladným, to už je zajímavější TI59. I systémy s CP/M, ten byl textový – nic pro mě.
            A ještě perlička – před léty jsem učil kluka, jehož otec byl majitelem té maringotky. Říkal, že má automaty dodnes, přinesl ukázat i ty desky, to bylo pošušňáníčko!

            K té realizaci PMD85 – to víš, že by mě to lákalo, kdysi jsem se na to i připravoval, skupoval jsem z GME výprodejové 74, z TME.eu si objednal monstrózní univerzální DPS (jak nepájivé pole, tak předvyvrtaný plošňák), úspěšně jsem i rozběhl svatou trojku. Byla by to frajeřina zprovoznit celé PMD čistě z historických součástek. Nakonec jsem si na to netroufl, na mě je to moc čipů (hlavně ten videoprocesor) a příliš mnoho důvodů, proč něco nemusí fungovat. Pokud to máš ale nějak promyšlené, jak to zjednodušit, rád tomu budu sekundovat.

            Moje realizace zatím vypadá takto:

            Systém je složen z 8085 + 128kb statické RAM + (au, to už není retro) můj oblíbený Parallax propeller. Parallax je napojený na sběrnici a sleduje, co se tam děje, takže při zápisu do oblasti videoram si zkopíruje tuto hodnotu k sobě a stará se o generování VGA signálu. Nijak nebrzdí 8085 ani do jeho funkce nezasahuje, 8085 o něm vlastně nijak neví. ROM tam teď nemám, Parallax udržuje 8085 v resetu delší dobu a během toho je sběrnice ve stavu vysoké impedance. No a když už je na tu sběrnici napojený, tak do RAM nakopíruje i potřebný rozběhový kód. 3 čipy tak nahradí 75 % PMD, k tomu připojím 8255 na klávesnici, 8253 (ale ne ty ruské mrchy) a 8251, SAA1099. Takže až na videoprocesor bude celý počítač „genuine“. Zvažuji, že vynechám 8255 na paralelní port, ponechám jen 74245, pro čtení z 4C/4D – a na to už mám nachystaný CANNON 9 pro klasické Atari joysticky. Chci z toho udělat takovou „game system“ variantu, jako bylo Atari XEGS nebo C64 Game Systems. Celé se to (doufám) vleze na 150×100 „euro kartu“. Zatím tedy jen ta procesorová část (to už funguje):
            8085 systém
            Až se trochu naučím pracovat s HDL jazykem, jedno ATF22V10C by mělo pokrýt jak paměťový dekodér, tak i dekodér IO + řadič přerušení na MIF85.

            Pak si na tom pustím Magicland Dizzy a Prince of Persia… Tak koukej do PoP udělat i podporu MIF85, ať to stojí za to 😀

          • Zdeněk K.

            Double Dragon M.A.M.E.

            http://zkolar.sweb.cz/mame/doubledragon.png

        • Libor L.A.

          Mimochodem Zdeňku, nešel bys do varianty realizace PMD-85 pomocí hradel ALS? Ta deska by s dnes dostupnými obvody jako 74ALS166 a podobnými nebyla moc velká a dala by se posadit do stávajícího krytu. To by asi uvítala řada lidí. S pomocí RAMDAC série 471/476 už mám vymyšlenu emulaci všech barvových systémů, jaké se kdy na péemdéčkách objevily. Nejlepší na tom je to, že by to šlo přepínat softwarově změnou obsahu registrů toho RAMDAC. A čím dál více si (teoreticky) myslím, že 80C85 bude naprosto adekvátní náhrada i8080 i z pohledu časování, neboť na základě Tebou provedených pokusů stejně WAIT stavy protahují doby provádění instrukcí na nejblíže větší sudou hodnotu, takže ty jednotaktové odchylky mezi procesory by se měly prakticky smazat. Mimochodem, doma mám pár kousků DUALPORT RAM 16kBx8 v pouzdrech PLCC68 – s těmi by to byla nádhera. Ale zase by nešlo udělat ColorAce. Proto se z nostalgie kloním k verzi 10×4164 nebo 3×4464 popřípadě nějakou statickou RAM 128kB. Asi by bylo nad čím debatovat.. A místo UHF výstupu lze osadit CINCH s AUDIO výstupem z SAA1099 – ten by taky mohl být na základní desce.

          • Libor L.A.

            Pokud bys měl zájem, mohu poslat několik VHDL zdrojových kódů od různých verzí PMD-85/Ultralight, které jsem dělal na XC95108. Ač je cílová architektura jiná, zdrojový kód by měl být identický a platformně nezávislý. Minimálně si člověk osahá ty struktury pro vygenerování různých hardwarových konstrukcí typu střadač, čítač atd. Jinak náhrada 8255 u GPIO za 74245 se nabízí, taky jsem o tom uvažoval ve stejném duchu (herní kompakt slučitelný s PMD-85). Jenže pak mě napadlo, že retromaniak, který by chtěl připojit BT100/Gamacentrum/PMD32 by asi měl smůlu kvůli možným bitovým operacím 8255-ky a možnosti zpětného čtení stavu portu. Pro tyto účely jsem si koupil 74646 ale nakonec asi zůstanou v šuplíku. Od příštího týdne budu posedávat doma (korona), tak pokud bys měl čas a chuť, navrhuji společné posezení nad nějakým zárodkem hardware (asi o víkendu postavím ten videoprocesor). Mimochodem, SCART už odešel ze scény dějin, a pro VGA je nutné 2x rychlejší pixel rate. Řešil bych to jako to máš Ty (verze SAPI AND1Z). CPU bude mít svou RAM s řízeným vkládáním WAIT stavů a stínová videoram na sběrnici si bude synchronně odchytávat svá data.

          • Zdeněk (maximalne.8u.cz)

            No, když jsem se chtěl ponořit do tajů FPGA, pořídil jsem si CMOD A7 a učinil volbu mezi „moderním evropským VHDL“ a „zastaralým americkým Verilogem“ (takto jsem cítil prezentaci těchto jazyků na mnoha stránkách) – zvolil jsem Verilog. Jenoduše proto, že je méně syntakticky ukecaný. Možná,že kdybych si tím prošel na akademické půdě, tak bych volil jinak. Ale měl jsem spíše na mysli CUPL, který používá Atmel (vlastně Microchip) ve své free verzi překladače pro PLD. XC95108 už je pořádný kus čipu, ale myslím, že to jedno ATF bude stačit.

            Moc teď nevím, jaké řešení videoprocesoru chceš tedy sestavit? SAPI AND1Z neznám… U toho promítání do 640×480 na VGA mám obavu, kolik monitorů si poradí s tím, že místo 480 řádků mají zobrazit 512? Možná že všechny a možná to vypadá dobře, nemám zkušenost. Ale co jsem viděl, když se někomu podařilo dostat obraz na VGA monitor, tak to bylo nehezky horizontálně roztáhnuté. Kompozitní video zavrhuješ? To už odešlo ze scény taky hodně dávno, pravda…

            No, pro toto téma jsem udělal extra stránku Stavba PMD85, ať se to tu nemíchá. Taky když zmiňuješ vkládání WAIT stavů, tak jsem tam připravil speciální verzi emulátoru, kde jsou takty podle 8085, kdyby vůbec nebyl bržděný procesorem (frekvence zůstává na 2,048MHz). Ten rozdíl je slyšet v hudbě, v grafice už tak moc ne. Tak tedy o víkendu pokračování? Já zkusím na té mé desce připojit 8255 s klávesnicí a zprovoznit Allram, s tím si už půjde dobře vyhrát.

          • Zdeněk K.

            Double Dragon review

            https://en.m.wikipedia.org/wiki/Double_Dragon

        • Zdeněk K.

          … já bohužel nic neprogramuju, protože to neumím.
          Proto dělám to co umím … jsem schopen cokoliv otestovat vzhledem např. k požadovaným fcím, popřípadě provést nějakou analýzu.
          A dělat komentáře to je taky moje parketa 😎😉

  • Zdeněk K.

    …koukám, jako blázen… to jste se pánové pěkně rozjeli ✌👍👏👌
    je toho najednou tolik, že to nestíhám ani přečíst a hltám to v celku …
    Maringotky s automaty to byla pecka, taky jsem tam hrával za 2,- a pak za 5,- kaček.

    Jinak kdyby Vás to zajímalo a nevíte to tak tento systém se jmenuje M.A.M.E. ( MULTI ARCADE MACHINE EMULATOR ) a byl převážně založen na double Z80 nebo kombinace s M68000, zvuk byl zajišťován double čipy AY.
    A existuje pro WIN, LINUX, ANDROID ✌

    Jinak snad všechny hry pro tento systém, lze stáhnout z internetu. 😆😉

    ukázka z verze pro Android
    http://zkolar.sweb.cz/mame/mame.png

    • Zdeněk (maximalne.8u.cz)

      MAME samozřejmě znám, existuje i s klientem Kailera, takže jde hrát duelovky po síti. Perfektní hra pro dva je třeba Pang. Taky mají zdrojové kódy jednotlivých čipů, tam jsem se hodně inspiroval přip saní svého emulátoru. I když nebyly udělány moc precizně, bylo se od čeho odrazit.

      • Zdeněk K.

        “ … mami, dneska bude zase rajská ? 😆 … pojď sem, co vidíš? 😉 … KUŘE … ..no tak vidíš „👍✌