<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">To s tím NMI se tenkrát dělalo z jiného
      důvodu.</div>
    <div class="moz-cite-prefix">Totiž aby Z80 nepřestal refreshovat
      DRAM a neresetoval se. Třeba na ZX-Spectrum tohle dělal jeden ten
      prodávaný interface (Disciple ???) který měl v sobě EPROM paměť
      která byla víceméně kopií ZX-Spectrum ROM, ale trochu přepsanou,
      aby se jim tam navíc vešel maličký monitor program pro editaci
      paměti. A ten modul měl tlačítko NMI, které vyvolalo přerušení a
      když k tomu přerušení došlo, byla už namapovaná ta stínová ROM a
      skočilo to rovnou do toho monitor prográmku, kterým se dala
      editovat data v RAM (třeba nekonečné životy do her nebo se
      vyhodila ochrana proti kopírování). A při tom byla na stacku pořád
      návratová adresa do původního místa v programu. Když se to celé
      poeditovalo, tak procesor provedl RETI instrukci a než skočil na
      původní místo, tak se stínová EPROM už odpojila, takže i když byly
      někde v programu třeba kontroly na checksum ROMky, program to
      nepoznal.</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Pokud má dnes to Z80 statickou paměť
      (ty tehdy byly příšerně drahé a s malou kapacitou, takže se jako
      RAM běžně nepoužívaly), tak by měl stačit /BUSRQ, /BUSAK,/HALT.</div>
    <div class="moz-cite-prefix">Ani ten RESET by nemusel být mám dojem
      potřeba, protože pokud se HALT uvolní, měl by pokračovat kde
      přestal.</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Ale radil bych hledat na Netu. Už je to
      dááááávno, co jsem podobné věci nosil v hlavě.<br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Zdraví PavelK</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Dne 23.03.2024 v 13:51 Jindrich Fucik
      napsal(a):<br>
    </div>
    <blockquote type="cite"
      cite="mid:2mo.20ad.4LqUfqcc2wZ.1b%7Dj0s@seznam.cz">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div>V zásadě máš pravdu.</div>
      <div>Pro upřesnění:</div>
      <div>NMI = Non maskable interrupt (to nepotřebuješ)</div>
      <div>HALT = zastavení procesoru a uvedení do HiZ (to chceš)</div>
      <div>(někde mi schází HLDA, ale nevím, jestli jsem na správné
        platformě)<br>
      </div>
      <div>Pozor na to, že po odpojení se ti přestanou refreshovat
        DRAMky, takže to musíš dělat sám.</div>
      <div>A taky to, že po resetu se procesor pokusí začít v nějaké
        ROMce, která provede boot up sekvenci. To taky nechceš, takže se
        různě podstrkoval jiný začátek paměti.</div>
      <div>Respektive se někdy dělalo, že se použilo právě to NMI a
        podstrčil se program, kterej nechal hlavní procesor udělat celou
        tu manipulaci.</div>
      <div><br>
      </div>
      <aside>---------- Původní e-mail ----------<br>
        Od: Pavel Kutina <a class="moz-txt-link-rfc2396E" href="mailto:hw@prelude.cz"><hw@prelude.cz></a><br>
        Komu: HW-news <a class="moz-txt-link-rfc2396E" href="mailto:hw-list@list.hw.cz"><hw-list@list.hw.cz></a><br>
        Datum: 23. 3. 2024 13:24:21<br>
        Předmět: Jak na vycteni pameti z beziciho osmibitu?</aside>
      <br>
      <blockquote data-email="hw@prelude.cz">Zdravim,
        <br>
        <br>
        zjistil jsem, ze pamet neni co byvala, tak potrebuju trochu
        nakopnout:
        <br>
        <br>
        Mam system se z80, k nemu paralelni SRAM a ja bych docela
        potreboval z nej <br>
        cas od casu vytahnout obsah RAM, nejak ho modifikovat a nacpat
        zpatky. Jo, <br>
        je to presne ta uloha, co se delavala na osmibitech pri ukladani
        snapshotu <br>
        :)
        <br>
        <br>
        Mam pristupne vsechny signaly procesoru vcetne /BUSRQ, /BUSAK,
        /HALT, NMI a <br>
        tak dale. Jestli mne hlava neklame, postup by mel byt nejak
        takovyhle:
        <br>
        <br>
        - pozadam z80 o uvolneni sbernice BUSRQ,
        <br>
        - z80 uvolni a potvrdi BUSAK,
        <br>
        - poslu do z80 NMI nebo HALT(?), aby mi do toho nekecal,
        <br>
        - tim by mela byt sbernice volna a procesor v HighZ?
        <br>
        - externim procesorem si udelam s pameti, co potrebuju (cteni,
        modifikace),
        <br>
        - uvolnim NMI, do z80 poslu RESET a necham ho najet do nove
        pameti.
        <br>
        <br>
        Predpokladam, ze tu je jeste par lidi, co to da z hlavy, nez
        zacnu lovit na <br>
        netu hloubeji...
        <br>
        <br>
        Diky za pomoc.
        <br>
        <br>
        Pavel Kutina
        <br>
        <br>
        <br>
        <br>
        <br>
        _______________________________________________
        <br>
        HW-list mailing list - sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
        <br>
        <a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
        <br>
        <a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
        <br>
      </blockquote>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
HW-list mailing list  -  sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>