Forum

Z PMD 85 Infoserver

:: späť na začiatok témy :: späť na zoznam tém ::
Správa
Autor  Autor ::  Roman Bórik
Poslaná  Poslaná ::  19.02.2009 13:50:16
Predmet  Predmet ::  Re: Nahodne cislo
Čítač PIT8253 je v PMD 85 na adresách 5C (čítač 0), 5D (čítač 1), 5E (čítač 2) a 5F (riadiace slovo).
Hodiny USARTu sú generované čítačom 1. Čítač 1 je krmený hodinami Fi2TTL 2,048MHz.
Získanie aktuálnej hodnoty čítača je jednoduché. Budeme predpokladať, že je čítač nainicializovaný monitorom po resete (týka sa monitorov 2, 2A, 3). Monitor inicializuje čítač 1 v móde 3 (astabilný multivibrátor), hodnotou 20H (64kHz), zadávajú/čítajú sa oba byty 16 bitovej hodnoty.
Táto nízka inicializačná hodnota je trošku nepríjemná (čítač číta dolu a po dosiahnutí 0 sa nastaví na pôvodnú hodnotu 20H), takže nám dáva iba 33 "náhodných" hodnôt pre inicializáciu RND, ale nemusí to byť až také kritické.
Za uvedených predpokladov stačí "on the fly" prečítať stav čítača a hodnotu uložiť ako inicializačnú pre náš RND generátor.

      IN   5DH     ; nižší byte hodnoty čítača
      STA  rnd+1   ; inicializuj generátor RND
      IN   5DH     ; vyšší byte hodnoty čítača

Prečítať je nutné obe hodnoty, pretože čítač 1 je takto nastavený!

Konferencia ZX Spectrum je na adrese Speccy konference (dúfam, že ju bude možné čítať, aj keď nie si členom...).
:: späť na začiatok témy :: späť na zoznam tém ::