[zxspectrum] Re: HD Project 115200!

  • From: Enrico Maria Giordano <e.m.giordano@xxxxxxxxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Tue, 30 Jun 2015 21:45:17 +0200



Il 30/06/2015 20:49, Luca Alimandi ha scritto:

SVC DI LD A,"S" CALL TXDIF1_57600

e come vedi invia direttamente il comando S al quale deve
corrispondere "Saving..." sul PC.

Cosa avviene dopo? Immagino che userai le routine di trasmissione per
inviare il comando al PC tramite RS232, e siccome sulla console non
compare nulla, credo che sia proprio in questo momento che succeda
qualcosa, che impedisce la trasmissione.

Non importa quello che succede dopo, dato che comunque il comando S deve
essere già stato inviato e il PC deve rispondere scrivendo "Listing..."
sulla console. Se non lo fa allora significa che le righe di cui sopra
non vengono eseguite.

Io purtroppo non sono molto ben organizzato con il software per lo
Spectrum (come sai ho ripreso in meno lo ZX solo un anno e mezzo fa,
e non ho più a disposizione tutti gli strumenti che usavo all'epoca
(inoltre sono alquanto arrugginito sul loro uso!...).

Capisco, non ti preoccupare.

Abbi pazienza! Io ho poco tempo libero a disposizione e faccio queste
prove nei ritagli di tempo, a volte a notte fonda! Poi documentare
tutto non è così semplice, e richiede altro. tempo... Faccio quello
che posso!

Ok, ti perdono. :-D

Comunque ecco i risultati di altre prove:

1) senza cambiare ramtop, carico HDIF1_115200.TAP (come di consueto)
sulllo Spectrum 2) do i primi comandi FN c() ecc. e tutto va bene 3)
faccio comparire l'errore BASIC con un comando tipo PRINT z 4) senza
ridare altri comandi ricarico il solo HDCOD (secondo blocco) 5) provo
a dare un comando per HD (ad es. FN c(), ma succede anche con FN
s()...) e si pianta tutto

Dunque non sembra che si sia corrotto il codice L/M (HDCOD)...

Bene, questo è importante. Allora un'altra possibilità è stata scartata.
Ottimo.

6) riprovo il tutto ma stavolta abbasso il ramtop con CLEAR 50000. Ma
niente, tutto come prima...

7) provo a ricaricare l'ultimo blocco (il basic con le FN() ) e
FINALMENTE funziona (anche senza dare CLEAR 65535)!!!

Ah, questo sì che è interessante! Quindi si corrompe il Basic! Ma come accidenti è possibile?

Ma questo è abbastanza ovvio (in pratica è come se avessi ricaricato
tutto il programma),

Beh, no, hai solo ricaricato la definizione delle FN che non sono altro
che delle USR.

però per lo meno conferma che il codice L/M non si è corrotto. Dunque
una prima conclusione sarebbe che l'errore BASIC va a "sporcare"
l'area delle funzioni FN.

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. Eventualmente mandami anche HDFN corrotto.

A questo punto penso che se potessi provare a dare dei comandi
diretti (tipo RANDOMIZE USR addr...) si potrebbe appurare se la
corruzione riguarda le sole FN().

Eh, ma non puoi. Il CODE è strutturato per leggere i parametri nell'area delle variabili di sistema. Se dai i RAND USR a mano non ci sarebbero parametri da leggere.

Ora devo interrompere... Continuerò più tardi (se ce la faccio!...)

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

EMG

--
EMAG Software Homepage: http://www.emagsoftware.it
The EMG Music page: http://www.emagsoftware.it/emgmusic
The EMG's ZX-Spectrum Page: http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: http://www.emagsoftware.it/tbosg

Other related posts: