Autor ::Vldo Poslaná :: 19.02.2009 06:28:42 Predmet ::Re: Nahodne cislo
A mohl bys mi prosim poradit, jak hodnotu z citace, co generuje ty hodiny, ziskat? Ktery je to port a jak k nemu pristupovat? Dekuji
PS: Mohl bys mi prosim poslat odkaz na tu konferenci, kde bezi debata o tech nahodnych cislech? Rad bych se na ni mrknul
Správa
Autor ::Roman Bórik Poslaná :: 19.02.2009 13:50:16 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...).