<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>