Jak na vycteni pameti z beziciho osmibitu?
Pavel Kořenský
pavel.korensky na dator3.cz
Sobota Březen 23 14:55:37 CET 2024
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
>
>
>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> _______________________________________________
> HW-list mailing list - sponsored bywww.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20240323/0c585d06/attachment.htm>
Další informace o konferenci Hw-list