Kit Spectrum 16Kb a +3 (Speccy superupgrade) (PRUEBAS)

Si por algo se caracteriza el Spectrum es por su gran variedad de periféricos (clásicos y modernos)

Moderador: Sir Cilve Sinclair

Avatar de Usuario
wilco2009
Freddy Hardest
Mensajes: 543
Registrado: Lun Sep 17, 2012 9:40 am
Ubicación: Valencia

Kit Spectrum 16Kb a +3 (Speccy superupgrade) (PRUEBAS)

Mensaje por wilco2009 » Mar Abr 22, 2014 1:46 pm

Imagen

Quiero compartir con vosotros un proyecto que tenemos en marcha en va-de-retro y que ahora mismo tenemos en fase de lanzar el prototipo.
El proyecto sólo lo hemos lanzado en va-de-retro, retrowiki y ahora aquí.

Dicho proyecto consistiría en fabricar un interface conectable al bus del Spectrum que convirtiera un Spectrum 16/48Kb en lo más parecido posible a un Spectrum +3.

En el caso de un Spectrum 16Kb no habría que tocar el Spectrum para nada, limitándonos a insertar el interface para empezar a disfrutar de las nuevas características.
En el caso de un Spectrum 48Kb habría que hacer una pequeña modificación interna para deshabilitar la RAM alta del Spectrum, osea convertirlo en un 16Kb. Que no os asuste esto, ya que se trata de un simple puente.

Las características que va a tener el interface son las siguientes:

- Ampliación a 128Kb o 512Kb de RAM, dependiendo del chip que se compre.
- 2 conexiones de joystick multinorma (Kempston/Sinclair, Cursor)
- Botón de Reset
- Botón de NMI
- Incorporación de las ROMs del proyecto +3e para poder conectar un interface IDE.
- Chip de sonido AY.
- Entrada de audio para mezclar el sonido del speaker con el del AY.
- Salida de video compuesto.
- Expansor de bus.

Como podéis ver le queda muy poquito para convertirlo en un +3.
La idea es que funcionen todos los juegos de 128Kb que no necesiten acceso a floppy y que no usen los modos de Shadow RAM (realmente muy pocos).
Si incorporamos un interface IDE o un divIDE, podríamos ejecutar también los juegos de disco.
Con la ampliación a 512Kb es de esperar que puedan ejecutarse algunos juegos de los clones rusos tipo Pentagon.

Las placas son de 10x10 y no llevan ningún componente SMD, por lo que pueden ser montadas por cualquiera que tenga un soldador y ganas. No hace falta ser un experto.

Como primer paso vamos a hacer un lote de 30 placas que servirán de prototipo, para corregir los errores que pudieran haber, por lo que los que estéis interesados en formar parte de este primer lote de 30 os podéis apuntar aquí.

El precio calculado rondará aproximadamente los 20€, aunque esto no lo sabremos hasta que no tengamos precios definitivos de los componentes y de las placas.

He realizado un prototipo parcial con placas de prototipo para probar el interface de joystick, la RAM y la ROM y después de algunas correcciones, aparentemente todo funciona como se esperaba.

De momento están apuntados los siguientes nombres procedentes de Va-de-retro y Retrowiki:

Sinclair
Flopping x2
Wilco2009
Antoniovillena
Mikes
Tacha
Kripton67
Izaro
dancresp
Jltursan

Ron
Vidamia
stratotrasto
fermars
zx4ever
kikems
Nandove
garillete
drachco
va-de-retro
leander (dos kits)
jgilcas (dos kits)
Telekita

JULIO
agusti
Cdvazquez

Quedan 0 disponibles.

Imagen

Seguidamente os dejo la info del proyecto (si queréis ver las imágenes mejor si las abrís en una pestaña nueva):

Placa
Imagen

Esquema
Imagen

Archivos de la placa en formato jpg e eagle además de un listado de componentes:
https://drive.google.com/file/d/0B69T2l ... sp=sharing

Como la idea es probablemente lanzar un concurso de programación para juegos de 512Kb, aquí os dejo también algo de información técnica de ayuda para programar el interface.

Para la selección de las páginas de ROM y RAM en los Spectrum de 128Kb se utilizan los puertos $7FFD (32765) y $1FFD (8189).

El cambio de página de ROM o RAM se realiza pasando el valor adecuado al puerto correspondiente mediante un OUT, teniendo en cuenta que cada bit de dicho valor tiene el siguiente significado:

Puerto $7FFD

Imagen

- Los Bits 0..2 componen un número de 3 bits que nos permite seleccionar una página de entre las 8 posibles de la RAM del 128Kb.
- El bit 3 está relacionado con la shadow RAM y permite seleccionar la pantalla que se va a visualizar. Tener el bit 3 a 0 le dirá a la ULA que se muestre la pantalla convencional, mientras que si está a 1 significará que se muestre la Shadow RAM. Esta característica no está soportada en el interface.

- El bit 4 permitirá seleccionar entre las dos ROMs posibles en el Spectrum 128K y el +2 gris. Estando a 1 se selecciona la ROM del 48Kb y a 0 la del 128Kb.
En el caso de los +2A/+3 se tendrá en cuenta también otro bit que veremos luego formando entre los dos un número de 2 bits que nos permitirá seleccionar una de las 4 ROMs disponibles.

- El bit 5 nos permitirá deshabilitar el paginado.

- Los bits 6 y 7 no se usan.

Puerto $1FFD:

Imagen

- El bit D0 nos permitirá seleccionar entre el modo de gestión de memoria del +3 o de CPM
- Si tenemos seleccionado el modo CPM Los bits D1 y D2 nos permitirán modificar la distribución de la RAM según lo siguiente (Esta característica no está soportada en el interface):

Imagen

- Si el bit 0 es igual a 0 el bit D2 será la parte alta de selección de la ROM, junto con el D4 del puerto $7FFD. Podemos ver este bit (D2 $1FFD) como selección del chip A ó B dentro del +3 y el D4 de $7FFD como el selector de la parte baja o alta del chip.

- D3 sirve para activar o desactivar el motor del disco.

- D4 es la señal de strobe del puerto paralelo.

- D5 a D7 no se usan.

Paginación en el Pentagon

En el Pentagon se añaden dos bits más para la selección de la página de RAM correspondientes a D6 y D7 del puerto $7FFD, quedando dicho puerto de la siguiente manera.

Imagen

En nuestro interface se soporta este modo de paginación disponiendo de 5 bits (32 páginas) para la selección de página.

Distribución de las páginas en el espacio de direcciones.

El espacio de direcciones ocupado por la página seleccionada es generalmente $C000-$FFFF, pero existen algunas páginas que tienen un tratamiento especial.

La distrubución exacta se resume a continuación.

Imagen

- El banco número 2 siempre estará visible en el rango $8000-$C000, pero también será accesible en $C000-$F000 si tenemos seleccionada la página 2.

- El banco número 5 corresponde con la memoria de pantalla $4000-$8000 en un +2/+3. En nuestro interface no está soportado y es un banco más. Esto podría ser implementado en el futuro según las indicaciones de mcleod_ideafix.

- El banco número 7 corresponde con la ShadowRAM y su contenido se visualizará si D3 está a uno en el puerto $7FFD. En nuestro interface no está implementado y el banco 7 es una página más. Además es imposible de implementar sin cortar bastantes pistas y modificar interiormente el Spectrum. Afortunadamente no hay muchos programas que aprovechen esta característica, por otro lado muy interesante.

Distribución de las ROMs en el interface

En el +2/+3 las 4 ROMs vienen repartidas en dos chips (A y B) almacenando dos ROMs cada uno de ellos.

Imagen

En nuestro interface almacenamos las cuatro ROMs en un solo chip distribuyendose su espacio de la siguiente manera:

Imagen

Hay que tener en cuenta que el direccionamiento de la tabla es desde el punto de vista del chip, pero la ROM seleccionada siempre se accederá mediante el rango de direcciones estándar $0000-$3FFF.

Por último un listado de qué función tiene cada ROM:

Imagen
Última edición por wilco2009 el Sab Ago 09, 2014 10:11 am, editado 5 veces en total.

Avatar de Usuario
JULIO
Freddy Hardest
Mensajes: 599
Registrado: Mar May 08, 2007 10:30 am
Ubicación: Castilla La Mancha.

Re: Kit Spectrum 16/48Kb a plus 3 (Speccy superupgrade)

Mensaje por JULIO » Mar Abr 22, 2014 3:35 pm

Hola, pues si quedan dos placas, me apunto a una.
¿Que incluye el kit, la placa y componentes, hay que montarlo o ya viene montado?
[editado]
vale... ya he visto el hilo en va-de-retro, (me ha costao un poco), me leo el hilo ultimo que es este.
http://www.va-de-retro.com/foros/viewtopic.php?f=63&t=1179

saludos
Julio.

Avatar de Usuario
wilco2009
Freddy Hardest
Mensajes: 543
Registrado: Lun Sep 17, 2012 9:40 am
Ubicación: Valencia

Re: Kit Spectrum 16/48Kb a plus 3 (Speccy superupgrade)

Mensaje por wilco2009 » Mar Abr 22, 2014 3:56 pm

Apuntado.

Contigo y con otro usuario que se acaba de apuntar en retrowiki cerramos el cupo.

Solo recordar que se trata de un prototipo, por lo que podrían salir problemas de funcionamiento que hicieran que tuviéramos que hacer alguna modificación posterior en la placa, y que el kit se entrega sin montar.
Cada uno tiene que soldarlo y modificar su Spectrum para anular la memoria alta.

Lamento mucho para los que se hayan quedado sin kit que haya durado tan poco, pero es que solo quedaban 2.

De todas formas, cuando tengamos funcionando el invento con los posibles fallos corregidos sacaremos más placas.

Avatar de Usuario
JULIO
Freddy Hardest
Mensajes: 599
Registrado: Mar May 08, 2007 10:30 am
Ubicación: Castilla La Mancha.

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) CUPO CERRAD

Mensaje por JULIO » Mar Abr 22, 2014 4:15 pm

Vale asumo que es un prototipo y espero no tener que soplar sobre las cenizas.
reclamaciones al maestro armero :lol:
....sigo leyendo el hilo de...26 paginas

Cuando sepas el precio definitivo, me pasas un privado por favor y concretamos.

saludos
Julio.

Avatar de Usuario
wilco2009
Freddy Hardest
Mensajes: 543
Registrado: Lun Sep 17, 2012 9:40 am
Ubicación: Valencia

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) QUEDA UNO M

Mensaje por wilco2009 » Mié Abr 23, 2014 11:16 pm

Compañeros se ha quedado uno más disponible por lo que teneis una oportunidad más de apuntaros.

Avatar de Usuario
wilco2009
Freddy Hardest
Mensajes: 543
Registrado: Lun Sep 17, 2012 9:40 am
Ubicación: Valencia

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) QUEDA UNO M

Mensaje por wilco2009 » Jue Abr 24, 2014 5:18 pm

Por cierto, para el que lo quiera ver me llevaré el prototipo cableado a Retromadrid el sábado. No está demasiado presentable, pero si queréis echarle un vistazo allí lo tendré. Lo turnaré con el C64 que pensaba llevarme, ya que no quiero que la gente toque mucho el prototipo que no está para mucha tralla.

Como he puesto en el post principal tiene implementada sólo la parte de los joysticks, la ROM y la RAM, no el chip AY, eso vendrá ya en el prototipo con placas impresas que la maraña de cables ya no da para más.

Avatar de Usuario
flopping
Nonamed
Mensajes: 1093
Registrado: Vie Jul 16, 2010 9:54 am

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) QUEDA UNO M

Mensaje por flopping » Jue Abr 24, 2014 6:53 pm

Yo me quedo con el interface que queda, asi ya podemos empezar la produccion, salu2.
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, debido a la esquizofrenia paranoide que tengo.
(C) 1982-2016, 34 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente"

