En realidad esta consulta viene de otro foro. Inicialmente pensaba que era el famoso "snow-effect" del spectrum, pero no era así. Quisiera saber la opinión de los expertos del foro. Pero para no tener que leer todo el hilo os hago un resumen a continuación.
En un Spectrum issue 3B obtengo el siguiente patrón de pantalla:
![Imagen](https://dl.dropboxusercontent.com/u/88761012/Averia2_cambio%20fuente.jpg)
Tras realizar una serie de pruebas asesorado por mcleod_ideafix, él concluyo que la ULA estaba dañada. En concreto el pin 5 que corresponde con la pista A0 (bit 7) del bus interno de direcciones de la ULA. Este pin es bi-direccional, y por alguna razón se comporta como si estuviera desconectado internamente. La CPU ve correctamente la memoria, pero la ULA o no es capaz de leer la dirección y/o no es capaz de leer correctamente el dato. Cuando la CPU está activa, ese bit tiene ruido y en consecuencia se ve la pantalla distorsionada o llena de ruido. Cuando se resetea la CPU (manteniendo pulsado el botón de reset), la pantalla se queda congelada y no hay ruido. Esto lo he hecho con el test mcleod, que al pulsar el reset congela la pantalla, no provoca un reset del spectrum. La foto:
![Imagen](https://dl.dropboxusercontent.com/u/88761012/Averia2_test%20pulsado%20RESET.jpg)
El patrón que muestra el test es como si uno de los multiplexores (IC3 o IC4) estuviera mal. Pero no es, porque en ese caso no se obtendría la pantalla inicial del logo.
Esta ULA la he montado en una placa sana y obtengo el mismo ruido. Y si pongo una ULA sana en esta placa funciona correctamente.
Sin embargo, realizando la modificación para conmutar ROMs de El Trastero -me entreno sobre esta placa siempre- observé otro tema. Usando EPROMs 27C128 y 27C256.
He probado varias ROMs (original, Groot, Gosh Wonderful,...) y siempre hay dos que no funcionan en esta placa de ULA dañada. Son la OpenSE (de 1981 de Nine Tiles - no confundir con la SE Basic, como me pasó a mí) y la del Jupiter ACE de Paul Farrow. Ya sea en la 27C128 o en la 27C256 junto con otra ROM, fallan. A veces, la OpenSE funciona. Una de cada diez veces.
Las pantallas que obtengo son. Para la OpenSE:
![Imagen](https://dl.dropboxusercontent.com/u/88761012/ROM%20OpenSE.jpg)
Y para la Jupiter ACE:
![Imagen](https://dl.dropboxusercontent.com/u/88761012/ROM%20Jupiter%20ACE.jpg)
(Esto es color!!!. Estoy pensando en usar este última de salvapantallas
![Feliz :-]](./images/smilies/sc_jcheesy.gif)
Muestran patrones más o menos típicos de ausencia de ROM, con esas franjas anchas verticales.
Estas dos ROMs funcionan bien en la otra placa donde he hecho la misma modificación. Y funcionan en cualquier combinación. Luego hay algo en esta placa que impide que arranquen estas ROMs.
Lo más curioso fue cuando le metí una ROM externa y probé diferentes programas de test. Con el programa de test de RAM de Paul Farrow obtengo la pantalla correcta al final.
Dejo un video con la prueba. Empieza con la pantalla llena de basura, pero al terminar la prueba muestra la pantalla final bien. Lo he probado varias veces, y en la mayoría sale la pantalla final bien. Pero alguna vez sale la pantalla bien de imagen pero cambian algunos caracteres y las palabras no se entienden. Es como si estuviera escrito en otro idioma, un montón de consonantes seguidas, palabras muy largas.... todo ininteligible.
[BBvideo 560,340]https://dl.dropboxusercontent.com/u/887 ... rrecto.mov[/BBvideo]
¿Pudiera ser que este programa, por la razón que sea, forzara un valor de la línea A0 de la ULA y por lo tanto corrigiera el error indirectamente?. Si es que esto fuera posible. Esto por un lado.
Y por otro, que haya unas ROMs que se comporten como si no estuvieran, y el resto funcionen bien, aunque con la pantalla con ruido.
No encuentro otra explicación. ¿Que se os ocurre?.