Zdravím,
s tím časem na psaní emulátoru je to opravdu špatné. Tolikrát jsem si již sliboval, že MCE opráším, opravím nedodělky a konečně někde vypublikuji.. A nikdy čas nezbyl. Seznam věcí, které jsem tam kdy chtěl dodělat, vždy jen narůstal a málokdy se tenčil.. A teď se stavbou baráku to je snad ještě horší :-(
MCE zhruba splňuje, co by bylo asi potřeba - je modulární.. Emulace je reprezentovaná komponentami připojenými do adresového nebo portového prostoru. Komponenty samy mohou referencovat MMU a pomocí něho přepínat paměť nebo povolovat či zakazovat porty. Komponenta může mít svou konfigurační obrazovku, výchozí hodnoty a hodnoty uživatele.
Tento princip mi umožňuje sdílet jednu implementaci na různých platformách - např. plnou implementaci i8253 jsem psal podle PDFka čipu od Intelu a jednu komponentu používám na MZ, ZX i PMD, jen připojenou vždy jinam.
MCE po startu načte konfiguraci dané emulace z XML souboru, připojí všechny komponenty včetně CPU a nastartuje emulaci. Prakticky vlastně neví, že nějaká emulace běží :-)
V emulaci MZ-800 funguje prakticky vše kromě zvuku a brždění na rychlost reálného procesoru. GDG je 99% implementována feature-wise, synchronizovaná s CPU. Debugger je extrémní, podporuje složené breakpointy s podmínkami, pohledy do paměti, identifikaci paměťových oblastí apod. K dispozici je i věrná emulace pásky včetně převíjení a editace (TMZ - i.e. Antiriad od Hechta v jednom souboru s InterCopy zavaděčem a zbylými bloky v ZX módu), 8-bit nebo 16-bit IDE, plná podpora FDC (HD) včetně vytvoření prázdného image a jeho naformátování v CP/M. Je možné připojit libovolný adresář z lokálního disku jako CP/M drive (provedu shadow BDOSu a emuluji rutiny CP/M při přístupu na daný disk). Podporuji dělání screenshotů, převod obrázků mezi různými grafickými módy, převod ZX obrázků do MZ-700 obrazovky pouhým Copy&Paste.. Člověk by nevěřil, s čím vším jsem si tehdy vyhrál :-)
Zhruba před měsícem jsem přidal plnou podporu MemExt. Třeba mi o víkendu vyjde čas a konečně novější verzi MCE vydám. Mohl bych se mrknout i na tu podporu Unikarty. Ale to všechno jsou jen úvahy a při mém volném čase si myslím, že mi bude moci Zdeněk vždy říkat, že MCE je jen z říše fantazy :-)
Tak zatím a hezký víkend!
Roman
btw. nezatracujte Javu, C# a ostatní managed jazyky. Možnosti debuggingu, trasovatelnosti chyb, uspořádanosti objektového kódu či praktické využití design patternů jsou o řád jinde než u nižších jazyků. Je samozřejmě pravda, že ne ke všemu se hodí.. ale na emulátor s otevřenou komponentovou platformou je Java nebo C# naprosto ideální řešení.
s tím časem na psaní emulátoru je to opravdu špatné. Tolikrát jsem si již sliboval, že MCE opráším, opravím nedodělky a konečně někde vypublikuji.. A nikdy čas nezbyl. Seznam věcí, které jsem tam kdy chtěl dodělat, vždy jen narůstal a málokdy se tenčil.. A teď se stavbou baráku to je snad ještě horší :-(
MCE zhruba splňuje, co by bylo asi potřeba - je modulární.. Emulace je reprezentovaná komponentami připojenými do adresového nebo portového prostoru. Komponenty samy mohou referencovat MMU a pomocí něho přepínat paměť nebo povolovat či zakazovat porty. Komponenta může mít svou konfigurační obrazovku, výchozí hodnoty a hodnoty uživatele.
Tento princip mi umožňuje sdílet jednu implementaci na různých platformách - např. plnou implementaci i8253 jsem psal podle PDFka čipu od Intelu a jednu komponentu používám na MZ, ZX i PMD, jen připojenou vždy jinam.
MCE po startu načte konfiguraci dané emulace z XML souboru, připojí všechny komponenty včetně CPU a nastartuje emulaci. Prakticky vlastně neví, že nějaká emulace běží :-)
V emulaci MZ-800 funguje prakticky vše kromě zvuku a brždění na rychlost reálného procesoru. GDG je 99% implementována feature-wise, synchronizovaná s CPU. Debugger je extrémní, podporuje složené breakpointy s podmínkami, pohledy do paměti, identifikaci paměťových oblastí apod. K dispozici je i věrná emulace pásky včetně převíjení a editace (TMZ - i.e. Antiriad od Hechta v jednom souboru s InterCopy zavaděčem a zbylými bloky v ZX módu), 8-bit nebo 16-bit IDE, plná podpora FDC (HD) včetně vytvoření prázdného image a jeho naformátování v CP/M. Je možné připojit libovolný adresář z lokálního disku jako CP/M drive (provedu shadow BDOSu a emuluji rutiny CP/M při přístupu na daný disk). Podporuji dělání screenshotů, převod obrázků mezi různými grafickými módy, převod ZX obrázků do MZ-700 obrazovky pouhým Copy&Paste.. Člověk by nevěřil, s čím vším jsem si tehdy vyhrál :-)
Zhruba před měsícem jsem přidal plnou podporu MemExt. Třeba mi o víkendu vyjde čas a konečně novější verzi MCE vydám. Mohl bych se mrknout i na tu podporu Unikarty. Ale to všechno jsou jen úvahy a při mém volném čase si myslím, že mi bude moci Zdeněk vždy říkat, že MCE je jen z říše fantazy :-)
Tak zatím a hezký víkend!
Roman
btw. nezatracujte Javu, C# a ostatní managed jazyky. Možnosti debuggingu, trasovatelnosti chyb, uspořádanosti objektového kódu či praktické využití design patternů jsou o řád jinde než u nižších jazyků. Je samozřejmě pravda, že ne ke všemu se hodí.. ale na emulátor s otevřenou komponentovou platformou je Java nebo C# naprosto ideální řešení.
2012/1/20 Miroslav Hajda (sharpemupandora.cz) <bomi[doména skryta]>
Pokud byste se chtěli do nečeho pusit, tak mi dejte vědět, že bych třeba přiložil ruku k dílu...
Sice jsem teď neměl pár let na Sharpa čas, ale předtím jsem se o tvorbu emulátoru párkrát pokusil. Naposledy jsem zkoušel upravit Zdeňkův emulátor v Javě jako applet tak, aby bylo možné spouštět soubory přímo z webu, ale nějak jsem to ani pořádně nedokončil (rozpracovaný web jsem tu kdysi zmiňoval http://sharpmz.zdechov.net).
Kromě toho existovaly v Javě i další emulátory, např. MCE Romana Dolejšího
Pokud byste se rozhodli pro C++, možná by se dala použít část kódů z http://sourceforge.net/projects/mz800em/ případně http://homepage3.nifty.com/takeda-toshiya/mz700/index.html
HajdaM
______________________________________________________________
> Od: "Ctirad Feřtr (sharpemupandora.cz)" <c.fertr[doména skryta]>
> Komu: "Konference \'"Počítač SHARP MZ-800 a emulátory\'"" <sharpemupandora.cz>
> Datum: 20.01.2012 14:50
> Předmět: Re: Emulator - Bylo: Emulace Unikarty
---
Pokud byste se chtěli do nečeho pusit, tak mi dejte vědět, že bych třeba přiložil ruku k dílu...
Sice jsem teď neměl pár let na Sharpa čas, ale předtím jsem se o tvorbu emulátoru párkrát pokusil. Naposledy jsem zkoušel upravit Zdeňkův emulátor v Javě jako applet tak, aby bylo možné spouštět soubory přímo z webu, ale nějak jsem to ani pořádně nedokončil (rozpracovaný web jsem tu kdysi zmiňoval http://sharpmz.zdechov.net).
Kromě toho existovaly v Javě i další emulátory, např. MCE Romana Dolejšího
Pokud byste se rozhodli pro C++, možná by se dala použít část kódů z http://sourceforge.net/projects/mz800em/ případně http://homepage3.nifty.com/takeda-toshiya/mz700/index.html
HajdaM
______________________________________________________________
> Od: "Ctirad Feřtr (sharpemupandora.cz)" <c.fertr[doména skryta]>
> Komu: "Konference \'"Počítač SHARP MZ-800 a emulátory\'"" <sharpemupandora.cz>
> Datum: 20.01.2012 14:50
> Předmět: Re: Emulator - Bylo: Emulace Unikarty
>
>Dne Pá 20. ledna 2012 14:38:06, Michal Hučík napsal(a):
>
>Pokud by se mělo jít cestou nového emulátoru, vzal bych za základ nějaký
>kvalitně napsaný multiplatformní emulátor jiného Z80 stroje (MSX, CPC, možná
>ZX) a přepsal věci týkající se přímo sharpa. Nebo se podívat, jestli by nešel
>použít jeden z tuším dvou existujích nedodělků.
>
>Ctirad
>
>> Zrejme bychom ale meli postoupit dal a myslenka toho, ze by jsme
>> spolecnymi silami stvorili novy emulator, ktery by byl opensource,
>> multiplatformni, otevreny pro implementaci noveho HW (pokud mozno ovsem
>> nenapsany v JAVA ;) se mi hodne libi. Nicmene jako programator nemam s
>> aplikacemi tohoto typu naprosto zadne zkusenosti :(
>
>
>---
>
>Dne Pá 20. ledna 2012 14:38:06, Michal Hučík napsal(a):
>
>Pokud by se mělo jít cestou nového emulátoru, vzal bych za základ nějaký
>kvalitně napsaný multiplatformní emulátor jiného Z80 stroje (MSX, CPC, možná
>ZX) a přepsal věci týkající se přímo sharpa. Nebo se podívat, jestli by nešel
>použít jeden z tuším dvou existujích nedodělků.
>
>Ctirad
>
>> Zrejme bychom ale meli postoupit dal a myslenka toho, ze by jsme
>> spolecnymi silami stvorili novy emulator, ktery by byl opensource,
>> multiplatformni, otevreny pro implementaci noveho HW (pokud mozno ovsem
>> nenapsany v JAVA ;) se mi hodne libi. Nicmene jako programator nemam s
>> aplikacemi tohoto typu naprosto zadne zkusenosti :(
>
>
>---
>