Cuestiones varias sobre el core de spectrum (Joystick, memoria, etc....)

Dudas, cuestiones, sugerencias y peticiones en general sobre el proyecto / Questions and requests about the project
Responder
wilco2009
Mensajes: 97
Registrado: 23 Ene 2016, 20:17

Cuestiones varias sobre el core de spectrum (Joystick, memoria, etc....)

Mensaje por wilco2009 » 07 Mar 2016, 08:45

Acabo de terminar la descripción de hardware de la parte de los joysticks de mi superupgrade. En general le he añadido lo siguiente:

- Dos puertos de joystick.
- Selección del protocolo mediante un selector. En una de las posiciones tenemos el protocolo Sinclair, y en la otra tenemos los protocolos Cursor y Kempston.
- He habilitado dos puertos hardware para reconfigurar el puerto "Cursor" con las teclas que queramos. Con el primer puerto seleccionamos la dirección a reprogramar y la columna y con el segundo seleccionamos la fila, por lo que tienen que ser consecutivos.

El hecho es que me había planteado portar esta última parte al zxuno, pero me surgen algunas dudas.

Yo tengo la versión 2 del zxuno. ¿Para empezar a trastear con el fuente que hay en el repositorio, lo único que tengo que cambiar es la definición del patillaje usando el archivo "pines_zxuno.ucf"?
En cuanto al joystick. Veo que el puerto de joystick del zxuno consiste en un puerto en el que se le puede seleccionar la funcionalidad a Kempston/Sinclair/fuller, además de tener un autodisparo.
El hecho es que he leido en uno de los posts que hablan de un tercer botón del joystick, pero no veo por ninguna parte la descripción de otros botones más que los cinco estándar (Arriba, Abajo, izquierda, derecha y disparo). ¿Está esta definición en algún otro archivo externo al "joystick.v".

Gracias por vuestra paciencia.
Última edición por wilco2009 el 07 Mar 2016, 16:18, editado 1 vez en total.

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Joystick del zxuno

Mensaje por antoniovillena » 07 Mar 2016, 11:46

Hola wilco

Que yo sepa el core de spectrum trabaja solo con 2 botones. El tercer botón se usa en otros cores. No sabría decirte en cuáles, esto te lo tendría que decir Quest. Y en la v2 creo que no se mapeó el tercer botón por hardware, te lo tendría que confirmar. En la v4 sí, pero se necesita soldar unos pines y poner unos jumpers para activarlo.

wilco2009
Mensajes: 97
Registrado: 23 Ene 2016, 20:17

Re: Joystick del zxuno

Mensaje por wilco2009 » 07 Mar 2016, 12:01

antoniovillena escribió:Hola wilco

Que yo sepa el core de spectrum trabaja solo con 2 botones. El tercer botón se usa en otros cores. No sabría decirte en cuáles, esto te lo tendría que decir Quest. Y en la v2 creo que no se mapeó el tercer botón por hardware, te lo tendría que confirmar. En la v4 sí, pero se necesita soldar unos pines y poner unos jumpers para activarlo.
Gracias Antonio. De todas formas lo que yo veo en "joystick.v" es que solo se mapea un botón de disparo. A ver si Quest me lo puede confirmar.

Avatar de Usuario
mcleod_ideafix
Mensajes: 831
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: Joystick del zxuno

Mensaje por mcleod_ideafix » 07 Mar 2016, 12:54

En el core de joystick, de momento, sólo hay habilitado un botón de disparo, ya que no toco ese código desde la versión v2.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

wilco2009
Mensajes: 97
Registrado: 23 Ene 2016, 20:17

Re: Cuestiones varias sobre el core de spectrum (Joystick, memoria, etc....)

Mensaje por wilco2009 » 07 Mar 2016, 16:30

Gracias a los dos por la respuesta. ;)

Volviendo a mi pregunta inicial, sobre el tema de modificar la descripción del zx-uno.
Para usar el código en mi versión del zx-uno ¿el archivo de configuración del patillaje correcto es "pines_zxuno.ucf"?. (mi versión es la 2).

Por otro lado, he estado echando un vistazo a la gestión de la memoria, y la verdad es que con el tema de la ROM me perdía y me ha costado bastante entenderlo.
Por un lado veía que, en modo normal, tanto la ROM como la RAM se leían desde la SRAM, y luego estaba el modo boot en el que se leía desde una pequeña ROM de 256 bytes residente en la flash rom que se inicializa con un archivo. Me ha costado bastante llegar a ver como se copiaba el contenido de la flash SPI a la SRAM. Ahora he visto el código en assembler que se encarga de hacerlo y que utiliza los registros hFC3B y hFD3B para hacerlo.
Muy ingenioso el tema, por lo menos para mí que soy neófito en esto.

Por otro lado veo que los testbench que hay en el repositorio no están actualizados, o eso creo que, porque no me coinciden los interfaces de los módulos con los existentes y da un error al intentar simular.
¿Es así, o me faltan archivos?


EDITO: Se me olvidaba. En la decodificación de los puerto 1FFD y 7FFD comprobáis A0 cuando en la descripción que hay en WOS no pone que sea necesario, de hecho yo no lo compruebo en el superupgrade.. ¿Hay algún motivo para tener que comprobar A0?.

Responder