Avatar de Usuario
wilco2009
Freddy Hardest
Mensajes: 543
Registrado: Lun Sep 17, 2012 9:40 am
Ubicación: Valencia

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) (CUPO CERRA

Mensaje por wilco2009 » Jue Abr 24, 2014 8:31 pm

Asignado a flopping

Avatar de Usuario
wilco2009
Freddy Hardest
Mensajes: 543
Registrado: Lun Sep 17, 2012 9:40 am
Ubicación: Valencia

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) (CUPO CERRA

Mensaje por wilco2009 » Mar Abr 29, 2014 8:36 pm

Disculpad los cambios de última hora, pero es que entre que ya le llevaba yo tiempo dándole vueltas en la cabeza y lo que hablé en RetroMadrid con Antonio me he decidido a intentar meter los cambios y al final lo he conseguido.

El tema consiste en ponerle una EPROM mayor de tal manera que podamos tener más de un juego de ROMs al mismo tiempo, seleccionables con jumpers.
Eso permite poder tener las ROMs del 128Kb o del +2 gris o tener bloques de 4 ROMs de 16Kb para juegos seleccionables desde un menú situado en la ROM 0 de cada bloque.

Por otro lado Antonio me sugirió el poner una memoria flash en lugar de una EPROM y poner la posibilidad de grabar la flash desde el Spectrum. Pues bien, dicho y hecho, el hardware ya está preparado mediante un selector, ahora solo hace falta hacer el programa en el Spectrum que lo permita.
De momento yo no tengo conocimientos suficientes para hacerlo, pero igual Antonio se presta a echarnos una mano en este aspecto.
La idea es utilizar una flash 29F040 (aunque en el esquema ponga 29C040) que son más baratas (sobre 2.5€). La información para grabar la memoria está toda en el datasheet del chip.

Aquí os pongo imagenes de la placa terminada. El led es el indicador de modo escritura/lectura.

Decidme que os parece la idea. Yo creo que puede resultar bastante útil para tener grupos de ROMs directamente en memoria. Sería como un Megaflash lite para Spectrum.

Imagen

Imagen

Imagen

-----------------------------
EDITO: Para que se entienda un poco mejor.

La memoria flash que he metido tiene 512Kb de los cuales solo pueden usarse a la vez en el interface 64Kb.
El bloque de 64Kb del chip que queda accesible se configura con jumpers.
Activar simultaneamente los 512Kb no es posible, porque necesitaría otra gal (o varios chips de puertas lógicas) para gestionar los accesos a puertos que cambien de bloque y no me queda absolutamente ningún espacio en la placa. La placa está diseñada en 10x10 porque es el tamaño máximo que aun sale barato de fabricar. Después el precio sube mucho.
Quizás una futura versión con CPLDs pueda incluir eso y otras cosas.

Teóricamente el hardware ya permitiría grabar la flash desde el spectrum si se desarrolla el programa en ensamblador adecuado. Este podría ser cargado en la ROM0 del bloque 0 y copiado a la RAM. Después de esto y con el programa en RAM ejecutándose se podrían cambiar los jumpers al bloque que queramos escribir y tras confirmar en pantalla el software ya podría escribir cualquiera de los cuatro bancos de ese bloque.

Para ejecutar unos u otros también tendría que ser desde ese citado menú cambiando los jumpers si es necesario.

Avatar de Usuario
mcleod_ideafix
Johnny Jones
Mensajes: 3985
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera
Contactar:

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) (CUPO CERRA

Mensaje por mcleod_ideafix » Mié Abr 30, 2014 11:42 am

wilco2009 escribió:Quizás una futura versión con CPLDs pueda incluir eso y otras cosas.

Una futura versión, con CPLD, como la que te comenté en RM, podría añadir un puerto SPI para tarjetas SD/MMC compatible con ZXMMC, con lo que no sólamente tendrías la ampliación de memoria para convertirlo en un +3, sino además un dispositivo de almacenamiento compatible con +3e, con lo que poniendo las ROMs adecuadas tienes: memoria por un tubo y espacio de almacenamiento por otro tubo. Ahora sí que se podrían hacer juegos de 512KB sin que los tiempos de carga sean exhasperantes.

Es más: a golpe de jumper podrías convertir la interface de 512KB a una interface compatible DIVMMC, y aún podrías ofrecer 384KB de memoria ampliada (porque 128KB se los lleva DIVMMC).

Y... ¿por qué no? Una interfaz de joystick con opción de autodisparo automático. Dos puertos: el puerto 1 soportaría a la vez interfaz Sinclair 1, Kempston y Protek. El puerto 2 sería un puerto Sinclair 2.

Chips necesarios:
- La CPLD
- Chip de memoria RAM de 512KB
- Flash EPROM de 128KB

Otro material:
- El zócalo para la SD/MMC
- Regulador de 3,3V para la CPLD
- Resistencias y condensadores a discrección, y tal vez un transistor NMOS para lo que te conté en su momento de forzar la línea A15 a 0 en algunos casos.


Ven... pásate al lado oscuro... tenemos ponche y galletas :)
Web: ZX Projects | Twitter: @zxprojects

Avatar de Usuario
wilco2009
Freddy Hardest
Mensajes: 543
Registrado: Lun Sep 17, 2012 9:40 am
Ubicación: Valencia

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) (CUPO CERRA

Mensaje por wilco2009 » Mié Abr 30, 2014 11:55 am

Jajaja, si ya me has convencido, pero no quiero dejar las cosas a medias.

Tengo pensado ya ponerme manos a la obra a aprender, pero quiero terminar con esto.

Sacaré un versión 2 en un futuro próximo con CPLDs si mi desastrosa pericia con el soldador consigue superar la prueba. :D
Cogeré material averiado de mi empresa y me liaré a probar con esas endiabladas soldadudas SMD. :lol: :lol:

Avatar de Usuario
mcleod_ideafix
Johnny Jones
Mensajes: 3985
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera
Contactar:

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) (CUPO CERRA

Mensaje por mcleod_ideafix » Mié Abr 30, 2014 2:31 pm

wilco2009 escribió:Jajaja, si ya me has convencido, pero no quiero dejar las cosas a medias.

Tengo pensado ya ponerme manos a la obra a aprender, pero quiero terminar con esto.


Sí, es fundamental. No más añadidos a esta versión de la placa. Hay gente ya esperando y hay que mandar esos Gerbers a fabricar cuanto antes :)
Web: ZX Projects | Twitter: @zxprojects

Avatar de Usuario
wilco2009
Freddy Hardest
Mensajes: 543
Registrado: Lun Sep 17, 2012 9:40 am
Ubicación: Valencia

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) (CUPO CERRA

Mensaje por wilco2009 » Mié Abr 30, 2014 8:53 pm

Bueno, pues al final lo he conseguido mediante un jumper simple.
Con jumper puesto funcionamiento normal.
Con jumper quitado cortamos los +5V que inhabilitan la RAM interna y que también alimentan al chip de RAM del interface.
Se que esto no es muy ortodoxo pero en principio pienso que no debería dar problemas.

He intentado hacer lo mismo para la ROM pero ya no he podido, por lo que se queda como está.

Al final me ha quedado un exiguo plano de masa y unas pistas de alimentación un poco más gruesas que el resto. Espero que sea suficiente.

Imagen

Imagen

Imagen

Adicionalmente dejo aquí las imagenes anteriores en un zip y un archivo de texto con el partlist.

https://drive.google.com/file/d/0B69T2l ... sp=sharing

Ahora sí que me pongo con el cálculo del coste de los componentes y os digo.

Avatar de Usuario
mcleod_ideafix
Johnny Jones
Mensajes: 3985
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera
Contactar:

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) (CUPO CERRA

Mensaje por mcleod_ideafix » Mié Abr 30, 2014 9:02 pm

wilco2009 escribió:Con jumper quitado cortamos los +5V que inhabilitan la RAM interna y que también alimentan al chip de RAM del interface.
Se que esto no es muy ortodoxo pero en principio pienso que no debería dar problemas.

Los dará. Si le quitas la alimentación a un chip que va conectado a un bus triestado, no se queda en alta impedancia como uno piensa, sino que sus drivers de salida quedan en un estado desconocido, y puede que algunos de ellos se queden realmente en alta impedancia, pero otros podrían quedarse cortocircuitados a masa. En definitiva, estarías metiendo ruido en el bus de datos de la CPU.
Web: ZX Projects | Twitter: @zxprojects

Avatar de Usuario
wilco2009
Freddy Hardest
Mensajes: 543
Registrado: Lun Sep 17, 2012 9:40 am
Ubicación: Valencia

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) (CUPO CERRA

Mensaje por wilco2009 » Mié Abr 30, 2014 9:10 pm

Vaya!. Gracias por el aviso, me toca darle algunas vueltas más o descartar definitivamente el jumper de las narices.

Responder

¿Quién está conectado?

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