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

Od: Jiri Biba
Datum: 10.9.2011 21:00
Předmět: Preruseni u Z80

Preruseni u Z80:

K ty ZPS07 budu potreba pro timeout pro vypinani motoru disket nejakej HW generator asi 1 sekundy kterej by daval preruseni do Z80 pro nasitani impulsu. Mam na to desku, 6XB00680, kde jsou delice co delaji 1 s pulzy z FI2. To odpocitani jde sice udelat programove ve cteni status klavesnice (u CP/M pocitac vetsinu casu totiz ceka ve vstupu znaku z klavesnice!). Treba je tak reseno blikani kurzoru. Jsou ale pripady kdy nektery programy jdou do klavesnice minimalne a pak by se dlouho drbaly diskety nez by napocital timeout. Proto bych radsi to  HW reseni pres preruseni. Jenze u Z80 jsem nikdy preruseni nepouzival. Delal jsem jen s 3214 a 8259 na 8080ce. O Z80 jsem jen nasel, ze ma 3 mody maskovanyho preruseni a jedno nemaskovany, to asi pouzit nepujde. Ty 3 maskovany jsou nasledujici, IM0 je totozny s 8080 kdy jsou natvrdo nadefinovany skoky na 7 adres na zacatku Ramky a prerusovaci zarizeni musi tuhle adresu vnutit do procesoru . Podobne je to v IM2, tam se muze volne naprogramovat kam se skoci v celym prostoru Ramky. Zase se musi vnutit adresa zvenci nejlip svabem ze stavebnice Z80. Tohle ovsem v SAPI1 nejde, dokonce nechodi ani radic preruseni 8259 s Z80 dohromady. Takze zbyva jen IM1, kdy se nic nevnucuje ale vzdy se skoci pri preruseni na adresu 38H. Pokud to bude jen od toho generatoru 1 sekundy, tak to neni problem, ale co kdyz budu chtit pouzit dalsi preruseni? Dekoder preruseni v Sapi neni. Je mozny sice programove zjistit, co preruseni vygenerovalo, ale vubec nevim, jak to u Sapi udelat. Cetl jsem sice neco ze to jde vyresit pomoci zablokovani pruchodu INTA  v pripojrnym zarizeni ale nak mi to nejde do hlavy. S tim se preci resi priority a to je neco jinyho.
Nedokazal by jste s tim prosim nekdo poradit? Ja tu od Z80 skoro nic nemam a na netu je kolem z80 dost textu ale tohle zrovna ne.

Diky za pomoc, Jirka

 

 
[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)]