MICRO-POKEer és a ROM visszafejtése
MICRO-POKEer és a ROM visszafejtése
Sziasztok!
Bali megkért, készítsek összefoglalót arról, amit a MICRO-POKEer-ről megtudtam. Aki nem ismeri az eszközt: Ez egy Multiface-hez hasonló interfész, amivel meg lehet állítani az éppen futó programot, ki lehet menteni a teljes memóriát, örökélet-pókot lehet beírni. A Multiface-nél kevesebbet tud, de még így is nagyon hasznos kis eszköz. A Micro-Studio valamikor 1988-1989 környékén dobta piacra. Ha jól emlékszem, én egy Karácsonyi vásáron (BME aula) találkoztam vele, de hirdették az SpV-ben is. 2000 Ft-ért lehetett hozzájutni.
Részletes infókat a honlapomon találtok (visszafejtett ROM lista, kapcsolási rajz, fotók).
A ROM-ban található szöveg szerint a kódot a V&REW vagy W&REW software Hungary készítette. Nem hallottam még róluk és az interneten sem találtam utalást. Az interfész menüjében viszont csak a MICRO-STUDIO van megemlítve.
A MICRO-POKEer nagyon egyszerű felépítésű. Található benne egy 8 KByte méretű EPROM (M2764A), 2db 7432-es VAGY kapu és egy 7474-es D Flip-Flop. RAM nincs benne, mint pl. a Multiface-ben. Az én MICRO-POKEer verzióm NYÁK lemeze nagyon barkács szagú. Valószínűleg kézzel rajzolták és házilag marták.
A ROM egy része az eredeti ZX Spectrum ROM-jából lett átemelve (pl. Load/Save rutinok, karakterkészlet). A 8K EPROM több mint fele üres, sőt, az EPROM akár 16K-sra is cserélhető, így rengeteg fejlesztési potenciál van benne.
Az elektronika úgy van kialakítva, hogy a 7Fh (127d) portra írt zéróval lehet visszakapcsolni az eredeti ROM-ot, illetve visszatérni a megszakított programba. Érdekesség, ha 1-et írunk a 7Fh portra, akkor bekapcsol a kütyü. Ezt nem használja ki az eszköz (pl. az elmentett snapshot), de egy alternatív firmware-ben esetleg hasznos lehet.
A futó program megszakítása a kék gomb megnyomásával történik, mikor az eszköz a /ROMCS jel segítségével a saját ROM-ját lapozza be, a vezérlés pedig az NMI címre kerül (66h). Itt még nem történik kiírás a képernyőre, csak csendben várakozik a billentyűkre. Mivel nincs saját RAM-ja az interfésznek, ezért bármilyen képernyőre írás "belerondít" a futó programba. Ha visszakerül a vezérlés a programra és az nem frissíti a felülírt területet, akkor a MICRO-POKEer által kiírt szöveg végleg ottmarad. Ezért pl. a Micro-Monitor - amivel a memóriát lehet írni/olvasni - beviteli mezőjét bárhová ki lehet tenni (irányítás Q/A/O/P gombokkal).
A kimentett snapshot kap egy Basic loadert, ami egy gépi kódú betöltőt is tartalmaz. A Basic loader először betölt egy screen-t, ami a program megállítás pillanatában látható képernyőt tartalmazza, majd a loadert a Basic területről a képernyőmemória elejére másolja és ezzel betölti a teljes elmentett memóriát, ezután a vezérlést átadja a programnak. Van egy csel itt: az elmentett screen 2 bájttal hosszabb, mint a teljes képernyőmemória (6914 bájt). Ez a plusz két bájt tartalmazza a program megállításkor elmentett SP (stack pointer) értékét. Így ezt a betöltés után visszaállítja és az elmentett állapot a megállítás pillanatától folytatható (a stack-ben van az NMI feldolgozásakor elmentett PC - program counter). Ennek a megoldásnak van egy szépséghibája: A képernyő első 66 bájtját felülírja, ami több mint két pixel-sor. Itt is igaz a fenti állítás: ha nem frissíti ezt a részt a program, akkor az végig ott rontja a képet.
Az interfész turbo save üzemmódot is tud. Ez pontosan dupla sebességet jelent. Sajnos nagyon sok magnóval ez visszatölthetetlen. Ráadásul, mivel nem ment turbo loadert a Basic betöltőbe, így MICRO-POKEer nélkül vissza sem lehet tölteni a turbo-s mentést. Az interfésznek van turbo load opciója.
Az én MICRO-POKEer verziómon nincs továbbmenő élcsatlakozó, így pl. a Kempston joystick interfészemet sem tudtam használni (mivel azon sincs). Így egy kicsit macerásabb a használata.
Mivel tud többet a Multiface: A benne található 8K RAM-ba el tudja menteni a teljes képernyő memóriát, így bármilyen szöveget/menüt ki tud tenni a képre, a végén vissza tudja állítani teljesen a program képernyőjét. Ezt a 8K RAM-ot sok másra is lehet használni, pl. ún. toolkit-et lehet feltölteni és futtatni benne. Ilyen volt a Genie (disassembler) vagy a Lifeguard (örökélet kereső). Van rajta Kempston joystick port is, így kapásból meg lehet spórolni egy plusz interfészt.
A Turbo Loader bizonytalansága miatt, annak idején felajánlottam a Micro-Studio-nak, hogy átírom megbízhatóbbra a betöltőt. Tetszett az ötletem, de mégsem valósult meg, már nem emlékszem miért. Nem sokkal később Amigára váltottam, így részemről feledésbe merült a téma. A turbo load/save az eredeti ROM rutin másolata, néhány konstans időzítés átírásával, így a javítása sem több pár percnél.
Annak ellenére, hogy a MICRO-POKEer-nek vannak hiányosságai, nagyon jól hekkelhető kütyü.
Bali megkért, készítsek összefoglalót arról, amit a MICRO-POKEer-ről megtudtam. Aki nem ismeri az eszközt: Ez egy Multiface-hez hasonló interfész, amivel meg lehet állítani az éppen futó programot, ki lehet menteni a teljes memóriát, örökélet-pókot lehet beírni. A Multiface-nél kevesebbet tud, de még így is nagyon hasznos kis eszköz. A Micro-Studio valamikor 1988-1989 környékén dobta piacra. Ha jól emlékszem, én egy Karácsonyi vásáron (BME aula) találkoztam vele, de hirdették az SpV-ben is. 2000 Ft-ért lehetett hozzájutni.
Részletes infókat a honlapomon találtok (visszafejtett ROM lista, kapcsolási rajz, fotók).
A ROM-ban található szöveg szerint a kódot a V&REW vagy W&REW software Hungary készítette. Nem hallottam még róluk és az interneten sem találtam utalást. Az interfész menüjében viszont csak a MICRO-STUDIO van megemlítve.
A MICRO-POKEer nagyon egyszerű felépítésű. Található benne egy 8 KByte méretű EPROM (M2764A), 2db 7432-es VAGY kapu és egy 7474-es D Flip-Flop. RAM nincs benne, mint pl. a Multiface-ben. Az én MICRO-POKEer verzióm NYÁK lemeze nagyon barkács szagú. Valószínűleg kézzel rajzolták és házilag marták.
A ROM egy része az eredeti ZX Spectrum ROM-jából lett átemelve (pl. Load/Save rutinok, karakterkészlet). A 8K EPROM több mint fele üres, sőt, az EPROM akár 16K-sra is cserélhető, így rengeteg fejlesztési potenciál van benne.
Az elektronika úgy van kialakítva, hogy a 7Fh (127d) portra írt zéróval lehet visszakapcsolni az eredeti ROM-ot, illetve visszatérni a megszakított programba. Érdekesség, ha 1-et írunk a 7Fh portra, akkor bekapcsol a kütyü. Ezt nem használja ki az eszköz (pl. az elmentett snapshot), de egy alternatív firmware-ben esetleg hasznos lehet.
A futó program megszakítása a kék gomb megnyomásával történik, mikor az eszköz a /ROMCS jel segítségével a saját ROM-ját lapozza be, a vezérlés pedig az NMI címre kerül (66h). Itt még nem történik kiírás a képernyőre, csak csendben várakozik a billentyűkre. Mivel nincs saját RAM-ja az interfésznek, ezért bármilyen képernyőre írás "belerondít" a futó programba. Ha visszakerül a vezérlés a programra és az nem frissíti a felülírt területet, akkor a MICRO-POKEer által kiírt szöveg végleg ottmarad. Ezért pl. a Micro-Monitor - amivel a memóriát lehet írni/olvasni - beviteli mezőjét bárhová ki lehet tenni (irányítás Q/A/O/P gombokkal).
A kimentett snapshot kap egy Basic loadert, ami egy gépi kódú betöltőt is tartalmaz. A Basic loader először betölt egy screen-t, ami a program megállítás pillanatában látható képernyőt tartalmazza, majd a loadert a Basic területről a képernyőmemória elejére másolja és ezzel betölti a teljes elmentett memóriát, ezután a vezérlést átadja a programnak. Van egy csel itt: az elmentett screen 2 bájttal hosszabb, mint a teljes képernyőmemória (6914 bájt). Ez a plusz két bájt tartalmazza a program megállításkor elmentett SP (stack pointer) értékét. Így ezt a betöltés után visszaállítja és az elmentett állapot a megállítás pillanatától folytatható (a stack-ben van az NMI feldolgozásakor elmentett PC - program counter). Ennek a megoldásnak van egy szépséghibája: A képernyő első 66 bájtját felülírja, ami több mint két pixel-sor. Itt is igaz a fenti állítás: ha nem frissíti ezt a részt a program, akkor az végig ott rontja a képet.
Az interfész turbo save üzemmódot is tud. Ez pontosan dupla sebességet jelent. Sajnos nagyon sok magnóval ez visszatölthetetlen. Ráadásul, mivel nem ment turbo loadert a Basic betöltőbe, így MICRO-POKEer nélkül vissza sem lehet tölteni a turbo-s mentést. Az interfésznek van turbo load opciója.
Az én MICRO-POKEer verziómon nincs továbbmenő élcsatlakozó, így pl. a Kempston joystick interfészemet sem tudtam használni (mivel azon sincs). Így egy kicsit macerásabb a használata.
Mivel tud többet a Multiface: A benne található 8K RAM-ba el tudja menteni a teljes képernyő memóriát, így bármilyen szöveget/menüt ki tud tenni a képre, a végén vissza tudja állítani teljesen a program képernyőjét. Ezt a 8K RAM-ot sok másra is lehet használni, pl. ún. toolkit-et lehet feltölteni és futtatni benne. Ilyen volt a Genie (disassembler) vagy a Lifeguard (örökélet kereső). Van rajta Kempston joystick port is, így kapásból meg lehet spórolni egy plusz interfészt.
A Turbo Loader bizonytalansága miatt, annak idején felajánlottam a Micro-Studio-nak, hogy átírom megbízhatóbbra a betöltőt. Tetszett az ötletem, de mégsem valósult meg, már nem emlékszem miért. Nem sokkal később Amigára váltottam, így részemről feledésbe merült a téma. A turbo load/save az eredeti ROM rutin másolata, néhány konstans időzítés átírásával, így a javítása sem több pár percnél.
Annak ellenére, hogy a MICRO-POKEer-nek vannak hiányosságai, nagyon jól hekkelhető kütyü.
- Bali
- Alapító tag
- Hozzászólások: 2503
- Csatlakozott: 2012.01.06. 12:34
- Tartózkodási hely: Budapest III.
- Kapcsolat:
Re: MICRO-POKEer és a ROM visszafejtése
Köszi, hamarosan ki is teszem.
Az eagle file-t is elküldenéd majd?
Az eagle file-t is elküldenéd majd?
-= Bali =-
(c) 1983-2017 Evil-Soft
(c) 1983-2017 Evil-Soft
- Bali
- Alapító tag
- Hozzászólások: 2503
- Csatlakozott: 2012.01.06. 12:34
- Tartózkodási hely: Budapest III.
- Kapcsolat:
Re: MICRO-POKEer és a ROM visszafejtése
Találtam a ROM mentéseink között egy micro-POKEernek titulált rom-ot, ez már 16K-s, de többet nem tudni róla. Ebben már van egy Mini monitor és a TOPSOFT olvasható még a rom kódban.
Esetleg jelentkezne, aki küldte! Szerintem egyébként Józsi volt.
Ha minden igaz, akkor ez a rom a v2-es Micro-POKEer-é lesz.
Esetleg jelentkezne, aki küldte! Szerintem egyébként Józsi volt.

