Kit Spectrum 16Kb a +3 (Speccy superupgrade) (PRUEBAS)
Moderador: Sir Cilve Sinclair
- wilco2009
- Freddy Hardest
- Mensajes: 543
- Registrado: Lun Sep 17, 2012 9:40 am
- Ubicación: Valencia
Kit Spectrum 16Kb a +3 (Speccy superupgrade) (PRUEBAS)
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.
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
Esquema
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
- 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:
- 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):
- 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.
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.
- 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.
En nuestro interface almacenamos las cuatro ROMs en un solo chip distribuyendose su espacio de la siguiente manera:
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:
Última edición por wilco2009 el Sab Ago 09, 2014 10:11 am, editado 5 veces en total.
- 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)
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.
¿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.
- 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)
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.
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.
- 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
Vale asumo que es un prototipo y espero no tener que soplar sobre las cenizas.
reclamaciones al maestro armero
....sigo leyendo el hilo de...26 paginas
Cuando sepas el precio definitivo, me pasas un privado por favor y concretamos.
saludos
Julio.
reclamaciones al maestro armero
....sigo leyendo el hilo de...26 paginas
Cuando sepas el precio definitivo, me pasas un privado por favor y concretamos.
saludos
Julio.
- 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
Compañeros se ha quedado uno más disponible por lo que teneis una oportunidad más de apuntaros.
- 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
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.
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.
- flopping
- Nonamed
- Mensajes: 1093
- Registrado: Vie Jul 16, 2010 9:54 am
Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) QUEDA UNO M
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"
(C) 1982-2016, 34 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente"
- wilco2009
- Freddy Hardest
- Mensajes: 543
- Registrado: Lun Sep 17, 2012 9:40 am
- Ubicación: Valencia
- 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
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.
-----------------------------
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.
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.
-----------------------------
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.
- 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
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
- 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
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.
Cogeré material averiado de mi empresa y me liaré a probar con esas endiabladas soldadudas SMD.
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.
Cogeré material averiado de mi empresa y me liaré a probar con esas endiabladas soldadudas SMD.
- 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
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
- 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
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.
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.
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.
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.
- 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
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
- 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
Vaya!. Gracias por el aviso, me toca darle algunas vueltas más o descartar definitivamente el jumper de las narices.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados