Forum

From PMD 85 Infoserver

Jump to: navigation, search
:: back to start of topic :: back to topic list ::
Message
Author  Author ::  Roman Bórik
Posted  Posted ::  2009-02-19 01:50:16 PM
Subject  Subject ::  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...).
:: back to start of topic :: back to topic list ::