[zxspectrum] Re: ZXMMC+ e RAM Speccy difettosa

  • From: Eugenio Ciceri <eugenio.ciceri@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Mon, 21 Nov 2011 13:36:54 +0100

Ho fatto alcuni esperimenti con la ZXMMC+ in modalità diagnostica,
sperando di riuscire a individuare i chip di memoria guasti di alcuni
Spectrum.
Purtroppo ho scoperto che non tutte le bestioline nere difettose sono
"comunicative" nei confronti di ZX-COM, nemmeno in modalità
diagnostica :-(

Ho provato come prima cosa con uno Spectrum funzionante.
Sono entrato in modalità diagnostica inserendo un ponticello tra il
FIRE dell'interfaccia Kempston e la massa.
All'accensione vedo gli effetti sul bordo e la schermata iniziale mi
conferma che sono in modalità diagnostica.

Con lo Spectrum funzionante non ci sono problemi né a leggere né a
scrivere blocchi di RAM tramite ZX-COM.

Su tre Spectrum difettosi, invece, uno ha probabilmente la CPU andata,
dato che resta bloccato con la tipica schermata a quadretti colorati
anche con la ZXMMC+ collegata.
Gli altri due invece mi permettono di entrare in modalità diagnostica,
ma appena tento di effettuare il login da seriale si bloccano.
Se l'NMI da seriale arriva durante un tentativo di lettura di un
blocco di RAM, ZX-COM segnala un errore durante la ricezione dei
registri.

Ipotesi: non è che l'NMI handler chiamato da seriale può in alcuni
casi eseguire uno switch errato nella RAM dello Spectrum?
Io ho dato un'occhiata al codice della bootrom, e non mi sembra che
possa succedere un caso simile.

-- Eugenio



Il 07 novembre 2011 22:15, Alessandro <alessandro.poppi@xxxxxxxxx> ha scritto:
> On Mon, 2011-11-07 at 09:48 +0100, Eugenio Ciceri wrote:
>
>> Temo che dovrò aspettare il prossimo weekend per metterci mano, ma ora
>> incornicio il tuo post e lo metto in laboratorio ;-)
>
> Onorato :-)
>
>> Non sarebbe nemmeno male l'idea del programmino diagnostico da mettere in 
>> ROM.
>> Ci penso su.
>
> In effetti la zxmmc+ si presta particolarmente bene, perche' grazie alla
> ram onboard puo' far girare un programma diagnostico senza utilizzare
> nemmeno un byte della ram di sistema, cosa abbastanza significativa se
> il programma in questione e' un memory-test :-)
>
> Siccome tutto cio' mi ricordava qualcosa, sono andato a controllare ed
> in effetti nel sorgente c'e' gia' una sorta di procedura orientata a
> questo argomento.
>
> Infatti, devi sapere che al fine di avere la propria area variabili, la
> bootrom per prima cosa si copia nell'ultimo banco di ram che viene poi
> attivato ed un'area e' quella delle variabili.
>
> Dato che il n. di banco rom (0) e ram (15) non coincidono, viene usata
> la ram dello spectrum come buffer intermedio. Cio' presuppone che la ram
> funzioni, altrimenti ovviamente la copia non va a buon fine.
>
> Se pero' tieni chiuso l'ingresso FIRE del joystick mentre accendi,
> attivi una modalita' 'diagnostica' in cui viene perso il banco zero (la
> copia da rom (0) a ram (0) non richiede buffer intermedi, perche' e'
> possibile attivare contemporaneamente la ROM in sola lettura e la RAM in
> sola scrittura, per cui la copia avviene con un semplice LDIR su se
> stesso) con conseguente distruzione di eventuale residos, ma poco male.
>
> Il risultato e' che la bootrom riesce a partire anche senza ram di
> sistema: solo in questo modo potrai poi avvalerti della comunicazione
> seriale per visionare la ram.
>
> Se per caso decidi di fare qualche routine di test, sappi quindi che hai
> gia' una sorta di scheletro e, nel caso, mi raccomando modifica l'ultima
> versione del sorgente:
> http://www.zxbada.bbk.org/zxmmcp/software/bootrom_v2.21e.zip
>
> Tieni anche presente che questo sorgente e' un po' un casino, ma sai
> com'e'... e' una importazione di quello del badaloc.
>
> Ciao!
>
>
>
>

Other related posts: