ZX Dandanator! (Interfaz SD/Roms/Pokes Spectrum - en construcción)

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.
Responder
Avatar de Usuario
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3718
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Been thanked: 6 times

Re: ZX Dandanator! (Interfaz SD/Roms/Pokes Spectrum - en construcción)

Mensaje por dandare »

wilco2009 escribió:Si quieres acceder por DMA a la memoria baja puedes forzar a uno la señal iorqge (o iorqula, con lo que bloqueará el acceso de la ula a la memoria baja.
Pero no te sirve para los +2A/+3
Gracias Wilco2009, no sabía eso. ¿Impide la generación de la pantalla por parte de la ULA?
Creía que sólo,impedía las peticiones IO del Z80 (va conectado a Ioreq y al A0), pero ya voy a dejarlo atontado con un busreq.
Imagen
Imagen
Avatar de Usuario
Uto
El infierno es su lugar
El infierno es su lugar
Mensajes: 131
Registrado: 28 Mar 2014, 23:48

Re: ZX Dandanator! (Interfaz SD/Roms/Pokes Spectrum - en construcción)

Mensaje por Uto »

Me pregunto si en el ZX Dandanator cabría un interfaz Kempston. Ya se que los hay con conector passthrough, o incluso puede que el Dandanator tenga pass-through al final, pero es todo tan "guay" cuando los dispositivos son todo en uno :-)
http://www.ngpaws.com
Twitter: @uto_dev
Avatar de Usuario
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3718
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Been thanked: 6 times

Re: ZX Dandanator! (Interfaz SD/Roms/Pokes Spectrum - en construcción)

Mensaje por dandare »

Uto escribió:Me pregunto si en el ZX Dandanator cabría un interfaz Kempston. Ya se que los hay con conector passthrough, o incluso puede que el Dandanator tenga pass-through al final, pero es todo tan "guay" cuando los dispositivos son todo en uno :-)
Hola Uto, no debe ser difícil, ya que funcionaria de manera independiente a lo demás. Me lo apunto, gracias.
Imagen
Imagen
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: ZX Dandanator! (Interfaz SD/Roms/Pokes Spectrum - en construcción)

Mensaje por wilco2009 »

dandare escribió:
wilco2009 escribió:Si quieres acceder por DMA a la memoria baja puedes forzar a uno la señal iorqge (o iorqula, con lo que bloqueará el acceso de la ula a la memoria baja.
Pero no te sirve para los +2A/+3
Gracias Wilco2009, no sabía eso. ¿Impide la generación de la pantalla por parte de la ULA?
Creía que sólo,impedía las peticiones IO del Z80 (va conectado a Ioreq y al A0), pero ya voy a dejarlo atontado con un busreq.
Tienes razón, solo impide que la ULA no responda a las peticiones de IORQs. La memoria se sigue accediendo igualmente.
"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
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3718
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Been thanked: 6 times

Re: ZX Dandanator! (Interfaz SD/Roms/Pokes Spectrum - en construcción)

Mensaje por dandare »

Jo, pues que pena, estaría genial poder ponerle el "freno de mano" a la ULA , qué abusona!! :)) :))
Gracias Wilco2009, cualquier idea o comentario que tengas es bienvenido. :)
Imagen
Imagen
Avatar de Usuario
Kyp !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3401
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Has thanked: 31 times
Been thanked: 163 times

Re: ZX Dandanator! (Interfaz SD/Roms/Pokes Spectrum - en construcción)

Mensaje por Kyp »

dandare escribió:Hola Kyp, gracias por la idea. Me interesa que me cuentes más detalles.
Básicamente me refiero a que uses el mismo procedimiento de la RAM baja para todo. Es decir, cuando se pulsa la NMI, se sustituyen los 16K de ROM por 8K de "programa" y 8K de "memoria de intercambio". El programa se encarga de transferir la RAM del Spectrum al PIC (o viceversa) y el PIC simplemente gestiona el acceso a la RAM extra y hace de interfaz con la tarjeta SD.

Lo de interfaz paralelo me refería a que la comunicación entre el Spectrum y el PIC sería en paralelo.
dandare escribió:Te refieres a programar en el Z80 el protocolo de comunicación con la SD?
Teniendo el PIC no merece la pena, ni el protocolo SPI ni el sistema de archivos FAT.
dandare escribió:Ciertamente no he mirado como funciona el divide, entre otras cosas para no caer en la tentación de "copiar" cosas, no por no replicar, que es bueno si las cosas funcionan, si no porque hago esto para aprender y prefiero ir pegándome contra las paredes :)
Pues se parece mucho a lo que estás haciendo. También divide la ROM en dos bloques de 8K. El primero es ROM (flash) y el segundo hasta 64 bancos de 8K RAM. También tiene la posibilidad de que todo sea RAM y no usar ROM (concretamente el tercer banco de RAM sustituye a la ROM cuando se activa el modo MAPRAM).
La diferencia es que como no hay PIC, todo el protocolo IDE (DivIDE) o SPI (DivMMC) y la interpretación del sistema de archivos FAT está en la ROM y lo hace el Spectrum (lo cual tiene _MUCHO_ mérito).

Luego está el extra de capturar los accesos a direcciones concretas de la ROM para simular la carga o escritura a cinta. Para snapshots no hace falta, pero para TAPs si que sería necesario.
Avatar de Usuario
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3718
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Been thanked: 6 times

Re: ZX Dandanator! (Interfaz SD/Roms/Pokes Spectrum - en construcción)

