[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: