[zxspectrum] Re: Aiuto, il giochino mi va in crash!

  • From: Paolo Ferraris <pieffe8@xxxxxxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Tue, 15 Nov 2005 16:20:31 -0600

Una sequenza piu` breve che crasha e` la seguente:
iniziando per primi,
15386
ripetuta due volte.

La prima volta funziona regolare, la seconda va in crash.

Sembrerebbe che la memoria sia stata "sporcata" dalla prima partita, e quindi crashi nella seconda. Forse qualche variabile non e` stata settata al valore iniziale all'inizio della seconda partita...

-p




Marcello Zaniboni wrote:
Cari amici, vi devo chiedere un piccolo aiuto.
(Così magari terminiamo i discorsi sul C64)
Si tratta come al solito del mio giochino. Lo so, ultimamente sono un
po' monotematico… il problema è che io pensavo di averlo
definitivamente ultimato, ma a quanto pare ci sono dei problemi grossi
che non riesco a capire; e qui nasce la mia richiesta di aiuto.
Uno di voi mi ha scritto dicendo che aveva trovato un comportamento
strano. In pratica, scegliendo di essere il giocatore numero 1 (quello
che inizia), è sufficiente eseguire la seguente sequenza di mosse per
mandare in crash il programma:
   1395
   1978
   3798
   3975
   19672
   1395
   19834
dove ogni riga è una partita e ogni numero è una mossa scelta dal
giocatore umano.

Inizialmente ho pensato che fosse un problema di memoria: infatti uso
molto lo stack (da quello che ho capito z88dk lo pone sotto la
locazione di memoria in cui è stato compilato il programma) e temevo
di avere finito per sovrascrivere un'area di memoria che non mi
competeva. Tuttavia qualcosa non mi tornava: l'ultima partita, quella
che fa andare in crash tutto, è un pareggio, quindi io non scrivo
proprio niente da nessuna parte… Comunque ho ricompilato su una
locazione più alta.

Il risultato è stato disarmante: in pratica il compilato "grezzo"
funziona bene, ma se lo inserisco nel TZX con tanto di loader e
screen$ il problema si ripresenta identico. Non so più che cosa fare!
Non ricordo nulla del linguaggio macchina dello Z80 e quindi non sono
in grado di debuggare.
Permettetemi di allegare 13K di snapshot: l'ho ottenuto facendo la
sequenza di mosse che ho riportato sopra: manca solo l'ultima mossa
dell'ultima partita. Se premete 4, va in crash.

Qualcuno per favore mi può aiutare, così finalmente termino questo
giochetto? :-)

Grazie e scusate lo sproloquio! :-)
Marcello



Other related posts: