[zxspectrum] Re: ram 16K

  • From: "Alessandro Poppi" <apoppi@xxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Mon, 21 May 2007 18:36:40 +0200

Massimo Raffaele wrote:

Fammi capire una cosa: con il tuo metodo riesci a
fare il dump della memoria anche se lo Spectrum è
completamente piantato fin dall'accensione (es. paper nero e border

Sto facendo una prova con il terzo 48K (l'unico rimasto rotto). Questo ha delle grosse bande bianche e nere (8 in tutto, per cui larghe 4 caratteri) verticali ed e` completamente piantato.

Ho fatto una modifica alla bootrom della zxmmc+ in modo che non usi nemmeno un byte della ram sinclair, ma bensi` si auto-copi dalla flash ad un banco di ram zxmmc+. In questo modo ho sia il programma che la zona ram nello stesso banco 0-$3FFF, tutto contenuto nella ram della zxmmc+. Ho dovuto fare cosi` perche` non posso mappare un misto di rom e ram. O uno, o l'altra.

Ho messo due loop che cambiano il colore del border. Uno lento (mostro sul border i 3 bit MSB del contatore del loop, che e` BC) come primissima cosa subito dopo il reset, dopodiche` copio l'intero contenuto dei 16K di flash --> ram (purtroppo devo sovrascrivere il banco RAM 0, distruggendo il ResiDOS, perche` il firmware e` per forza sulla ROM 0 e posso eseguire una "copia su se stessa" solo con il banco avente lo stesso numero (l'alternativa sarebbe usare la ram sinclair come buffer, ma e` proprio quello che devo evitare)), dopodiche` eseguo un ciclo sul border veloce (mostro i 3 bit LSB di B, per cui fa una specie di multicolor). Al termine, salta nel menu` di boot classico.

Risultato con lo spectrum difettoso:

Entrambi i loop vengono visualizzati sul border, per cui il processore esegue il programma e si copia correttamente da ROM a RAM. La ram video sinclair ignora completamente ogni tentativo di scrittura, mantenendo il proprio contenuto di barre.

Avendo correttamente inizializzato la cpld (anche i led dei CS delle card si spengono, come dovuto), posso entrare via seriale ed ottenere l'agognato dump della ram. Tutto il banco da 32K e` a zero (strano, perche` non dovrebbe essere stato inizializzato)... tranne le ultime locazioni.

Il primo banco, invece, ha il seguente contenuto: cicli di quattro $FF seguiti da quattro $00, eventualmente intercalati da qualche byte strano (tipo $10 o $20 al posto di uno zero). Questo corrisponde perfettamente a quello che vedo sullo schermo (le barre bianche e nere). Anche gli $FF sono talvolta "difettosi", ovvero trovo dei $DF oppure $FE, cose cosi`.

Non e` di grande aiuto, ma almeno ho visto cosa c'e' dentro. Adesso stavo pensando di integrare questa piccola diagnostica nella bootrom normale, magari attivandola se al power-on viene trovato il joystick non a riposo...

Ciao!



--
Email.it, the professional e-mail, gratis per te: http://www.email.it/f

Sponsor:

Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=6588&d=21-5

Other related posts: