En busca del bug en el superupgrade
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.
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.
- wilco2009
- 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
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.
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.
Douglas Adams. Guía del autoestopista galáctico.
- flopping
- 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
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
(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
- sinclair200
- 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
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.....
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.....
Z80 INSIDE.........
WANTED:…………. CPC 6128 british
- wilco2009
- 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
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.
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.
Douglas Adams. Guía del autoestopista galáctico.
- Ben-kenobi
- 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
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
- Sinclair
- Hermano de Lucifer
- Mensajes: 3101
- Registrado: 04 Jul 2013, 23:42
Re: En busca del bug en el superupgrade
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.
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.
- Scooter
- 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
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
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)
- wilco2009
- 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
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.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
"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.
Douglas Adams. Guía del autoestopista galáctico.
- Scooter
- 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
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
Anbiao ende mi parato usando catacrak
Solo se que no se nada (algunos no saben eso)
- flopping
- 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
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.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
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
(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