7 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..

Napsat komentář

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