Clon Superfo 128K - Manos a la obra

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Clon Superfo 128K - Manos a la obra

Mensajepor antoniovillena » 14 Abr 2013, 18:04

mcleod_ideafix escribió:Pero... quedamos en que la basura se genera independientemente de la CPU, ¿no? En las primeras pruebas te pedí que dejaras reseteado el Z80 después de mostrar la pantalla de inicio, y con el micro reseteado aún se veía la basurilla. Eso descarta de plano el Z80, que durante el reset se queda en alta impedancia.


Pues entonces no me enteré bien. Según recuerdo de la prueba que hice, mientras tenía pulsado el RESET se seguían viendo las rayas, pero no aparecían rayas nuevas. Tendría que probarlo nuevamente, pero me dio la sensación de que mientras RESET estaba activado la imagen se quedaba congelada. Si es así, entonces es posible que la basura la genere el Z80, ¿no?

Lo siento.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 54 veces
Contactar:

Re: Clon Superfo 128K - Manos a la obra

Mensajepor mcleod_ideafix » 14 Abr 2013, 18:05

antoniovillena escribió:En cuanto a fuentes, he probado tanto con fuentes conmutadas sin regular como con un puerto USB (se supone que regulado) y no noto ninguna diferencia.

Todas las fuentes conmutadas están regualdas. La del puerto USB también es conmutada (viene de la fuente ATX, que es conmutada). Lo que decía es lo que ha hecho jepalza: probarlo con una fuente no conmutada (típico transformador, puente de diodos, condensador de desacoplo, y regulador 7805), pero es que es un ruido demasiado digital ahora que lo vuelvo a ver, como para atribuirlo a la fuente.

Repito: mi sospecha anda del lado de la contención. Voy a echarle n vistazo con lupa a esa parte del esquemático, a ver...

-- Actualizado 14 Abr 2013, 18:09 --

antoniovillena escribió:Según recuerdo de la prueba que hice, mientras tenía pulsado el RESET se seguían viendo las rayas, pero no aparecían rayas nuevas. Tendría que probarlo nuevamente, pero me dio la sensación de que mientras RESET estaba activado la imagen se quedaba congelada. Si es así, entonces es posible que la basura la genere el Z80, ¿no?

Mmmmmmmmm..... si las rayas se quedan ahí con el micro fuera de juego, entonces ya me callo: no es un problema de contención (al menos no de contención en lectura). Estamos entonces en el caso de que una escritura del Z80 (que es el único que escribe en memoria) se está produciendo en más de un sitio a la vez, y si es el caso, significa que hay más de un elemento de memoria que se activa a la vez durante un ciclo de bus de escritura. En ese caso... usando la ROM del 48K y dejando sólamente U4 como única memoria pinchada, no debería verse ningún tipo de basurilla.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

jepalza

Re: Clon Superfo 128K - Manos a la obra

Mensajepor jepalza » 14 Abr 2013, 18:10

He probado en plan chapucero aislar MREQ y enviarlo mezclado con RFSH, y el resultado es el mismo.

¿tenéis la tabla de verdad de bancos por algún lado? Es que estudiarse ahora mismo cada línea que activo o desactiva es un quebradero de cabeza. Me imagino, que lo apuntaríais aunque sea en un papel.
A ver si con un café en la mano lo puedo mirar y entender que activa qué banco y en qué momento.

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Clon Superfo 128K - Manos a la obra

Mensajepor antoniovillena » 14 Abr 2013, 18:11

Según veo en el blog de Chris:

http://www.zxdesign.info/harlequinSnow.shtml

El probó el Snow Effect quitando la señal RFSH del decodificador y poniendo un 1. En teoría, según el clon de 128 está diseñado, se tendría que ver nieve con el registro I también en el rango $c0-$ff si tenemos paginada la RAM contenida. Pero el Snow Effect sólo afecta al video, no se corrompe la RAM, y esto es lo que no me cuadra.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 54 veces
Contactar:

Re: Clon Superfo 128K - Manos a la obra

Mensajepor mcleod_ideafix » 14 Abr 2013, 18:11

Estoy viendo algo raro en la activación de U3.... Vamos a ver...

U3 necesita para accder a ella:
- Que A15 valga 1. Eso sólo pasa si se direcciona desde 32768 en adelante.
- Que A14 valga 0. Eso nos deja en el rango 32768-49151...
... o bien que estén activos alguno de los bancos 0,2,4,6 (modo Sinclair) o 0,1,2,3 (modo Amstrad). En estos dos casos, da igual lo que valga A14, por lo que el rango se extendería desde 32768 a 65535
- OE y WE están pinchados a RD y WR en el Z80. OK.

Vale: falsa alarma: U3 se direcciona sólamente cuando es necesario direccionarla.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Clon Superfo 128K - Manos a la obra

