Pozdravljeni na straneh programov iz prejšnje Jugoslavije za 8 in 16 bitne mlinčke.



        Sinclair ZX SPECTRUM


News
ZX Spectrum
Commodore 64
Amiga
Amstrad CPC
Commodore +4
Atari ST
Galaksija
Orao
Orao
ReCracks
Misc
Misc
Forum
  
News
 
Poke Maker
D.Knežević, P.Bećirić


       Jezik: Angleški
    Povzetek: Super Poke finder.
     Skupina: Koristni Programi 
     Avtorji: Dragan Knežević
              Predrag Bećirić
              Nikola Alivojvodic
  Leto Izida: 1990
      Format: TAP
  Download


Opisi:
Svet Kompjutera, #7/8, Julij/Avgust 1987, Dragan Knežević & Predrag Bećirić

SPECTRUM : POKE za pet minuta

Kao što svaki haker zna, pronalaženje POKE-ova u većini slučajeva mukotrpan  je
i težak posao, prvenstveno zbog  velike dužine igara. Svaka ozbiljnija  i bolja
igra zauzima u proseku 40K  memorije, a najkraći disasembler, koj  je neophodan
zauzima 6K,  tako da  on mora  prekrivati izvestan  deo igre.  Problem se odmah
javlja: gde smestiti disasembler? Šta ako se baš tom delu nalazi POKE ?

Pišu Dragan Knežević, Predrag Bećirić

Veliki  broj  učitavanja i  puno  utrošenog vremena  su  odlike ovakvog  načina
traženja POKE-ova. Program koji sledi oslobodiće vas ovih muka. a takođe vam  i
štedi vreme. POKEMAKER  je program specijalno  pisan za traženje  POKE-ova i sa
svojih dvadesetak naredbi znatno će vam olakšati posao.

POKEMAKER  predstavlja  jednu  vrstu  disasemblera,  koji  je  smešten  u video
memoriji. Program počinje od  adrese 16384, u dužini  4096 bajtova, tako da  za
rad korisniku ostaje  ceo raspoloživi RAM,  u koji može  da se učita  celokupna
igra. Rad se odvija u donjoj trećini ekrana.

Svaka  komanda  se aktivira  pritiskom  na pojedino  dugme  tastature. Uz  neke
komande potrebno je uneti i parametre. Svi parametri koji se unose moraju  biti
u  HEXADECIMALNOM OBLIKU.  U slučaju  da smo  pogrešili naredbu,  iz edit  moda
izlazi se pritiskom na CAPS i SYMBOL SHIFT istovremeno.

Kratak opis naredbi:
--------------------

M - memory: Posatavlja memorijiski pokazivač na određenu adresu.
            Unesite četiri znaka koji predstavljaju novu adresu u
            hexadecimalnom obliku.

Q - decrement: smanjuje memorijski pokazivač za 1

A - increament: povećava memorijski pokazivač za 1

G - get: Unosite string koji treba pronaći u memoriji. Oznaka XX znači
         da se bajt na tom mestu zanemaruje.String koji se unosti mora
         imati 8 karaktera. Npr. XXCD5605

N - next: traži se sledeće pojavljivanje zadatog stringa (komanda G)

P - message: pomoću ove komande možete na primer upisati svoje ime u
             tuđ program. Upisuje se do 42 znaka. Završavate sa ENTER.

B - poke: služi za unošenje određenog POKE-a na adresu koju pokazuje
          memorijiski pokazivač.

D - dump: lista sadržaj memorije na taj način što vrednost svake
          lokacije predstavlja kao ASCII simbol. BREAK za povratak.

L - list: ovo je najmoćnija komanda u disasembleru. Lista sadržaj
          memorije počev od adrese memorijskog pokazivača. Povratak se
          vrši pritiskom na BREAK. Napomena: instrukcije koje
          operišu sa IX i IY registrima štampaju se u malo promenjenom
          obliku. Prvo se štampa prefix DD ili FD, a zatim
          ekvivalentna mašinska instrukcija koja radi sa registarskim
          parom HL. Ispred te naredbe štampaće se '*' , a iza nje 'IX'
          ili 'IY'. Treći bajt instrukcije koja radi sa IX ili IY
          registrima je uvek relativni pomak (-127,+128)

U - load: postoji mogućnost učitavanja do 10 različitih blokova (0-9).
          Učitavanje se vrši od adrese memorijskog pokazivača +1.
          Dužina programa se automatski određuje. Na lokaciju koju
          pokazuje memorijski pokazivač učitava se flag byte.

