Programy

Mé programy pro PMD-85:

Komentované výpisy klasických programů pro PMD-85:

19 komentářů u „Programy

  1. Libor L.A.

    Protože se na to někdo ptal, doplnil jsem (stále nedokončenou) verzi komentovaného výpisu PMD BASICu verze 2A. Přiznám se, že intuitivně nechápu, jak tato verze pracuje s řetězci. A když to nechápu, moc se mi do toho nechce..

  2. mmartinka

    Trochu tápu v jaké sekci se zeptat :), hledám rutinu na detekci jednotlivých modelů PMD. A mám pocit že jsem to viděl na vašich stránkách. Byla by možnost to třeba přidat do sekce „Jak na to“. Děkuji

    1. Libor L.A.

      Určitě jsem to řešil celkem komplexně u Lemmings (vč. rozpoznání Consul 2717) ale pohledám a doplním.

    1. Libor L.A.

      Takto propracovaný systém nemám, a asi nemá smysl, abych vymýšlel podobný.

      Moje rutina pouze uměla podle toho, jak se chová přepínání AllRAM režimu nastavit optimální režim stránkování. Ta moje procedura vlastně ani explicitně negenerovala typ stroje. Pro systém stránkování RAM ve hře Lemmings to tak stačilo, a tak jsem toto zjednodušené řešení použil. Musel bych tam stejně doplnit podmínky a podle toho generovat výstupní kód typu PMD-85. Tímto ale nerozliším verze 1 a 2. Musel bych si pomoci testováním obsahu ROM (například adresa 8DDBh). Takže já bych osobně použil Romanovo řešení.

      Pro samotné rozlišení rodin verze 1 a 2 používám v zavaděčích něco podobného:

      setmgf: lxi h,8ddbh     ; detekce typu PMD a modifikace
              mov a,m         ; čtecí rutiny pro vstup byte
              ani 40h         ; z MGF
              rz
              shld ldbyte+1
              ret
      
      ldbyte: jmp 8b6ch       ; vektor LOAD BYTE z MGF
      

      Procedura setmgf se zavolá na začátku zavaděče a případně modifikuje vektor načtení bajtu z MGF. Čtení bajtu z MGF pak řeším výhradně přes proceduru ldbyte. Jde to dělat mnoha způsoby, já spíše vždy volím takové řešení, aby mi na konci testu zůstaly v registrech takové hodnoty, které použiju pro navazující úlohu. Třeba v tomto případě hodnota 8DDBh je jednak místem, ze kterého z ROM čtu bajt, určující typ PMD a jednak tuto hodnotu případně uložím instrukcí SHLD jako nový skokový vektor pro čtení bajtu z MGF.

    1. Libor L.A.

      Díky moc. Kouknu se. Mohlo by to opravdu nakopnout další práce. Sice jsem pro odreagování začal dělat analýzu hry Magician’s Course – ale to počká. Trailblazer má v podstatě všechny problémy vyřešeny, teď už je to otázka času, než doladím zbytky a pak nějaké to testování. Ale PoP bych v tom případě asi fakt oprášil..

  3. Libor L.A.

    Ediční plán pro zbytek roku 2018

    1) dokončit definitivně Trailblazer (asi už jsem přišel na to, jak obejít problémy s 8253-kou)
    2) dokončit Funny Fruits (zbývá jen menu)
    3) a nejžhavějším kandidátem na další komplexní projekt je … JetSetWilly

    Ano avizovaný Magician’s Curse je sice ve stádiu 60% rozpracovaného zpětného překladu s doplněným komentářem, ovšem myšlenka na realizaci JSW je silná. Láká mě vyzkoušet v praxi efekt dvojitého vykreslovacího buferu. A také je to výzva – i8080 s efektivním taktem 1,7MHz versus Z80 na 3,5MHz.

    1. Libor L.A.

      Prolog mě fascinoval už od první zmínky v našich časopisech (asi ve VTM?). Tehdy jsem nechápal. Ale taky jsem tehdy nechápal, jak funguje BASIC. Takže proč ne.

      Ale popravdě, až dokončím JSW, chystám se spíše uklízet a vydat opravné edice mých předchozích děl. Přeci jen je všude dost chyb. První díla jsem ladil jen na emulátoru a na reálném hardware to není ono.

  4. Libor L.A.

    Do pár dní bych chtěl ukončit projekt Funny Fruits. Zbývá jen vymyslet závěrečné scény pro úspěšné a neúspěšné dokončení hry. Určitě vynechám algoritmus pro hledání cesty. Na to, že se jedná jen o demonstrační aplikaci pro využití myši je ta hra složitá už dost. Ale hlavně, připravuji se na konverzi již dříve avizované hry The Magician’s Curse. Proč právě ona? Vidím tam možnost vyzkoušet si jiný druh animace. Právě nastudování různých možností, jak promítat postavu hráče na pozadí s maximální rychlostí, bude stěžejní pro další dílo – asi se vrátím k Prince of Persia. A tam bych chtěl zúročit nabyté zkušenosti z her Treasure Island, Jet Set Willy a The Magician’s Curse.

    PoP bude muset být postaven na nějakém novém, úsporném jádru. Nemůže (stejně tak jako JSW převzatý ze ZXS) fungovat na stejném jádru jako originál od Mechnera. To by se do paměti PMD-85 nevešel. Musí se najít nějaká finta, jak snížit požadované množství RAM, a to rovnou o 64kB – to je náročný cíl. To bude klíčové. A proto taková příprava a studování možností animace. Co asi obětuji hned ze začátku, to bude spustitelnost na modelech se 48kB RAM. To by asi byla čirá utopie.

    Ediční plán pro rok 2019 je tedy na světě. A zcela jistě i pro rok 2020. Snažím se ukousnout značně veliký krajíc. Toho jsem si vědom. Takže zpět na zem. V lednu 2019 začínám s konverzí The Magician’s Curse.

    1. mmartinka

      Chtěl bych poděkovat za vše co jste v roce 2018 přenesl na naše československé miláčky :). Hlavně u Trailblaseru je vidět kolik píle a preciznosti do každého projektu vkládáte, prostě úžasné. Přeji hodně zdaru v dalších portacích a budu se těšit na každý nový kousek. Takže VELKÉ DÍKY.

      1. Libor L.A.

        Děkuji za uznání. Někdy si říkám, jestli to PMD-85 vůbec ještě někdo zapne a něco si zahraje. Po boomu před pár lety mi přijde, že to všechno kolem osmibitů zase utichlo a zůstalo jen pár procent skalních fandů.

        Takže to beru jako zpětnou vazbu, že stále má smysl něco vyvíjet. Ale jsou za tím i vzpomínky na tu nádhernou socialistickou učebnu plnou PMD-85 (zhruba 10 kousků, tehdy ještě ve verzi 1), kde na zemi i na zdech byl nalepen jekor (asi by se to mělo psát s velkým J), kde se všichni museli povinně přezout, kabáty nechat v šatně a polovinu vymezeného času strávit zoufalým koukáním na úvodní prezentaci na Meotaru, když se vedle vás již pomalu začínal přehřívat ten zázrak techniky se standardně vytrženým kabelem z napájecího konektoru na těle počítače. A ta úžasná hodnota parametru MTBF, dosahující zhruba 60 minut, které se začaly odpočítávat ihned po vstupu do učebny a zapnutí počítačů..

        Tak jo, tak jsem zase dobil baterky a zkusím dodělat Funny Fruits, abych mohl jít dál na něco serioznějšího. Ještě jednou díky za podporu!

        1. RomBor

          Ani ja sám si nerobím ilúzie o obrovskom množstve nadšencov, ale aj keď je to iba pre tých pár skalných, asi to má zmysel a naviac, baví ma to a robí mi to radosť.

          Ja som naviac v poslednej dobe venoval mnoho času omnoho viac okrajovému počítaču – PP 01. https://pp01.borik.net/

          1. Libor L.A.

            Pamatuji si, jak mě nadchnul článek o tomto stroji (tuším v časopise Elektronika?) a jeho barevných schopnostech. S odstupem času jsem si ale uvědomil, že není v mých silách věnovat se aktivně a dlouhodobě více věcem či více počítačům. Obětoval jsem svůj Ultralight, Commodore Plus/4 už je minulost, ATARI65XE taky, v bedně asi navěky leží Sharp MZ821, C64 a bůhví, co bych ještě našel. Ale uvolnila se mi doma jedna místnost, a tak uvažuji o pasivním vystavení všech mých kousků, jakéhosi privátního muzea. Sehnal jsem i SP210T, tak snad už jen holou jednojehlu BT100, dvoujehlu Gamacentrum, origo ZXS, Plusko, Dvojku a Trojku a otevírám muzeum.

            Že by plán hardwarových počinů na rok 2019?

              1. Libor L.A.

                Je to krásný stroj. Což o to. Momentálně jsem však vytížený tak, že mám do konce roku 2020 projekty připraveny. Jen je realizovat. Přes zimu snad konečně odladím na nepájivém poli to jádro PMD-85 na bázi hradel rodiny 74xx. Jen nemůžu nikde sehnat oscilátor 12,288MHz na 5V a v pouzdru DIL.

                  1. Libor L.A.

                    Právě že z Farnelu jsem je objednal a přišlo mi tuším rovných 12MHz. U nich bych to neřekl, ale stalo se.. Naštěstí ta odchylka 12,000 vs 12,288MHz je tak malá, že pro účely vývoje to postačuje. A pokud by se televize ozvala, že jí nesedí frekvence, zkrátím cyklus rozkladových čítačů.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.