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