Jak na vycteni pameti z beziciho osmibitu?

Petr Labaj labaj na volny.cz
Sobota Březen 23 15:22:59 CET 2024


Pokud si správně pamatuju, tak návrat z obsluhy NMI měl vlastní 
instrukci RETN.
Tedy ne RETI, ta byla pro návrat z maskovatelného přerušení.

A HALT tady nemá co dělat. HALT je instrukce procesoru.
Jen zatáhnout za BUSRQ, počkat na BUSACK, vykrást (nebo zmodifikovat) 
obsah paměti, a BUSRQ zase uvolnit.

PL

******************

Dne 23.3.2024 v 14:55 Pavel Kořenský napsal(a):
> To s tím NMI se tenkrát dělalo z jiného důvodu.
> 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.
>
> 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.
> 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.
>
> Ale radil bych hledat na Netu. Už je to dááááávno, co jsem podobné 
> věci nosil v hlavě.
>
> Zdraví PavelK
>
> Dne 23.03.2024 v 13:51 Jindrich Fucik napsal(a):
>> V zásadě máš pravdu.
>> Pro upřesnění:
>> NMI = Non maskable interrupt (to nepotřebuješ)
>> HALT = zastavení procesoru a uvedení do HiZ (to chceš)
>> (někde mi schází HLDA, ale nevím, jestli jsem na správné platformě)
>> Pozor na to, že po odpojení se ti přestanou refreshovat DRAMky, takže 
>> to musíš dělat sám.
>> 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.
>> 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.
>>
>> ---------- Původní e-mail ----------
>> Od: Pavel Kutina <hw na prelude.cz>
>> Komu: HW-news <hw-list na list.hw.cz>
>> Datum: 23. 3. 2024 13:24:21
>> Předmět: Jak na vycteni pameti z beziciho osmibitu?
>>
>>
>>     Zdravim,
>>
>>     zjistil jsem, ze pamet neni co byvala, tak potrebuju trochu
>>     nakopnout:
>>
>>     Mam system se z80, k nemu paralelni SRAM a ja bych docela
>>     potreboval z nej
>>     cas od casu vytahnout obsah RAM, nejak ho modifikovat a nacpat
>>     zpatky. Jo,
>>     je to presne ta uloha, co se delavala na osmibitech pri ukladani
>>     snapshotu
>>     :)
>>
>>     Mam pristupne vsechny signaly procesoru vcetne /BUSRQ, /BUSAK,
>>     /HALT, NMI a
>>     tak dale. Jestli mne hlava neklame, postup by mel byt nejak
>>     takovyhle:
>>
>>     - pozadam z80 o uvolneni sbernice BUSRQ,
>>     - z80 uvolni a potvrdi BUSAK,
>>     - poslu do z80 NMI nebo HALT(?), aby mi do toho nekecal,
>>     - tim by mela byt sbernice volna a procesor v HighZ?
>>     - externim procesorem si udelam s pameti, co potrebuju (cteni,
>>     modifikace),
>>     - uvolnim NMI, do z80 poslu RESET a necham ho najet do nove pameti.
>>
>>     Predpokladam, ze tu je jeste par lidi, co to da z hlavy, nez
>>     zacnu lovit na
>>     netu hloubeji...
>>
>>     Diky za pomoc.
>>
>>     Pavel Kutina
>>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20240323/5fc6cf9e/attachment.htm>


Další informace o konferenci Hw-list