Konference: SAPI-1 a československé mikropočítače

Od: Jiri Biba
Datum: 15.12.2011 10:08
Předmět: Podivnost instrukce INIR


Davam dohromady 4 megovej zalohovanej Ramdisk.  (ZRMD-1)  Chvili jsem ho musel lamat, protoze chodil ale blbnul, nahodile nacetl neco jinyho nez mel. Do toho Ramdisku se leze po 256 bytovych sektorech pres port. V Ramdisku se adresuje pomoci kaskadniho citace, kazda aktivace signalu RD nebo WR nacte ci zapise data a deaktivace RD nebo WR  zvysi citac o 1 pro dalsi cteni ci zapis. Na tohle se pouziva po predchozim nastaveni registru HL a BC blokova instrukce  INIR nebo OTIR. Postupem casu jsem zjistil, ze zapis pres OTIR probiha ok ale ze cteni pres INIR blbne protoze citace skonci nekolik adres pod koncovou adresou, kde by skoncit mely. Pokud ale instrukci INIR rozepisu :

CYKL: IN (C),A

            LD (HL),A

            INC HL

            DJNZ CYKL

tak to chodi jak ma a 1,5 Mb (tedy asi 180 souboru) se zkopiruje na disk a nasledne zverifikuje naprosto v poradku!!!  S podobnou veci jsem se nikdy predtim za 25 let blbnutim s Z80 nesetkal. Povesil jsem na oboji logicky analyzator a jedinny rozdil je , ze u toho rozepsanyho cyklu je mezi jednotlivymi signaly RD asi 2,5 x vetsi mezera nez pri INIR. Vubec nevim, co muze zpusobit takovou prapodivnost, citace zvladaji radove vyssi rychlost a pameti jsou 55 nS, takze v tom problem taky asi nebude. Pro oboji je naprosto stejny HW, rozdil je jen ze pri cteni se aktivuje pro Ramku signal OE a pro zapis WE....

 

Netusite prosim nekdo v cem muze byt dilo?

 

Diky Jirka

 

 

 


Ostatní příspěvky vlákna:

 
[2011/2 (7)] [2011/3 (12)] [2011/5 (50)] [2011/6 (18)] [2011/7 (112)] [2011/8 (192)] [2011/9 (94)] [2011/10 (16)] [2011/11 (46)] [2011/12 (39)]


[2010 (676)] [2011 (586)] [2012 (976)] [2013 (538)]