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

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
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

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

Mensaje por wilco2009 »

gomasplus3-pequeno.gif


Pues después de 33 páginas discutiendo sobre este tema en este otro hilo, voy a inaugurar un nuevo hilo para ir dándole forma al proyecto.

El 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.

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.

Como primer paso vamos a hacer un lote de 10 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 10 os podéis apuntar aquí.

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

Me tomo la libertad de inaugurar la lista con los siguientes nombres:

Sinclair
Flopping x2
Wilco2009
Antoniovillena
Mikes
Tacha
Kripton67
Izaro
dancresp
jltursan

En lista de espera del segundo lote
Ron
Vidamia
stratotrasto
fermars
zx4ever
Sinclair200
Nandove
garillete
drachco
va-de-retro

leander (dos kits)
jgilcas (dos kits)
Telekita
JULIO
agusti
Cdvazquez

Ampliado el cupo a 30 unidades

Quedan 0 disponibles.
descarga.jpg
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
speccy_superupgrade_alfa_0.1_all.png
Esquema
speccy_superupgrade_alfa_0.1_schema.png
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 22 Feb 2021, 15:41, editado 1 vez en total.
"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
antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1596
Registrado: 02 Abr 2013, 19:06
Been thanked: 1 time

Re: Kit de conversión Spectrum 16/48Kb a plus 3

Mensaje por antoniovillena »

Me apunto
Avatar de Usuario
antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1596
Registrado: 02 Abr 2013, 19:06
Been thanked: 1 time

Re: Kit de conversión Spectrum 16/48Kb a plus 3

Mensaje por antoniovillena »

¿Y por qué no haces una lista de 20? Lo digo porque si pedís 10 os cobran $10 de gastos de envío, por lo que os sale a $35 ($3.5 por placa). Hay que superar $50 para que no nos cobren gastos de envío. Podéis hacer un pedido de 20 y añadís una cosa baratita, una de estas 2 cosas:
http://www.seeedstudio.com/depot/Bus-Pi ... p-526.html
http://www.seeedstudio.com/depot/5mm-Tr ... p-622.html

Y así nos sale a $2.5 por PCB
Avatar de Usuario
antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1596
Registrado: 02 Abr 2013, 19:06
Been thanked: 1 time

Re: Kit de conversión Spectrum 16/48Kb a plus 3

Mensaje por antoniovillena »

También hay artículos que se pueden dividir entre todos. Por ejemplo estos cables siempre vienen bien para los conectores JTAG

http://www.seeedstudio.com/depot/1-pin- ... l?cPath=44
Avatar de Usuario
Sinclair
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3101
Registrado: 04 Jul 2013, 23:42

Re: Kit de conversión Spectrum 16/48Kb a plus 3

Mensaje por Sinclair »

A Seeed Studio a lo mejor habrá que encargar también los extensores del BUS

Imagen

Se podría mirar además si estos nos pueden servir algunos de los componentes necesarios, si nos tiene cuenta claro, para ahorrarnos los gastos de envío aunque la cantidad tampoco la veo demasiado elevada.
Imagen
Avatar de Usuario
antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1596
Registrado: 02 Abr 2013, 19:06
Been thanked: 1 time

Re: Kit de conversión Spectrum 16/48Kb a plus 3

Mensaje por antoniovillena »

O también se los podemos comprar a flopping

http://www.va-de-retro.com/foros/viewto ... f=48&t=912

¿Cuantos expansores tienes @flopping? Lo digo porque igual nos apañamos, yo por ejemplo no necesito expansor (soy pobre en lo que a interfaces se refiere).
Avatar de Usuario
Sinclair
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3101
Registrado: 04 Jul 2013, 23:42

Re: Kit de conversión Spectrum 16/48Kb a plus 3

Mensaje por Sinclair »

antoniovillena escribió:O también se los podemos comprar a flopping

http://www.va-de-retro.com/foros/viewto ... f=48&t=912

¿Cuantos expansores tienes @flopping? Lo digo porque igual nos apañamos, yo por ejemplo no necesito expansor (soy pobre en lo que a interfaces se refiere).
Es solo una de las dos placas que forman el extensor/expansor lo que nos haría falta.
Imagen
Avatar de Usuario
antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1596
Registrado: 02 Abr 2013, 19:06
Been thanked: 1 time

Re: Kit de conversión Spectrum 16/48Kb a plus 3

Mensaje por antoniovillena »

Sí, los vende sueltos a 2 euros, fíjate aquí:

http://www.va-de-retro.com/foros/viewto ... f=50&t=913
Avatar de Usuario
Sinclair
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3101
Registrado: 04 Jul 2013, 23:42

Re: Kit de conversión Spectrum 16/48Kb a plus 3

Mensaje por Sinclair »

Yo había calculado 1 euro como mucho teniendo en cuenta que de una placa de 10x10 podrían salir 4 o 5.

Por cierto wilco, añade lo del expansor como una característica más, si te parece.
Imagen
Avatar de Usuario
antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1596
Registrado: 02 Abr 2013, 19:06
Been thanked: 1 time

Re: Kit de conversión Spectrum 16/48Kb a plus 3

Mensaje por antoniovillena »

Ya pero no puedes pedir 2 placas sueltas, tienes que pedir 5 ó 10, y 5 te salen a casi el doble la placa. Al final salen al mismo precio que la pcb, 2 euros. Las de flopping cuestan lo mismo, la diferencia es que no estamos obligados a pedir expansor.
Responder

Volver a “Proyectos de hardware abiertos”