Konference: Počítač SHARP MZ-800 a emulátory
Od: | Michal Hučík |
Datum: | 18.10.2011 17:19 |
Předmět: | SIO a vektor preruseni z unikarty |
Ahoj,
jak uz jsem pred nedavnem psal, tak na unikarte nema moc smysl emulovat skutecne SIO, protoze jednak nemame pripojene vsechny potrebne sbernicove signaly a taky by se nam zrejme do arbitra neveslo dekodovani dvoubajtove instrukce RETI na kterou umi SIO i PIO zareagovat. Dalsi vymozenosti, ktere SIO umi jsou asi nejake kontrolni soucty, ktere se mi nejak nechtelo zkoumat - pokud nekdo vi o nektere z techto vlastnosti, ktere stoji za to emulovat, tak sem s nimi.
Nicmene kdyz jsem nad tim premyslel, tak si myslim, ze s nekolika dratovyma propojkama by melo byt mozne dosahnout toho, aby unikarta umela alespon poslat vektor preruseni, coz by rozhodne nebylo k zahozeni.
Protoze ale nebudeme schopni zareagovat na RETI, tak musi byt uvnitr prerusovaci smycky neco, cim se shodi INT signal, tak, jak uz to mame udelane u emu_FDC, kde signal interruptu odstranujeme po libovolne I/O operaci nad datovym portem (pokud by data nikdo nevyzvednul, tak bude interrupt trvat do nekonecna - normalni FDC by to samozrejme vyresil timeoutem, coz zrovna u emu_FDC asi casem taky doplnime). Stejne to asi musime udelat i u RS232, jen ten timeout tam jaksi ztraci smysl. Kdo se bude spolehat na RETI, ten se z toho interruptu nikdy nedostane.
Predstavuju si to asi takhle:
HW uprava pro vektor preruseni by zrejme obnasela zmenu soucasne dratove propojky, ktera privadi do CPLD signal WR, ten by se prehodil na M1. Kod arbitra by se upravil tak aby podle RD, IORQ a M1 dokazal rozeznat zda se jedna o IORQ (in/out), nebo zda je pozadovan vektor preruseni.
Signal, kterym STM32 generuje interrupt je potreba privest na posledni volny pin arbitra - podle nej pak arbitr pozna, zda ma reagovat na zadost o vektor preruseni - tedy pokud STM32 zadne preruseni negeneruje, tak se nas netykaji zadosti o vektor a zrejme na ne odpovi PIO uvnitr Sharpa.
Do STM32 potrebujeme privest signal M1. Pomoci RD a M1 pak STM pozna zda se nejedna o bezny pozadavek, nebo ze si CPU reklo o vektor.
A posledni dulezita vec, kterou ale nevim jiste - je to spise domenka, ze to nejak tak ma fungovat: dale pak je potreba do STM32 privest signal IEI, kterym budeme v STM hradlovat vystup INT. Predpoklad je takovy, ze nam timto signalem rika nadrazene PIO, ze zrovna ted pochazi ruseni od nej a my nemame narok cpat se na sbernici.
Co myslite? Je ta uprava realizovatelna? Stoji to za to?
Michal
[2011/1 (52)] [2011/2 (9)] [2011/3 (2)] [2011/4 (9)] [2011/5 (8)] [2011/7 (1)] [2011/8 (40)] [2011/9 (146)] [2011/10 (116)] [2011/11 (29)] [2011/12 (110)]
[1999 (1)]
[2000 (168)]
[2001 (733)]
[2002 (459)]
[2003 (654)]
[2004 (224)]
[2005 (105)]
[2006 (182)]
[2007 (201)]
[2008 (294)]
[2009 (363)]
[2010 (782)]
[2011 (522)]
[2012 (642)]
[2013 (442)]