SSSSS UU UU PPPPPP S S UU UU P P S UU UU P PP S UU UU P P SSS UU UU PPPPPP S UU UU P S UU UU P S S UU UU P SSSSSelektivní UUUUUUUUUpravy Programů ------------------------------------------------------------------ Autor: SaKR SOFT, Konečný Roman. (C) a distribuce mZx software, P.O.BOX 22, 370 05 České Budějovice ------------------------------------------------------------------ Tento program slouží k nalezení důležitých adres v cizích programech.Já osobně jej uživám k nalezení adres na nichž jsou počty životů či velikost energie u her jejichž obtížnost se mi zdá poněkud přehnaná.Lze jím též nalézt na kterých adresách se s výše zmíněnými adresami pracuje. Program pracuje takto: a)Hledaní pro určité hodnoty: V paměti počítače jsou uschovány veškeré údaje (s kterými pracoval zkoumaný program) i po resetu programu.S těmito údaji pracuje SUP. Myšlenka vyhledavání je tato:Zkoumaný program někam ukládá hledané hodnoty.Já si tedy resetuji počítač v jisté chvili v níž si myslím,že hledaná hodnota má velikost A.Pomocí SUPa si vyrobím tabulku hodnot pro hodnotu A (klav. E) poté ji uložím(klav.3). Opět spustím hru a resetuji ji ve chvíli,kdy je velikost hledané hodnoty B.Natáhnu minulou tabulku hodnot (pomocí monitoru.K tabulce je připojen SUP,po nahrání se spustí) No a teď si nechám zobrazit adresu na níž je nyní hodnota B a na které byla předtím hodnota A (klav. F).No a naposled si najdu adresu,na které se ona adresa vyskytuje,tuďíž se předpokládá,ža tam s ní zkoumaný program pracuje(klav. D). Pomocí disasembleru,nebo i jinak,zjistíme jak s ní pracuje a učiníme patřičné kroky pro to,aby s ní pracoval tak,jak to chceme my.Při finální úpravě programu,jež chceme udělat pomocí např.Turbo copy,musíme myslet na to,že data před spuštěním se často nacházejí jinde,než na pracovních adresách. b)Hledání neurčité hodnoty: Vyhledávání je selektivní,což tedy znamená,ža je nutno učinit více kroků nežli můžeme říci,na které adrese je hledaná hodnota.To taky zabere mnohem víc času než metoda a).Často ovšem není jiného východiska a musíme tuto metodu použít. Nejlepší bude když ji použijete takto: Resetujte program pŕi odhadlé hodnotě A. Nahrejte SUPa a pomocí klav. 1 uložte pamět (od:je počáteční adresa,nahrává se až do FFFF). Resetujte program při odhadlé hodnotě B.B se nesmí rovnat A. Nahrejte SUPa a pomocí klav. 2 vyrobte tabulku rozdílů.Ta se zhotoví tak,že porovnavá nahranou pamět z 1 s aktualní pamětí a nalezne-li néjaký rozdíl,tento zapíše do tabulky. ------> Pomocí klav.3 uložte tabulku rozdílů. | Resetujte program při odhadlé hodnotě C. | Nahrejte tabulku z 3 (opět obsahuje SUP).Uvažte jak se změnila | C z B.Myslíte-li si,že platí:C<=B stiskněte 4. | C>=B 5. | C==B 6. | C<>B 7. | tím způsobíte to,že z tabulky se adresy hodnot nevyhovující | podmínce nahradí nulami. | Dle úvahy aktualizujte tabulku.Nulové adresy se vypustí a | k ostatním adresám se přiřadí současné hodnoty. | Uvažme,že hodnota B se nyní rovná hodnotě C. ------- Dokud nezbude jen malé množství adres opakuj! Dále již stejné jako v bodé a). P O Z O R !!!!! Tabulku z bodu a) i b) lze vždy zobrazit pomocí klav.C. Rychlost ukládáni platí jen pro bod 1. a 2. Veškera čísla jsou zadávána v hexa. Poněvadž většina programů je předělána ze Spectra doporučiji pracovat od adresy 5b00H. Pracovní oblast SUPa je od asi 2000H do ffffH v oblasti Dram Sharpa. Adresa restartu SUPa je 1200H. MENU VYPADÁ TAKTO: 1-ULOZ PAMET 2-VYROB TABULKU 3-ULOZ TABULKU 4-ZACHOVEJ MENSI 5- VETSI 6- STEJNE 7- ROZDILNE 8-AKTUALIZUJ TABULKU 9-RYCHLOST UKLADANI 1:1 A- 2:1 B- 3:1 C-ZOBRAZ TABULKU D-HLEDEJ ADRESU E-VYROB TABULKU HODNOT F-UKAZ NALEZENOU ADRESU V TABULCE HODNOT Struktura tabulky vypsané pomocí C. ----------------------------------- 1 2 3 4 1689 34 56 03 Tabulka neurčitých hodnot:1-adresa v tabulce 168c 39 56 24 2-nižší byt adresy, 3-višší byt adresy, 3-hodnota na adrese. 1689 56 78 Tabulka určitých hodnot:1-adresa v tabulce,2-nižši Byt 168b 89 80 adresy,3-vyšší Byt adresy. SaKR soft Vám přeje co nejvíce úspěšně předělaných her. A taky veselé Velikonoce. mZx nezůstává pozadu a přeje příjemné oslavy Velikého Října.