[zxspectrum] Re: infinity
- From: "Alessandro" <apoppi@xxxxxxxx>
- To: <zxspectrum@xxxxxxxxxxxxx>
- Date: Sun, 2 Apr 2006 13:29:41 +0200
On Sunday, April 02, 2006 12:55 PM [GMT+1],
Alessandro <apoppi@xxxxxxxx> wrote:
Ora: possibile che nel disassemblato del file TZX non riesca a
trovare da nessuna parte una istruzione che carica qualcosa nel
registro I? Come fa a contenere $F0?
Non lo trovo perche` il programma viene modificato in memoria (i miei
sinceri complimenti al debugger di realspec). Alla fine del caricamento va`
in esecuzione un loop (che impiega circa 1 secondo) durante il quale, in un
modo che non ho ancora visto (perche` ora vado veramente a mangiare :-)) il
programma viene modificato.
Settando un breakpoint in $BD2D ci ci portera` esattamente nel disassemblato
della fantomatica sp_CreateGenericISR(0xf1f1), che pero` prevede
regolarmente il loop che scrive $F1 in tutta la pagina (256 bytes) nonche`
le istruzioni LD A, $F0 seguita da LD I,A.
Se questa zona di memoria viene invece visionata immediatamente dopo la fine
del caricamento (bisogna essere veloci con il tasto ESC) si vedra` che
contiene pattume.
Dato che il crash del badaloc avviene istantaneamente dopo la fine del
caricamento, deduco che il loop che rigenera il codice faccia qualcosa che
non gli piace. Indaghero`. Possibile che sia una specie di protezione? Ci
sono i sorgenti a corredo, mi sembra strano. E` forse un modo classico di
operare di qualche compilatore?
Ciao!
Other related posts: