Página 1 de 9

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

Publicado: 08 Mar 2016, 20:25
por dandare
Hola,
Después del experimento de la interfaz ROM, se me ocurrió que podría mejorarla cambiando la ROM por una RAM y haciendo el control algo más complejo, así que ya tengo casi diseñada (en servilletas de bar, por supuesto) la nueva interfaz que tendrá las siguientes características:
  • 1) Podrá seleccionar cualquier ROM que se encuentre en una tarjeta SD, por defecto arrancará en la última usada (bien externa o interna). Si no la encuentra o no está conectada la tarjeta, arrancará con ROM interna. La ROM podrá seleccionarse desde un botón externo, desde un menú en el Spectrum o desde código Z80.
    2) Un botón NMI accederá a un menú para seleccionar ROM, cargar juego, salvar juego, salvar pantalla, introducir pokes... (con librería, claro)
    3) Como me sobra un puerto serie, habilito un puerto serie bidireccional accesible desde el Z80 con un IOREQ. También podríamos usarlo para un teclado PS2.
    4) Ahora que están tan de moda los arduinos, todos los pines que me sobren (GPIOs) serán accesibles desde el Z80 con IOREQs para, encender leds y cosas de esas ;)
    5) Compatible con 48K y +2 (son con los que puedo probar, si alguien me cede otro, aumento la compatibilidad :D )
    6) Esquemas, código y todo lo que queráis (cuando estén, esta vez en Proteus, no a mano) a vuestra disposición. Dominio público.
Me voy a poner a hacer un prototipo a ver si funciona como quiero. En éste proyecto tardaré un poco más porque tengo que desarrollar código para el Z80 y para un microcontrolador, os iré contando avances.

Se admiten críticas, preguntas y sugerencias :-] .

Merlinkv ha nombrado el proyecto como ZX Dandanator! :)) :))

Re: Interfaz SD / Multirom con carga, grabación y pokes para Spectrum de Dandare (En progreso)

Publicado: 08 Mar 2016, 20:32
por Mikes
Si ya sabía yo que hacía buen fichaje

Re: Interfaz SD / Multirom con carga, grabación y pokes para Spectrum de Dandare (En progreso)

Publicado: 08 Mar 2016, 20:32
por shikitin
Se me cae la baba! :o
Impresionante la idea!!!

Re: Interfaz SD / Multirom con carga, grabación y pokes para Spectrum de Dandare (En progreso)

Publicado: 08 Mar 2016, 21:02
por dandare
Gracias compañeros, a ver si funciona :).
Si tenéis alguna sugerencia de funcionalidad, ponedla por aquí por si se pudiera incorporar.

Re: Interfaz SD / Multirom con carga, grabación y pokes para Spectrum de Dandare (En progreso)

Publicado: 09 Mar 2016, 15:01
por merlinkv
Pues el proyecto tiene una pinta genial ...... no encuentro un emoticono babeante, así que ....... :o :o :o :o

Deseando ver como avanza la cosa ..... :-]

Re: Interfaz SD / Multirom con carga, grabación y pokes para Spectrum de Dandare (En progreso)

Publicado: 09 Mar 2016, 15:11
por Pachuquin
Muy buena pinta.
Muy buen fichaje.

Lista. Lista. Queremos lista. :D

Re: Interfaz SD / Multirom con carga, grabación y pokes para Spectrum de Dandare (En progreso)

Publicado: 09 Mar 2016, 15:20
por flopping
Algunas dudas/preguntas/cuestiones, dices que vas a usar una tarjeta SD y que podremos cargar y salvar programas, ¿en que formato, rom, bin,tap,z80, tzx, sna..?, el formato de la tarjeta sera ¿fat, fat32, ntfs? , ¿como vas a implementar el driver de manejo de la SD?, tendras que anular la rom interna y meter una externa con el programa de manejo, ya que supongo que desde la SD no se cargara, ¿no?, vamos que vas a rediseñar el divide, el smartcard, o algo parecido.
Me gustaría que lo pudieras implementar todo eso que dices y quizá más, pero no lo veo trivial, el hard no es complicado, pero el soft igual si, y ya puestos, ¿te has planteado el meter un conector usb y usar memorias usb en vez de SD?.
Como ya he comentado muchas veces, lo mío no es la programación, pero se que lo que pretendes no es fácil de hacer, aunque si tu lo tienes claro, adelante con ello, nos gustara ver algo tan chulo como lo que describes.

Re: Interfaz SD / Multirom con carga, grabación y pokes para Spectrum de Dandare (En progreso)

Publicado: 09 Mar 2016, 15:46
por dandare
Hola Flopping,
gracias por los ánimos.

De momento sólo pienso en el formato SNA por ser el más fácil (para mi) de manejar. La tarjeta tendrá formato FAT32 hasta 32GB (SDHC)
El manejo de la SD se hará desde el PIC, de hecho, ya se hace, aunque estoy pegándome con la creación de ficheros en FAT32 porque no quiero usar librerías públicas y lo estoy haciendo desde 0.
No va a haber rom externa, pero si una RAM que se cargará con el programa de gestión desde la SD y, desde el punto de vista del Spectrum, será como una ROM (bueno, sólo a veces).
La idea es hacer algo con una funcionalidad similar a los interfaces que comentas pero desde otra aproximación, una de cosecha propia que no será la mejor, seguro, pero dará más opciones a las que ya hay y me permitirá investigar por el camino el mix PIC/Z80.

El conector USB requiere un microcontrolador que permita OTG (USB en modo Host) y de los que conozco, todos son SMD y además funcionan a 3,3V, por lo que se complica el interfaz con el Spectrum. Me parece que, aunque un pendrive iría mejor, no compensa frente a una SD, que son baratas y todos tenemos alguna por ahí. La gestión de una SD es muy fácil en modo SPI.

Como pista, la lectura y escritura de la memoria alta se hará por DMA y la de la memoria baja mediante un programa Z80 que la copiará en/desde la "ROM" virtual (recuerda, es una RAM). El Spectrum no sabe nunca que tiene un disco conectado, sólo que le "aparecen" cosas en una zona de intercambio de memoria "la mitad superior del espacio ROM" y que escribe y lee en varios puertos para pedir que eso cambie o para decir que se lo pueden llevar.

A mi no me parece un proyecto especialmente complejo, casi lo peor es poner todos los cables :)) :)).
Otro punto que me va a llevar más tiempo (por lo oxidado que lo tengo) es el código del Z80 para visualizar los ficheros, etc.

Cosas que ya hay:

- Acceso a la tarjeta SD en formato FAT32 (de momento sólo lectura y modificación de ficheros, falta creación)
- Gestión de RAM adicional (la que suplanta a la ROM)
- Gestión de la comunicación Z80 - PIC (Viva la linea WAIT ;) ) en 4 puertos IO distintos y en modo RD y WR
- Carga de los 32K de memoria alta
- SNA básico basiquísimo

Cosas que faltan:
- SW Z80 para interfaz con el usuario
- SW Z80 para cargar/guardar memoria baja y registros
- Extras (Pokes, puerto serie, etc...)
- SNA completo
- Mas formatos??

Re: Interfaz SD / Multirom con carga, grabación y pokes para Spectrum de Dandare (En progreso)

Publicado: 09 Mar 2016, 17:06
por overCLK
Im-presionante.

Supongo que esto funcionará sin problemas en el Harlequin, ¿verdad? :)

Imagen

Re: Interfaz SD / Multirom con carga, grabación y pokes para Spectrum de Dandare (En progreso)

Publicado: 09 Mar 2016, 17:35
por dandare
Debería funcionar en el Harlequin, no veo motivos para que no lo haga. Cuando BenKenobi reciba todas las piezas y lo montemos lo podré comprobar.
De todas formas es un proyecto "en marcha" y está en las primeras fases. He creado el post para ir compartiendo con vosotros el proceso de desarrollo, que me parece una buena vía de intercambiar ideas.