<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix"><br>
Jak jsi mountoval image do FDD?<br>
<br>
Popravde jsem si rikal, ze pouziti praveho tlacitka mysi bude
jedna z prvnich veci, ktere uzivatel sam od sebe vyzkousi... Mozna
bych mel pri startu programu napsat do console povidani o tom, at
uzivatel zkusi sahnout na prave tlacitko nad oknem emulatoru.<br>
<br>
<br>
Pokud se ti vsak program po Alt+D slozi, tak mas podle mne bud
poskozeny nejaky soubor emulatoru, ci runtime knihovny, nebo
nejaky jiny problem ve svem PC.<br>
<br>
Mezi 1900 a 1200 % bych nevidel az tak veliky rozdil - tam uz
zrejme narazis na nejake HW limity. <br>
Ja u sebe poustim emlator na procesoru i5-3570K, pretaktovanem na
4.2 GHz a na Nvidia MSI 970, ktera je uz od vyrobce take
pretaktovana ... Na takovem zeleze uz se neda vymlouvat
nestihajici HW. <br>
<br>
Uz v prosinci jsme se tady bavili o tom, ze kompilator jako takovy
na to zrejme nebude mit az tak veliky vliv.<br>
Vyznamny vliv bude mit zapnuta optimizace kompileru. Ja pouzivam
O2. Ze zacatku jsem chvili pouzival i O3, ale s pribivajici
funkcionalitou to pri teto optimizaci uz zacalo padat. Jinak uz v
prosinci jsme se tady bavili o tom, ze kompilator jako takovy
zrejme nema prilis velky veliky vliv na to, zda ta emulace bezi ve
stovkach, nebo v tisicich procent.<br>
<br>
Ja jsem se pri prepisovani jadra emulatoru alespon ze zacatku
snazil stale myslet na to, aby se v mistech, kde program travi
nejvice casu vyuzivala co nejvice cache procesoru.<br>
Ze zacatku jsem pri psani neustale meril jak se na vykonu projevi
jedna metoda, pak treba jina... Spoustu casti programu jsem mel
takto napsano v nekolika ruznych variantach a proste jsem hledal
cestu, dokud jsem nebyl spokojeny. Pozdeji uz jsem zas tolik
neoptimalizoval - neco si muzu nechat i na pozdeji...<br>
<br>
Tech zminenych 19 000% dosahnu tak, ze bypasuju generovani 1M1
hodin, ktere se ted produkuji zbytecne pomalou cestou, kdy
uplynuly GDG cas po kazde instrukci vydelim 8 a s kazdou sestupnou
hranou 1M1 volam event v CTC. <br>
Lze se tomu vyhnout tak, ze si pri prvni udalosti v CTC spocitam
kdy dojde k nejake povsimnuthodne udalosti a do te doby si CTC
nevsimat. Pouze v pripade, ze by se program zeptal na stav citace,
nebo by se zmenilo nastaveni, tak dopocitat aktualni stav. Verim,
ze tak se k tem 19 000% priblizim i s funkcnim CTC.<br>
<br>
No a samotne mereni pak probihalo na instrukci JR 0xfe - tedy v
podstate pri nulove zatezi.<br>
<br>
Kdyz jsem poustel jen samotne CPU + pamet a pocitani GDG taktu,
tak to melo odhadem rekneme treba 70 000 % (to cislo uz si fakt
nepamatuju).<br>
<br>
Jinak pro zajimavost par drobnych mereni na mem HW:<br>
<br>
5 750 % monitor s neprimountovanym diskem ve stavu "Make ready
FD"<br>
4 870 % monitor po 'M' - blikajici kurzor<br>
6 020 % monitor - vypis pameti: * D0000FFFF (cely vypis pameti
trva cca 7.1 sekund ) <br>
4 720 % blikani borderu: ld bc,0x06cf; out (c),a; inc a; jp
radek_s_out<br>
5 200 % nastartovana cp/m s mzrun<br>
4 040% Flappy intro<br>
3 160% Interkarate - hra<br>
<br>
Ty cisla jsou asi +/- 150 % v zavislosti na tom co ktery virus na
desktopu delal zrovna ve chvili, kdy probihalo mereni. <br>
<br>
Rychlost vsak nebyla hlavnim kriteriem. Chtel jsem zachovat pokud
mozno maximalni moznou presnost emulace na zaklade poznatku, jake
jsem o Sharpu doposud ziskal. I kdyz treba vim, ze v nekterych
mistech mam haluz, tak je o tom alespon zminka v poznamce ve
zdrojaku. <br>
V me emulaci se provadi synchronizace vsech signalu nejen mezi
instrukcemi, ale i uvnitr LD, IN, OUT, PUSH, POP, atp... Takze je
zohlednen i pocet taktu, ktere ubehly od zacatku instukce. Pokud
napr. napisete program, ktery bude cekat na stav HBLN, ci HSYNC a
podle nej provede nejakou zmenu na obrazovce, tak pozice paprsku v
ose X bude v podstate na stejnem miste, jako v realnem Sharpu, o
cemz se jinym emulatorum muze jen zdat ;)<br>
<br>
Michal<br>
<br>
<br>
Dne 22.9.2015 v 18:00 Miloš napsal(a):<br>
</div>
<blockquote cite="mid:56017B0F.1060200@atlas.sk" type="cite">
<meta http-equiv="Context-Type" content="text/html;
charset=iso-8859-2">
Ak sa nemýlim, v emulátore nie je žiadne menu ako bolo v staršej
verzii. Existuje nejaký zoznam klávesových skratiek? Skúsil som,
či je zabudovaný aj nejaký debugger, ako v Zdeňkovom emulátore a
stlačil som Alt+D. Program okamžite zhavaroval. A teraz len moja
domnienka: Debugger bol odstránený, ale klávesová skratka ostala a
snaží sa otvoriť neexistujúci formulár?<br>
<br>
A ešte mám otázku. Ty si zrejme dosť skúsený programátor, aby si
mi vedel odpovedať. Tvoj emulátor má u mňa v monitore 1900 %. Môj
má cca 1200 %. Môže byť aj prekladačom až taký rozdiel rýchlosti?
Teoreticky pri rovnakom kóde (ideálny prípad), či by mohli byť až
také rozdiely v rýchlosti? Písal si, že si sa dostal na 190000 % a
to u mňa nehrozí ani keby všetko povypínam a beží len čistá
emulácia Z80. Ja to programujem v Lazarovi (neslušne povedané free
verzia Delphi).<br>
<br>
Miloš<br>
<br>
<div class="moz-cite-prefix">Dňa 17. 9. 2015 o 21:28 Michal Hucik
- ORDOZ napísal(a):<br>
</div>
<blockquote
cite="mid:19597_1442517984_55FB13E0_19597_227_1_55FB146C.9090909@ordoz.com"
type="cite"> <br>
... emulátory jako po dešti :)<br>
<br>
Posledních pár měsíců jsem pilně pracoval na zpřehlednění a
zrychlení emulátoru MZ-800. Nakolik se mi to v obou směrech
povedlo můžete posoudit sami <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="http://mz800emu.sourceforge.net">http://mz800emu.sourceforge.net</a><br>
<br>
Michal<br>
<br>
PS: Jakube, tak doufám, že teď už nebudeme vepři :)<br>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
SharpMZ mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:SharpMZ@mail.ordoz.com">SharpMZ@mail.ordoz.com</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://mail.ordoz.com/mailman/listinfo/sharpmz">http://mail.ordoz.com/mailman/listinfo/sharpmz</a>
</pre>
</blockquote>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
SharpMZ mailing list
<a class="moz-txt-link-abbreviated" href="mailto:SharpMZ@mail.ordoz.com">SharpMZ@mail.ordoz.com</a>
<a class="moz-txt-link-freetext" href="http://mail.ordoz.com/mailman/listinfo/sharpmz">http://mail.ordoz.com/mailman/listinfo/sharpmz</a>
</pre>
</blockquote>
<br>
</body>
</html>