Mensajepor antoniovillena » 14 Abr 2013, 18:35

jepalza escribió:He probado en plan chapucero aislar MREQ y enviarlo mezclado con RFSH, y el resultado es el mismo.

¿tenéis la tabla de verdad de bancos por algún lado? Es que estudiarse ahora mismo cada línea que activo o desactiva es un quebradero de cabeza. Me imagino, que lo apuntaríais aunque sea en un papel.
A ver si con un café en la mano lo puedo mirar y entender que activa qué banco y en qué momento.


Pues no lo tengo apuntado, pero es algo así:

Edito: Completo la información con el contenido de las memorias

Código: Seleccionar todo

A14 A15  X0 BANK1  X1 | A14n A15n A14c A15c CSc CSn ROMCS
  0   0   X     X   X |    1    0    0    1   1   1     0  (ROM)
  1   0   A     B   C |    B    C    0    1   0   1     1  (Banco 5)
  0   1   X     X   X |    1    0    1    0   1   0     1  (Banco 2)
  1   1   A     B   C |    B    C    B    C  /A   A     1  (Cualquier banco)

Sinclair
A14c A15c  Banco | A14n A15n  Banco
   0    0      1 |    0    0      0
   1    0      3 |    1    0      2
   0    1      5 |    0    1      4
   1    1      7 |    1    1      6

Amstrad
A14c A15c  Banco | A14n A15n  Banco
   0    0      4 |    0    0      0
   0    1      5 |    0    1      1
   1    0      6 |    1    0      2
   1    1      7 |    1    1      3


Teniendo en cuenta que:
  • A15c no existe, ya que VA15 lo genero con una puerta, pero sería: VA15=A15c+/AL
  • CSn tampoco existe, se usan los 2 enables de la RAM para simularlo.
  • CSc, CSn y ROMCS a su vez dependen de que MREQ esté activada, no lo he puesto en la tabla para no complicarla. El resto de señales no dependen de MREQ.
  • X0 y X1 son BANK0 y BANK2, el orden depende de qué tipo de contención tenemos: Amstrad/Sinclair.


-- Actualizado 14 Abr 2013, 18:20 --

mcleod_ideafix escribió:Mmmmmmmmm..... si las rayas se quedan ahí con el micro fuera de juego, entonces ya me callo: no es un problema de contención (al menos no de contención en lectura). Estamos entonces en el caso de que una escritura del Z80 (que es el único que escribe en memoria) se está produciendo en más de un sitio a la vez, y si es el caso, significa que hay más de un elemento de memoria que se activa a la vez durante un ciclo de bus de escritura. En ese caso... usando la ROM del 48K y dejando sólamente U4 como única memoria pinchada, no debería verse ningún tipo de basurilla.


El siguiente paso es probar a quitar U3, y si se confirma que no hay basura, entonces:

El problema estaría en que mientras el Z80 intenta escribir en memoria no contenida (U3) pasa algo raro que se activa también el CS de la memoria contenida (U4) y aparece la "basura". Quitando U3 hacemos que se deje de escribir en U3 (la ROM detecta sólo 16K de RAM y por tanto no hace escrituras más arriba de $8000) y por tanto ya no se da la condición para que aparezcan las "falsas escrituras".

jepalza

Re: Clon Superfo 128K - Manos a la obra

Mensajepor jepalza » 14 Abr 2013, 19:40

antoniovillena escribió:
mcleod_ideafix escribió:Mmmmmmmmm..... si las rayas se quedan ahí con el micro fuera de juego, entonces ya me callo: no es un problema de contención (al menos no de contención en lectura). Estamos entonces en el caso de que una escritura del Z80 (que es el único que escribe en memoria) se está produciendo en más de un sitio a la vez, y si es el caso, significa que hay más de un elemento de memoria que se activa a la vez durante un ciclo de bus de escritura. En ese caso... usando la ROM del 48K y dejando sólamente U4 como única memoria pinchada, no debería verse ningún tipo de basurilla.


El siguiente paso es probar a quitar U3, y si se confirma que no hay basura, entonces:

El problema estaría en que mientras el Z80 intenta escribir en memoria no contenida (U3) pasa algo raro que se activa también el CS de la memoria contenida (U4) y aparece la "basura". Quitando U3 hacemos que se deje de escribir en U3 (la ROM detecta sólo 16K de RAM y por tanto no hace escrituras más arriba de $8000) y por tanto ya no se da la condición para que aparezcan las "falsas escrituras".


Que viene a ser lo que ya he probado: obligar a que arranque como 48k únicamente, en cuyo caso, todo perfecto, sin errores. Si mientras tengo habilitado el 48k, quito el puente, se genera basura, si lo vuelvo a poner y hago un NEW, se quita la basura. Es solo, cuando "alguien" tiene acceso al /A14 y lo habilita a su gusto.

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Clon Superfo 128K - Manos a la obra

