En busca del bug en el superupgrade

Proyectos de hardware con sus esquemáticos y si llevan software en fuente

Moderadores: cacharreo, Fundadores

Reglas del Foro
Aquí solo tienen cabida proyectos de hardware que incluyan siempre al menos sus esquemáticos para poder reproducirlos si llevan componentes electrónicos, y si es posible los ficheros del programa en que se hacen, los diseños de las placas, los gerber, etc. Si llevan algún tipo de software asociado debe estar diponible el código fuente

Para los que no cumplen estas condiciones se debe postear en el foro de proyectos generales.
Avatar de Usuario
wilco2009 !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 8156
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 107 times

En busca del bug en el superupgrade

Mensaje por wilco2009 »

Estimados compañeros de fatiga del Superupgrade.

Si habéis montado con éxito el superupgrade os daréis cuenta de un detalle, las ROMs del +3 y +3e fallan en el arranque con frecuencia.

En el caso de la ROM del +3 el fallo es más esporádico, pero en el caso de las del +3e lo raro es que arranquen.

Estoy estos días un poco off-line de la web porque ando buscando el problema.

Todavía no lo he resuelto, pero en el camino de hacerlo he resuelto algún otro que he descubierto.

A saber:

- Existe una incompatibilidad entre la decodificación del puerto $1FFD, que me sirve para cambiar el segundo bit de la página de ROM y el puerto $3FFD que curiosamente es el que se encarga de inicializar la controladora del floppy.
El problema está en que, aunque son puertos diferentes, como la decodificación que hago es parcial, sólo uso los bits A15, A14 y A1, que casualmente son idénticos en los dos casos.

Solución evidente, añadir el bit A13 que es diferente.

Cuando descubrí esto pensaba que ya tenía resuelto el problema del arranque, pero para mi pesar las ROMs siguen haciendo lo mismo. Es más, creo que el problema del +3e se ha agravado, aunque diría que la situación del +3 a mejorado algo.
Esto significa que aún hay otro problema que se me escapa. Lo que es seguro es que esto era un problema, y no sé ni como arrancaba el sistema.

Por si fuera un problema de intensidad en las señales, he pasado la selección de A15 (que corresponde con la del puerto $1FFD) por un biestable que me sobraba en el circuito, pero el resultado es exactamente el mismo.

¿En qué estoy ahora mismo?, pues con los fuentes de la ROM del +3, estoy poniendo cambios de color en el borde seguidos de esperas a pulsación de una tecla, para detectar donde me falla exactamente.

Tarea tediosa donde las haya, porque a la mínima se me cuelga el sistema, y cada nueva prueba significa modificar el fuente, quemar la ROM de nuevo y probar.

Hasta ahora he descubierto que el sistema me falla al llegar a la llamada a $3e80 con el parámetro $2410, que básicamente lo que hace es cambiar a la página 1 de la ROM para inicializar y mostrar las unidades de disco disponibles.

De hecho, he cambiado la llamada a dicha subrutina por NOPs y el sistema arranca con total normalidad, tanto en el caso del +3 como en el del +3e, por lo que voy acorralando el problema.

Como veis todo parece indicar un problema al inicializar las unidades de disco, pero me tiene confundido que siga sin funcionar al interpretar también el bit A13 en la decodificación del puerto.

Adicionalmente a lo anterior también he descubierto un problema de decodificación con el puerto $00FD que sirve para enviar caracteres al puerto de impresora, pero este no debería ser un problema mientras no utilicemos el comando LPRINT, por lo que lo voy a ignorar.

Soy consciente de que es un tema complejo, y que no puedo esperar mucha ayuda, ya que requiere dedicarle horas y sobre todo, tener el equipo para poder probar, pero os pongo esto para informaros de como va todo, y por si acaso alguien tiene alguna idea de por donde van los tiros.

Mientras tanto, sigo con el trazado del programa de la ROM y en busca del problema, aunque a partir de ahora se hace más difícil de seguir ya que hace varios cambios de página de ROM.

Os mantendré informados de los progresos.
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.
Avatar de Usuario
flopping
Fundador
Fundador
Mensajes: 9974
Registrado: 29 Mar 2013, 15:26
Ubicación: Valencia
Been thanked: 124 times
Contactar:

Re: En busca del bug en el superupgrade

Mensaje por flopping »

Y digo yo, ¿ y si le metemos el circuito de control de la disquetera a ver que pasa?, de esta forma ya estaríamos aproximandonos más a un +3 real y quizá al detectar la controladora, no tengamos ese fallo y podamos depurarlo mejor, te lo digo, por que igual es más fácil hacer el circuito y metérselo al upgrade, que estar tocando la rom, ¿qué te parece la idea?, así sabremos si esos puertos están dando problemas por no detectar la controladora, aunque ahora que lo pienso, los +2a y b no tienen la controladora y funcionan con las mismas roms, así que igual no es la solución definitiva, pero de momento no se me ocurre una prueba mejor.
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, por la esquizofrenia paranoide.
(C) 1982-2024, 42 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".

Mi juego, que puedes descargar desde aqui
Avatar de Usuario
sinclair200 España
Moderador
Moderador
Mensajes: 10000
Registrado: 28 Mar 2014, 18:25
Ubicación: Madrid
Has thanked: 8 times
Been thanked: 178 times

Re: En busca del bug en el superupgrade

Mensaje por sinclair200 »