Ha minden igaz, akkor ez a rom a v2-es Micro-POKEer-é lesz.
-= Bali =-
(c) 1983-2017 Evil-Soft
(c) 1983-2017 Evil-Soft
Re: MICRO-POKEer és a ROM visszafejtése
A fényképet én küldtem, valószínűleg ennek a ROM-ját mentette el Bali.
Sajnos a ROM verzióját nem sikerült a menüből kiderítenem, a MICRO-POKEer-en 1.6 szerepel.
Annak idején volt egy másik MICRO-POKEer-em, emlékeim szerint nem ilyen menüje volt. A képernyő alsó sávjában kiírta a verziót és talán még scroll-ozott is valamit. A nálam lévő az eszközből csak ezt sikerült kinyernem a H gomb megnyomásával.
Kb. 15 mp után jelenik meg a TOVASOFT felirat.
Re: MICRO-POKEer és a ROM visszafejtése
Itt van az SPV-ben megjelent hirdetés.
- Bali
- Alapító tag
- Hozzászólások: 2503
- Csatlakozott: 2012.01.06. 12:34
- Tartózkodási hely: Budapest III.
- Kapcsolat:
Re: MICRO-POKEer és a ROM visszafejtése
Íme a kész ismertető:
http://sinclair.hu?hardver/periferia/micropokeer
Józsi:
Nyilván az előző eszköz volt nálam, hisz ez még le van ragasztva, asszem ugyanakkor megnyerted a Micro-POKEer v2 periféria ismertetőt!
http://sinclair.hu?hardver/periferia/micropokeer
Józsi:
Nyilván az előző eszköz volt nálam, hisz ez még le van ragasztva, asszem ugyanakkor megnyerted a Micro-POKEer v2 periféria ismertetőt!