Mensaje por dandare »

Gracias por toda la información, Kyp.

Es posible que acabe haciendo lo que me sugieres, tengo que ver cómo se comporta todo porque me preocupa especialmente el refresh de la DRAM (principalmente porqués un tema que he obviado pensando que ya me encargaré luego de el).
Tal y como está diseñado ahora el sistema, el PIC no puede hablar con la SRAM mientras que el Z80 esté activo ya que comparten los mismos buses de datos, direcciones y control, por eso, si tengo que atontar al Z80, ya me da igual escribir en la DRAM alta que en la SRAM.

¿Sabes si el código Z80 del divmmc es libre? estaría interesante ver ese SW, sobre todo si está hecho directamente en ensamblador. Seguro que se aprende un montón, principalmente de la gestión FAT y, por curiosidad, cómo han implementado el SPI, que así de entrada se me ocurre que podría ser con SCK, SDO y CS mediante lineas de direcciones en puerto IO y SDI mediante el bus de datos.

De nuevo muchas gracias, si vas a RetroParla me encantará charlar un rato contigo y conocerte.
Imagen
Imagen
Avatar de Usuario
Kyp !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3401
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Has thanked: 31 times
Been thanked: 163 times

Re: ZX Dandanator! (Interfaz SD/Roms/Pokes Spectrum - en construcción)

Mensaje por Kyp »

dandare escribió: Es posible que acabe haciendo lo que me sugieres, tengo que ver cómo se comporta todo porque me preocupa especialmente el refresh de la DRAM (principalmente porqués un tema que he obviado pensando que ya me encargaré luego de el).
Lo del refresco es un problema bastante complicado de resolver. Por eso pienso que es más sencillo traspasar los datos vía puerto IO y olvidarse de hacer DMA.
dandare escribió: Tal y como está diseñado ahora el sistema, el PIC no puede hablar con la SRAM mientras que el Z80 esté activo ya que comparten los mismos buses de datos, direcciones y control, por eso, si tengo que atontar al Z80, ya me da igual escribir en la DRAM alta que en la SRAM.
Tendrías que poner unos multiplexores para los buses o usar el truco del Spectrum y separarlos con unas resistencias :))

Pero sigue estado el problema del refresco.

La ULA no tiene ese problema con la memoria baja porque el hecho de leer la memoria para pintar la pantalla ya hace de refresco y aunque le quite la señal de reloj al Z80 no pasa nada.

En tu caso, con la memoria alta o haces el DMA alternando el acceso con la CPU para permitir el refresco, o haces tu directamente el refresco con el PIC. No se como se llevará eso con la gestión que hace internamente el Z80.
dandare escribió: ¿Sabes si el código Z80 del divmmc es libre? estaría interesante ver ese SW, sobre todo si está hecho directamente en ensamblador. Seguro que se aprende un montón, principalmente de la gestión FAT y, por curiosidad, cómo han implementado el SPI, que así de entrada se me ocurre que podría ser con SCK, SDO y CS mediante lineas de direcciones en puerto IO y SDI mediante el bus de datos.
El del DivMMC no es libre. Lo único que conozco es el del FATware pero es solo para IDE.
dandare escribió: De nuevo muchas gracias, si vas a RetroParla me encantará charlar un rato contigo y conocerte.
Mi intención es ir. Y lo mismo digo, a mi también me encantará conocerte y charlar de estas cosas :)
Avatar de Usuario
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3718
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Been thanked: 6 times

Re: ZX Dandanator! (Interfaz SD/Roms/Pokes Spectrum - en construcción)

Mensaje por dandare »

Avance informativo :)
► Mostrar Spoiler
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Imagen
Imagen
Avatar de Usuario
Uto
El infierno es su lugar
El infierno es su lugar
Mensajes: 131
Registrado: 28 Mar 2014, 23:48

Re: ZX Dandanator! (Interfaz SD/Roms/Pokes Spectrum - en construcción)

Mensaje por Uto »

Algunas ideas sueltas:

- Posibilidad de soportar ficheros con nombres largos: https://en.wikipedia.org/wiki/Long_filename

- Yo pondría todo lo que sea carpetas por defecto dentro de una carpeta /dan o algo así en lugar de meter tropecientas carpetas en el raiz. Es decir, en lugar de /ROM, /DAN/ROM

- En tu código hay un define del config file, aunque luego apunta a un directorio. No se si lo entiendo bien, pero entiendo que habrá una especie de dandanator.cfg con valores de arranque. Si eso es así, se me ocurre que un conector de joystick como el que dije podría ser configurable, con alguna de estas opciones ,que creo que se entenderán:

JOYSTICK=QAOPM
JOYSTICK=76580
JOYSTICK=KEMPSTON

- Por pedir que no quede: que el interfaz pueda sustituir en cualquier caso las rutinas estandar de la ROM por las suyas propias de cargar .TAP, como hace fatware o esxDOS. Sobre cualquier ROM, de modo que por ejemplo pueda ponerse la ROM de Shadow of the Unicorn, y luego reemplazar las rutinas de carga y cargar los TAP de los otros 48K.

- ¿DIjiste que tenia boton de reset? De nuevo por el "todo en uno" :-)

Bueno, tu pides ideas, y yo suelto lo que se me ocurre, pero vamos que lo mismo hay cosas que son muy complicadas, así que siente libre de no hacerme ni caso :-D
http://www.ngpaws.com
Twitter: @uto_dev
Responder

Volver a “Proyectos de hardware abiertos”