Opino como flopping, wilco, pero yo aun voy mas lejos, creo que deberías olvidarte del la rom +3e.
Se supone que estamos recreando las maquinas originales de Sinclair, y el tema del +3e es un invento moderno, y si encima dices que da mas problemas que la rom del +3, mas a mi favor.
Seguro que si incorporamos la controladora de flopys, la rom del +3 la detectara y listo, aunque yo en estos temas soy el menos indicado para dar ideas, pues de electrónica ni idea..... :P :P
Imagen
Z80 INSIDE.........
WANTED:…………. CPC 6128 british
Avatar de Usuario
wilco2009 !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 8156
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 107 times

Re: En busca del bug en el superupgrade

Mensaje por wilco2009 »

Incorporar la controladora no es la solución, ya que como dice flopping el +2a/b funciona bien sin ellas.

Seguiré trazando la ROM hasta dar donde falla. Otra cosa es que le encuentre una solución.
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.
Avatar de Usuario
Ben-kenobi
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3547
Registrado: 12 Nov 2013, 10:00
Has thanked: 1 time
Been thanked: 18 times

Re: En busca del bug en el superupgrade

Mensaje por Ben-kenobi »

Discrepo de sinclair200 , yo si le veo sentido a la rom del +3e , acaso este addon no es una de esas cosas modernas? Ademas , asi se puede utilizar el divide en modo ide.
Quieres vinilos para makear tu spectrum? Mira Aqui
Avatar de Usuario
Sinclair
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3101
Registrado: 04 Jul 2013, 23:42

Re: En busca del bug en el superupgrade

Mensaje por Sinclair »

Añadir un elemento más al sistema como una controladora de discos sin depurar antes este error no haría más que complicar aún más las cosas.

La manera más acertada de encontrar este bug es como lo está haciendo wilco, mediante el seguimiento del los saltos del programa de la ROM.

Es extraño porque en contadas ocasiones llega a arrancar +3e e incluso a detectar mi interface IDE de 8 bits, pero muy de vez en cuando y eso es lo raro, que lo haga de esa forma tan aleatoria.

El problema es complejo y podría deberse casi al cualquier cosa, desde ruido en el circuito hasta que intervenga en la secuencia de arranque algún elemento más del circuito original aparte de las ROMS y el Z80, (¿gate array?) aunque si fuera esto último creo que no arrancaría nunca. También se me ocurre que podría deberse a problemas de timing o de resfresco de las memorias.

Yo lo que he notado, como ya te comente por privado, es que el +3 en la secuencia de inicialización se comporta de manera distinta al superupgrade:
el +3 muestra durante una fracción de segundo border 7, paper 0 antes de mostrar la pantalla inicial mientras que el tuyo cuando consigue arrancar muestra otro patrón diferente antes de pasar a la pantalla de los menús.

Saludos.
Imagen
Avatar de Usuario
Scooter !!Va-de-Retro
Demonio tercer orden
Demonio tercer orden
Mensajes: 969
Registrado: 27 Feb 2014, 11:33
Ubicación: Alicates
Has thanked: 1 time
Been thanked: 12 times

Re: En busca del bug en el superupgrade

Mensaje por Scooter »

No se si puede tener algo que ver. Hace un año y pico intenté un proyecto similar y no hubo manera, las rom de +3x no funcionaron. No averigüé por qué. Cambiando bancos y haciendo peeks y pokes a manubrio iba pero la ROM no.
Si lo descifrais igual resucito al MASTRESIZADOR.
A veces llegaban a arrancar pero al pulsar el teclado de iba al peo. Pensé que era problema de timmings.
El resto de cosas parece que funcionaron: CF, AY y joystick incluso pantalla shadow

Anbiao ende mi parato usando catacrak
Solo se que no se nada (algunos no saben eso)
Avatar de Usuario
wilco2009 !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 8156
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 107 times

Re: En busca del bug en el superupgrade

Mensaje por wilco2009 »

Scooter escribió:No se si puede tener algo que ver. Hace un año y pico intenté un proyecto similar y no hubo manera, las rom de +3x no funcionaron. No averigüé por qué. Cambiando bancos y haciendo peeks y pokes a manubrio iba pero la ROM no.
Si lo descifrais igual resucito al MASTRESIZADOR.
A veces llegaban a arrancar pero al pulsar el teclado de iba al peo. Pensé que era problema de timmings.
El resto de cosas parece que funcionaron: CF, AY y joystick incluso pantalla shadow

Anbiao ende mi parato usando catacrak
Ya te digo que si eliminas la inicialización de la controladora funciona todo como la seda. No parece problema de ruidos ni de timmings.
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.
Avatar de Usuario
Scooter !!Va-de-Retro
Demonio tercer orden
Demonio tercer orden
Mensajes: 969
Registrado: 27 Feb 2014, 11:33
Ubicación: Alicates
Has thanked: 1 time
Been thanked: 12 times

Re: En busca del bug en el superupgrade

Mensaje por Scooter »

Pues si me puedes proporcionar una imagen sin controladora te lo agradecería. Se me quedó mal sabor de boca al no hacerlo andar...

Anbiao ende mi parato usando catacrak
Solo se que no se nada (algunos no saben eso)
Avatar de Usuario
flopping
Fundador
Fundador
Mensajes: 9974
Registrado: 29 Mar 2013, 15:26
Ubicación: Valencia
Been thanked: 124 times
Contactar:

Re: En busca del bug en el superupgrade

Mensaje por flopping »

Scooter escribió:Pues si me puedes proporcionar una imagen sin controladora te lo agradecería. Se me quedó mal sabor de boca al no hacerlo andar...

Anbiao ende mi parato usando catacrak
Eso, eso, a ver si lo retomas y al final acabas el proyecto que se quedo a medias y la verdad es que pintaba muy bien.
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, por la esquizofrenia paranoide.
(C) 1982-2024, 42 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".

Mi juego, que puedes descargar desde aqui
Responder

Volver a “Proyectos de hardware abiertos”