-= Bali =-
(c) 1983-2017 Evil-Soft
(c) 1983-2017 Evil-Soft
Re: MICRO-POKEer és a ROM visszafejtése
Bali! Tőlem csak ezt a MICOR-POKEer-t kaphattad meg és ennek menthetted le a ROM-ját. Szétszedtem, így néz ki belülről.
Úgy emlékeztem, hogy volt egy pársoros leírás az SPV-ben az eszközről, de csak ezt találtam.
A korábbi MICRO-POKEer-t biztosan nem járt nálad, mert azt eladtam a 48K-s Spectrumommal együtt, hogy megvehessem a 128K-s gépet. Mindez kb. 25 éve történt. 
Re: MICRO-POKEer és a ROM visszafejtése
A programfékről mesélhetnétek egy kicsit!
-
- Alapító tag
- Hozzászólások: 353
- Csatlakozott: 2012.01.09. 18:18
- Rádióamatőr hívójel: HG5BMU
- Tartózkodási hely: Surány
- Kapcsolat:
Re: MICRO-POKEer és a ROM visszafejtése
Ha pl. a Z80 WAIT bemenetére változtatható kitöltésű négyszögjelet kapcsolunk, a cpu a jel alacsony szintű ideéig üres ciklusokat hajt végre az utasítások beolvasásakor.
Minél többb az alacsony szint a kitöltési tényezőben annál többet várakozik, annál lassabb a program futása.
Ez a bemenet lassú perifériákhoz lett kitalálva, pl az SM illesztőben amíg a szektor írás olvasás megtörténik, a memória ezen a bemeneten keresztül várakoztatja a cpu-t.
A pokeren ezt az a sarokban levő 555 csinálhatja.
Minél többb az alacsony szint a kitöltési tényezőben annál többet várakozik, annál lassabb a program futása.
Ez a bemenet lassú perifériákhoz lett kitalálva, pl az SM illesztőben amíg a szektor írás olvasás megtörténik, a memória ezen a bemeneten keresztül várakoztatja a cpu-t.
A pokeren ezt az a sarokban levő 555 csinálhatja.
Re: MICRO-POKEer és a ROM visszafejtése
Állati jópofa volt még a programfék használatakor, hogy a "többcsatornás zizregős" zenék lejátszását lelassítva, a hangmagasság eltolódott lefelé, mint amikor a kazettás magnó nyúzza a szalagot.
Érdekesség még, hogy amikor ezt egy osztálytársamnak elmeséltem kiröhögött, és azt mondta, ez digitális zene - lehetetlen. (Amigás volt)
Érdekesség még, hogy amikor ezt egy osztálytársamnak elmeséltem kiröhögött, és azt mondta, ez digitális zene - lehetetlen. (Amigás volt)