Vizitator Postat Septembrie 11, 2013 Partajează Postat Septembrie 11, 2013 1. Te rog nu mai folosi pe ElForum limbaj de messenger (cum ar fi "cv", "cnv" - vezi regulamentul ElForum: http://elforum.info/viewtopic.php?f=94&t=2390) 2. N-ai spus, de fapt ce fel de ajutor vrei? Ce informatii? Link spre comentariu
Vizitator Postat Septembrie 11, 2013 Partajează Postat Septembrie 11, 2013 Am lucrat cu Z80 acum foarte mult timp, deci s-ar putea ca ceea ce scriu sa nu fie 100% corect. Registrul R era un registru folosit la refresh-ul memoriilor dinamice de tip RAM. In perioada de glorie a lui Z80 existau doua tipuri de memorii RAM: dinamice sau statice. Cele statice retineau informatia fara probleme, singura conditie era sa fie alimentate. La memoriile dinamice, era ceva mai complicat. Chiar daca erau alimentate continuu, memoriile dinamice nu puteau retine informatia mai mult de cateva milisecunde. Din cauza asta, pentru a nu se pierde informatia dintr-o memorie RAM dinamica, se folosea un artificiu: se faceau citiri periodice, mai dese decat durata de viata a informatiei (cele cateva milisecunde de care vorbeam). La fiecare citire, prin constructie, memoria RAM dinamica mai intai scoate pe magistrala de date informatia stocata, apoi rescrie celulele citite cu aceeasi informatie (aici ar trebuie citit despre cum functioneaza o memorie RAM dinamica, altfel explicatia e greu de urmarit). In mare, la un RAM dinamic, lucrurile stau cam asa: [*:1x9a7dm2]RAM-ul "uita" foarte repede ce s-a scris, in doar cateva milisecunde (celula de memorie RAM dinamica e, de fapt, un condensator care in cateva milisecunde se descarca - de aceea trebuie facut "refresh" la starea de incarcare a acelui condensator) [*:1x9a7dm2]la orice citire, informatia citita se si rescrie totodata (in acelasi loc), deci se mai prelungeste durata ei de viata cu cateva milisecunde [*:1x9a7dm2]trebuie sa citim TOATE adresele cel putin o data la cateva milisecunde, pentru a se contracara effectul autodescarcarii condensatoarelor care memoreaza bitii stocati, altfel informatia se pierde [*:1x9a7dm2]bineinteles ca niciun software nu garanteaza citirea TUTUROR celulelor de memorie la fiecare cateva milisecunde, deci treaba asta (citire = refresh = nu mai uita) e lasata in grija hardware-ului. [*:1x9a7dm2]Z80 stie sa faca refresh (adica sa faca in mod automat, pentru TOATE paginile de memorie, o citire - transparenta pentru utilizator si nesolicitata de software-ul care ruleaza - astfel incat informatia sa fie reimprospatata in ORICE celula RAM mai des decat cele cateva milisecunde) [*:1x9a7dm2]Aici apare registrul R. El este un registru pe 7 biti, care se incrementeaza automat, si cu ajutorul caruia se baleiaza automat toate paginile de memorie, adica se face pe rand o citire a TUTUROR paginilor de memorie, numai cu scopul de a se improspata informatia Pentru mai multe detalii, cauta pe Internet datasheet-ul lui Z80. ------------------------- Din ce spui, probabil ca registru R este folosit pe post de generator de numere aleatoare. Sa inteleg ca vrei sa faci reverse engineering la un joc de "pacanele". Link spre comentariu
Vizitator Postat Septembrie 12, 2013 Partajează Postat Septembrie 12, 2013 Exista doua categorii de generatoare de numere "la intamplare"1) Generatoare care se bazeaza pe o functie matematica. Generatoarele de tipul asta sunt, de fapt, pseudoaleatorii. Numerele generate nu sunt intamplatoare, se poate calcula ce numar va fi generat la urmatoarea extragere.2) Generatoare care se bazeaza pe evenimente naturale, evenimente care sunt cu adevarat intamplatoare, si care nu pot fi prevazute. De exemplu, exista generatoare care se bazeaza pe descompunerea radioactiva. Altele, pe zgomotul termic. Si tot asa.Generatoarele din exemplele de la punctul 2), de obicei sunt scumpe, asa ca se folosesc metode mai simple, cum ar fi: fac un numarator care numara cu viteza foarte mare, de milioane de ori pe secunda, numarator pe care il citesc atunci cand utilizatorul apasa un buton. Daca numarul citit e cu sot, atunci e "alba", daca nu, "e neagra". Pentru ca apasarile de buton sunt de milioane de ori mai lente decat viteza cu care numara numaratorul, atunci nu poti sti niciodata daca la urmatoarea apasare vei nimeri peste un numar par sau impar. La placa ta, probabil ca numaratorul este chiar registrul R.--------------------------------------Pe scurt, nu poti prevedea niciodata daca la urmatoarea apasare va iesi "alba" sau "neagra". Daca s-ar fi putut, n-ar mai fi existat "pacanelele". deci inteleg ca z80 ruleaza paginile din eprom random. Nu cred sa fie asa. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum