Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Původní podoba příspěvku

Roman Dolejsi Zpět na příspěvek

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> &lt;<a href="mailto:bomi@[doména skryta]">bomi@[doména skryta]</a>&gt;: <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/>&gt; Od: <a href="mailto:ordoz@[doména skryta]">ordoz@[doména skryta]</a><br/>&gt; Datum: 21.09.2007 13:47<br/>&gt;<br/>&gt;Miroslav Hajda (<a href="mailto:sharpemu@pandora.cz"> sharpemu@pandora.cz</a>) napsal(a):<br/>&gt;&gt; Svého času jsem se také chtěl zapojit do vývoje Zdeňkova emulátoru a<br/>&gt;&gt; kromě některých funkcí jako například vykreslovaní bez DirectX (tehdy<br/>&gt;&gt; kvůli Wine) a bez borderu jsem se rozhodl zkusit rozdělit emulátor na <br/>&gt;&gt; samostatná zařízení (tedy bod 3), která by se k hlavní aplikaci<br/>&gt;&gt; připojovala ve formě modulů... Bohužel jsem tehdy (kromě zpomalení<br/>&gt;&gt; vykreslování) narazil v Delphi na až příliš obtížně překonatelné překážky <br/>&gt;&gt; souvisejícími s bugem RecreateWND... :-(<br/>&gt;&gt;<br/>&gt; Rozdeleni emulatoru na jednotlive periferie je asi prece jen trochu neco<br/>&gt; jineho, nez uvadim v bodu 3. Videl bych to spis tak, ze si v konfiguraci <br/>&gt; emulatoru zaregistruju nejaky socket, do ktereho pak bude emulator v<br/>&gt; taktech posilat obsah MZ sbernice. Jakykoliv externi proces pak muze na<br/>&gt; tomto socketu poslouchat a odpovidat, s tim, ze samozrejme musi akceptovat <br/>&gt; interni hodiny - vse je samozrejme hodne zavisle na tom jak to vlastne nyni<br/>&gt; 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.&nbsp;&nbsp;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/>&nbsp; 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/>&nbsp; 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 &#39;periferie&#39;.<br/><br/>&nbsp; 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/>&nbsp; Vysledna struktura emulovaneho pocitace je &#39;slepena&#39; 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/>&nbsp; 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/>&nbsp; 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/>&nbsp; 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/>&nbsp; Kdyby mel nekdo chut, mohu zpristupnit popisy interfacu, dodelat &#39;javadoc&#39; pro pozadavky dostupnych modulu a popis typicke konfigurace v XML - aby si kazdy mohl sestavit masinu podle vlastniho prani ;-)<br/> <br/>&nbsp; Pripadne prime spolupraci se meze nekladou :-)<br/><br/>Nejake namety?<br/><br/>zatim,<br/>Roman<br/>