Mensajepor antoniovillena » 14 Abr 2013, 20:04

jepalza escribió:Que viene a ser lo que ya he probado: obligar a que arranque como 48k únicamente, en cuyo caso, todo perfecto, sin errores. Si mientras tengo habilitado el 48k, quito el puente, se genera basura, si lo vuelvo a poner y hago un NEW, se quita la basura. Es solo, cuando "alguien" tiene acceso al /A14 y lo habilita a su gusto.


Sí y no. Lo del puente en /A14 es parecido a quitar la RAM no contenida, pero no creo que equivalente. Si fuese equivalente no deberías ver basura al quitar el puente, ya que en el reinicio "has engañado" al clon haciéndolo creer que es un spectrum 16K. Este clon engañado no debería escribir más arriba de $8000, por tanto no debería aparecer ninguna basura.

-- Actualizado 14 Abr 2013, 19:09 --

De todas formas estamos aplicando la navaja de Occam, en tal caso si aparece basura quitando U3 (se puede conseguir forzando A15 a cero sin quitar el chip) antes de reiniciar, o bien desaparece la basura pero vuele a aparecer al reconectarlo, significa que el problema es más complicado de lo que pensábamos.

jepalza

Re: Clon Superfo 128K - Manos a la obra

Mensajepor jepalza » 14 Abr 2013, 20:11

antoniovillena escribió: Si fuese equivalente no deberías ver basura al quitar el puente, ya que en el reinicio "has engañado" al clon haciéndolo creer que es un spectrum 16K. Este clon engañado no debería escribir más arriba de $8000, por tanto no debería aparecer ninguna basura.


Tienes razón, no es lo mismo que quitar el chip. >| Estaba en la luna en ese momento....

Edito: una curiosidad, curiosa. Si al iniciar el Spectrum, tengo a GND HC3 (patilla 3 del 4040 U46), aparece una pantalla "rara" que diría que es el menú del 128. Si al de un par de segundos, quito el GND de HC3, aparece milagrosamente la pantalla del 128 perfecta, sin basura, y se mantiene incluso moviendo el cursor por el menú, pero se vuelve a romper al pulsar enter, imagino que cuando tiene que paginar. :-k

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 54 veces
Contactar:

Re: Clon Superfo 128K - Manos a la obra

Mensajepor mcleod_ideafix » 14 Abr 2013, 21:26

Una propuesta: en lugar de usar la ROM normal y corriente en el clon, usad la ROM de testeo que escribí.
http://www.zxprojects.com/images/storie ... rom128.bin

Es una ROM de 32KB. En el clon se puede grabar dos veces simplemente, hasta llenar los 64K.

Se pasa de un test a otro cortocircuitando momentaneamente cada uno de los 5 pines del conector de teclado KB0 a KB4, a masa. No hace falta, por tanto, un teclado "de verdad".

Al arrancarla, se ejecutará directamente el primer test: comprobación de los primeros 16K de RAM. En este test no se escribe para nada en direcciones por encima de 32767. Sólamente se lee de ROM, y se escribe en la VRAM. Cada cambio de color del borde es una copia completa de ROM en VRAM. Para volver a este test desde cualquier otro, resetear el micro.
Cortocircuitando KB0, se pasa al test de memoria no contenida: se copia la pantalla de test de la ROM a la RAM no contenida, y de ahí, repetidamente a la VRAM.
Cortocircuitando KB1, se pasa al test de memoria contenida: se copia la pantalla de test desde la ROM a la VRAM (fuera de la zona de pantalla, claro), y de ahí, repetidamente a la VRAM. Esto es, este test copia de VRAM a VRAM.
Cortocircuitando KB4, se hace un test un poco más exhaustivo de la RAM no contenida. Si el test sale bien, se queda el borde en color verde, y de ahí pasa de nuevo al primer test. Si falla, salen unas rayas en el borde indicando qué bit falló.
Cortocircuitando a la vez KB0 y KB4 (ambos a masa), se conmuta a la segunda ROM, que contiene una ROM de 48K modificada para que en ningún caso escriba más allá de 32767 (ni siquiera para comprobar si hay memoria allí)
KB2 sirve para grabar vía cassette el contenido de la pantalla. Se usa habitualmente para ver si el contenido de la memoria contenida coincide con lo que la ULA muestra. Ahí se puede ver si hay realmente corrupción en la memoria, o lo que se ve son artefactos de la propia ULA.
KB3 permite cargar desde cassette un bloque de bytes en el formato habitual (CODE inicio, longitud). Una vez cargado, se empezará a ejecutar desde la posición de carga. Sirve para poder añadir tests concretos sin tener que hacer una nueva versión de la ROM y flashearla cada vez.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 10 invitados