S - save: kao što postoji mogućnost učitavanja do deset različitih
          blokova, tako postoji mogućnost snimanja ovih blokova.
          Snimanje se vrši na taj način što otkucamo redni broj
          bloka koji želimo da snimimo.

Z - the end: Briše memoriju do RAMTOP-a (#5CB2). Ekvivalentno NEW
             naredbi u bejziku.

H - hex/dec: vrši pretvaranje hexadecimalnog broja u decimalne.
             Hexadecimalni brojevi su uvek unose sa 4 cifre
             (npr. 00A0 -> 160)

J - dec/hex: vrši pretvaranje decimalnih u heksadecimalne brojeve.
             Decimalni brojevi se onose sa 5 cifara.
             (npr. 32768 -> 8000)

E - jump: startuje program od unete adrese. Nakon toga potrebno je
          uneti još jedan parametar koji predstavlja vrednost SP (stack
          pointer).

R - registri: pokazuje vrednost registara koje su dobijene pri
              poslednjem izvršenju programa (komanda I)

Y - break point: postavlja tačku prekida, tj. ponovo ćete se
                 vratiti u disasembler sa novim vrednostima registara.
                 Pazite samo da program koji izvršavate ne piše nešto
                 po video memoriji! Po izvršenju programa vraća se
                 originalni sadržaji lokacija gde je postavljena tačka
                 prekida.

I - execute: Izvršava program od unete adrese. Važno je to da registri
             dobijaju vrednosti koje su imali posle poslednjeg
             izvršavanje programa komandom I. Po nailasku na break
             point (komanda Y) vraćate se u disasembler. Vrlo korisna
             instrukcija za izvršavanje samo dela programa. Koristi
             se npr. kada je potrebno da se neki deo programa koji sa
             analizira od-XOR-uje.

O - printer on: od sada će se svi podaci dobijeni komandama 'L' i 'D'
                slati na printer. Ostale komande će i dalje koristiti
                ekran. Memorija od 23296 do 23551 biće korišćena za
                printer buffer.

K - printer off: nastavlja ispisivanje karaktera na ekran.

F - get text: unosimo određeni tekst za traženje. Npr. GAME OVER. Ako
              umesto nekog slova stavimo '?' to mesto će biti ignorisano.

V - find next text: vrši pretraživanje memorije i traži zadani tekst
                    komandom 'F'

------------------------------------------------------------------------

Poboljšanja uradio Nikola Alivojvodć  (ARC soft) johnnya@eunet.yu Nova  verzija
POKEMAKERA završena je 19.08.1990.

Novo:
-----
* Ukinuta je podrška za štampač (moralo se, da bi program i dalje bio
  samo u video memoriji).

* očitavanje tastature se više ne vrši preko sistemskih varijabli, tako
  da je moguće bez bojazni učitavati igru i preko dela memorije gde
  se nalaze sistemske varijable.

* za prekid edit moda (escape) dovoljno je pritisnuti SYMBOL SHIFT
  loša posledica ovoga je što recimo pri unosu teksta više ne možete
  da koristite simbole koji se dobijaju pomoću SYMBOL SHIFT-a (!"#<>...)

* za prekid listanja (komanda L ili D) dovoljno je pritisnuti SPACE

* W - text to mem: ako komandom F unesete jedan hexadecimalni niz (max
                   42 karaktera = 21 bytes) ova komanda će taj niz
                   prebaciti na mesto memorijskog pokazivača. Dakle,
                   nešto kao B..Q..B..Q..B..Q... itd.

* T - header: učitava blokove koji imaju header i pri tome automatski
              uzima podatke gde blok treba da se učita. Dakle, kao
              LOAD "" [CODE] u bejziku. Pri tome vas obaveštava o
              o podacima koje je našao u header-u.

* O - pointer: pamti trenutnu vrednost memorijskog pokazivača.

* K - back to: vraća vrednost memorijskog pokazivača zapamćenog
               komandom O

* Z - the end: postavlja dodatno pitanje: END Y/N ?

* C - fill to: unesiti željenu vrednost (veću od memorijskog pokazivača!)
               i deo memorije od memorijskog pokazivača, pa do te
               vrednosti biće ispunjen bajtom koji se nalazi na adresi
               memorijskog pokazivača.