[zxspectrum] Re: HD Project 115200!

  • From: Luca Alimandi <luca.alimandi@xxxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Thu, 23 Jul 2015 00:25:20 +0200

...

Sì, ma non credo che normalmente questo succeda. Quindi dev'essere qualcosa legato a quello che faccio sul CODE. O no? Puoi fare questa prova: carica HDBAS, lascia caricare tutto quanto fino a HDFN e, prima di dare qualsiasi comando, prova a causare l'errore di sintassi. Se a questo punto non funziona già più nessun comando allora vuol dire che la cosa è indipendente dal CODE, giusto? Prova e fammi sapere.

Stasera ho avuto finalmente un po' di tempo (ogni volta che voglio usare lo Spectrum devo fare spazio in camera, collegare tutto, fare le prove e poi avere il tempo di sgombrare l'area... Ecco perché per me fare le prove è molto scomodo!...)

Ho fatto la prova che hai chiesto.
Ho caricato normalmente HDBAS, HDCOD e HDFN.
Prima di dare qualunque comando HD o generato un errore BASIC dando il comando:
PRINT z
che ha generato il seguente messaggio:
2 Variable not found, 0:1

Quindi ho dato INVIO e ho dato il comando :

RANDOMIZE FN c("")

e subito schermo nero e nessuna risposta.

Ho anche notato che dopo aver dato il comando, non viene trasmesso nulla al PC (cioè sulla console non compare alcun comando, mentre normalmente dovrebbe comparire "Listing..."

Ho provocato anche a generare un errore diverso, dando il comando:

LOAD ""

e poi interrompendo con CAPS + SPACE, ottenendo quindi il messaggio:

D BREAK - CONT repeats, 0:1

Anche in questo caso, dando subito dopo un comando HD (come il catalogo) ottengo schermata nera e più nulla.

Dunque la mia ipotesi è che l'insorgere di un errore BASIC (in presenza dell'IF1) provoca una modifica nello stack del BASIC, e probabilmente un riassetto delle variabili, per cui, probabilmente quando poi lancio un comando HD, il L/M cerca i valori delle variabili da passare dal BASIC al codice macchina nella posizione sbagliata, il che comporta poi l'errore nel codice stesso.

Un'ipotesi precedente riguardava il rientro dal codice macchina al BASIC, ma il fatto che non compaia alcun comando sulla console mi fa pensare che l'errore avvenga molto prima del rientro al BASIC, per cui questa ipotesi mi sembra da scartare.

Ho provato allora a salvare l'area BASIC (spero contenga anche la parte che immagino subisca le modifiche...), "prima" e "dopo" l'errore BASIC, nella speranza che analizzando le eventuali differenze tu riesca a capire cosa può essere successo. Sono file WAV, spero che tu riesca in qualche modo a caricarli in un emulatore o sullo Spectrum per poi analizzarne il contenuto.

(i file, per non appesantire la ML te li mando in privato)

Ok. Mi raccomando, fai la prova che ti ho appena chiesto.

EMG


Cominciamo ad analizzare questi file, e poi, se non è lì il problema, andiamo avanti con altri test...

--

|_ /-\


Other related posts: