Zahadicka u Z80
Moderátor: Moderátoři
Zahadicka u Z80
CYKL: IN A,(C)
LD (HL),A
INC HL
DJNZ CYKL
a nestacil jsem se divit!! Chodi to naprosto bez problemu. Mohl by mi prosim nekdo ze Sharpistu ci jinych Zetkaru prozradit, v cem asi muze byt problem? Nejaky casovani? Ta Z80 chodi na 2 MHz, pamet v portu je 50nS a pristup do ni odpovida casovym prubehum v datasheetu.
Jirka
Z80 je na 2MHz. Porty se adresuji A0-A7 a dekoduji v GAL16V8. Pamet je staticka Alliance AS6C4008 55nS (512kb*8). Ty dve kaskadni 74LS193 ovladaji v Alliance A0-A7. Jeji A8-A18 jsou adresovany z dalsich dvou portu, kde se adresa zapisuje do 74ls373. Jak jsem jiz psal, komunikuje se po blocich 256 byte. Nejdrive se prednastavi na obou citacich 00h a na 74ls373 se posle stredni a nejvyssi byte adresy pro Alliance. No a pak se pomoci INIR ci OTIR nacte ci zapise 256 byte blok. Zapis pres OTIR chodi, cteni pres INIR blbne ale pokud se instrukce INIR rozepise pres DJNZ cykl, tak to chodi taky. Otestovano nekolikrat za sebou zapisem s naslednou verifikaci nahodilych vzorku dat. HW je pro zapis a cteni uplne stejny, jedinny rozdil je, ze pri INIR se aktivuje OE a pri zapisu WE pro Alliance.
Tyhle blokovy prenosy pouzivam radu let , treba i 4 instrukce INIR za sebou na nacteni bloku 1024 byte a nikdy me to takovyhle kravoviny nedelalo.
Zahadou mi je, proc chodi OTIR a ne INIR a proc po rozepsani na cyklus pomoci IN A,(C) je to v poradku. Jestli mi das email poslu ti vykres v PDF.
Jirka
Edit: osazeni odporu vyresilo problem. Vse chodi jak ma.
Jirka