Surová data tak, jak byla v roce 2013 stažena z Pandory (HTML zdroj bez úprav, osobní e-mailové adresy jsou maskované).
<!-------------------------------------------------------------->
<!-------------------------------------------------------------->
<table width="100%"><tr><td align="left" valign="middle"></td><td align=right valign="middle"></td></tr></table><BR><br/><br/><div>21.9.07, <b>Miroslav Hajda (<a href="mailto:sharpemu@pandora.cz">sharpemu@pandora.cz</a>)</b> <<a href="mailto:bomi@[doména skryta]">bomi@[doména skryta]</a>>: <br/>Předně si cením toho, že se tu po dlouhé době oběvil i příspěvek k tématu, kvůli kterého byla původně tato diskuze založena... ;-) <br/>______________________________________________________________<br/>> Od: <a href="mailto:ordoz@[doména skryta]">ordoz@[doména skryta]</a><br/>> Datum: 21.09.2007 13:47<br/>><br/>>Miroslav Hajda (<a href="mailto:sharpemu@pandora.cz"> sharpemu@pandora.cz</a>) napsal(a):<br/>>> Svého času jsem se také chtěl zapojit do vývoje Zdeňkova emulátoru a<br/>>> kromě některých funkcí jako například vykreslovaní bez DirectX (tehdy<br/>>> kvůli Wine) a bez borderu jsem se rozhodl zkusit rozdělit emulátor na <br/>>> samostatná zařízení (tedy bod 3), která by se k hlavní aplikaci<br/>>> připojovala ve formě modulů... Bohužel jsem tehdy (kromě zpomalení<br/>>> vykreslování) narazil v Delphi na až příliš obtížně překonatelné překážky <br/>>> souvisejícími s bugem RecreateWND... :-(<br/>>><br/>> Rozdeleni emulatoru na jednotlive periferie je asi prece jen trochu neco<br/>> jineho, nez uvadim v bodu 3. Videl bych to spis tak, ze si v konfiguraci <br/>> emulatoru zaregistruju nejaky socket, do ktereho pak bude emulator v<br/>> taktech posilat obsah MZ sbernice. Jakykoliv externi proces pak muze na<br/>> tomto socketu poslouchat a odpovidat, s tim, ze samozrejme musi akceptovat <br/>> interni hodiny - vse je samozrejme hodne zavisle na tom jak to vlastne nyni<br/>> vypada uvnitr emulatoru.<br/><br/>V mém případě šlo přesně o to, co zde popisuješ... Jednotlivé moduly si měly registrovat obsluhu portů, části paměti, případně obsahy registrů atp. Cílem bylo umožnit jejich vzájemnou zaměnitelnost a tedy možnost dalšího vývoje bez nutnosti zásahu do hlavního jádra a to včetně vývoje v jiných programovacích jazycích... Podobné cíle měl tehdy se svým emulátorem tuším i Roman Dolejší... <br/><br/></div><br/>Ahoj,<br/><br/> mas Mirku pravdu, moje MCE presne takhle funguje. V principu se jedna o cisty modularni framework, ve kterem je vse (CPU, sbernice, periferie) reprezentovano v podobe modulu a jeho vstupne-vystupnich interface. Kazdy modul definuje, co vyzaduje za okolni interface a sam nejaky interface implementuje. <br/><br/> Ve finale to tedy vypada tak, ze CPU ke sve praci potrebuje pametovy a portovy radic. Pametovy radic ma pripojenu pamet, portovy radic ma do sebe zaregistrovane 'periferie'.<br/><br/> Kazda periferie (opet modul) je realizovana jednoduchou tridou, ktera odpovida pouze na getMemory() a setMemory() prikazy a vetsinou rozeznava jen par spodnich bitu adresy. Takovou periferii pak muzete pripojit kamkoli. <br/><br/> Vysledna struktura emulovaneho pocitace je 'slepena' az pri startu podle konfiguracniho souboru (ve formatu XML). Tam pamet a periferie pripojite na spravna mista (v pametovem ci portovem prostoru) a pametovy a portovy radic pak pripojite k CPU. <br/><br/> Vsechny emulace dostupne v MCE tak casto vyuzivaji spolecne tridy na realizaci periferii - napr. Disciple na ZX i standardni floppy na Sharpu pouzivaji WD297x.java modul. Podobne to je i u casovace (I8254.java), CPU (Z80, i8080) a dalsich .. <br/> Take podpurne moduly jsou casto vyhodne a znovupouzitelne - modul pro spravu a on-the-fly vymenu ROM obsahu, virtualni reprezentace floppy disku s podporou formatovani ci virtualni reprezentace pasky..<br/><br/> Ted nemam az tolik casu se emulatorem zabyvat, ale presto jsem byl v tomto roce uz schopen dodelat zakladni emulaci IQ-151, Ondry a dale vylepsovat obecne vlastnosti emulatoru. Mozna do konce roku uvolnim dalsi public verzi :-) <br/><br/> Kdyby mel nekdo chut, mohu zpristupnit popisy interfacu, dodelat 'javadoc' pro pozadavky dostupnych modulu a popis typicke konfigurace v XML - aby si kazdy mohl sestavit masinu podle vlastniho prani ;-)<br/> <br/> Pripadne prime spolupraci se meze nekladou :-)<br/><br/>Nejake namety?<br/><br/>zatim,<br/>Roman<br/>