Hilo de peticiones para el core de Spectrum para mcleod

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Hilo de peticiones para el core de Spectrum para mcleod

Mensaje por Quest » 21 Mar 2016, 10:29

Por petición dle propio Mcleod para que no se nos pase, abro este hilo de peticiones de las cosillas pedientes que querríamos implementar o que estaban pendientes.

Empiezo por un par sencillas:

- Tecla para rotar entre modos de video. Vamos a estandarizarla para todos los cores (ya lo dejamos definido aquí: viewtopic.php?f=12&t=213&p=1777&hilit=tecla#p1776) yo ya lo he implementado en el core de SMS.

La función principal de esta tecla (scrollLock) sería rotar entre modos de vídeo para poder ver algo en la pantalla si al arrancar saliese en negro, si por ejemplo tuviésemos conectado el ZX-UNO con el cable VGA pero el ZX-UNO está configurado para arrancar por RGB/Vídeo compuesto (por defecto). Esto permitiría, que una vez pulsada (las veces necesarias hasta llegar al modo de vídeo que saque imagen en tu pantalla), pudiéramos ya obtener imagen para después entrar en BIOS (F2 tras master reset) y poder allí establecer de forma definitiva el modo de vídeo que deseamos por defecto para el arranque (esta opción todavía no está implementada en BIOS, pero la idea es que lo esté, cuando Antonio lo crea conveniente).

Mi propuesta para esta tecla, dado que su funcion principal es poder ver algo en pantalla para poder hacer la config definitiva después, es que rote entre estos modos:

RGB-PAL/VGA 50Hz/VGA 60Hz

- Más: esto más que un añadido, es simplemente un cambio que ya está listo para el ZX-UNO v4, v4.1 y el final que se va a distribuir. Hay que cambiar el multiboot.v por el multiboot_v4.v dado que los comandos SPI son distintos, y de lo contrario no arrancarán los cores secundarios de no hacer este cambio. Ya dejé el _v4.v preparado (de hecho es el que usé para el .MCS que está grabado en las flash de todos los que tenéis v4 / v4.1).
Otra cosa, para que se solucionara el problema de repetición de teclado (sobre todo cuando pulsabas "shift + :") cambiábamos el config rate en la generación del bit a 1x, pero ahora esto no es suficiente, porque al cargar ahora la SPI a 4x en el header, la config rate aumenta internamente de forma automática, y además el reloj interno de la FPGA tiene una precisión del 50%, así que el problema se vuelve a reproducir. para solucionarlo, cambiamos en ISE además del config rate, esto otro: "Enable External Master Clock", activado. "Setup External Master Clock Division" lo ponemos a 50. Por supuesto "Set SPI configuratin bus Width" se tiene que mantener siempre a 1, ya que el bus width real viene del header xilinx en la flash.

- Meter una copia de la BIOS (será una versión fija que sepamos que es 100% estable y funcional) en BRAM de la Fpga para tenerla como Bios de "rescate". Esto vendría bien por si alactualizar la Bios de la flash , hubiera alguna corrupción que la hiciera inutilizable (y por tanto todo el ZX-UNO) o por si pasan cosas como lo que pasó con la BIOS v.030K que tenia un bug que cuando la usabas para actualizar la flash, escribía donde no debía, lo cual la hacía inutilizable para ser ella misma actualizada o para actualizar cualquier otra cosa.
Por tanto, teniendo una copia de una Bios buena en BRAM podríamos dado el caso, invocarla con una combinación especial de teclas (difíciles de dar por error, por ejemplo ctrl+alt+pausa o algo asi) y desde ella poder ya hacer la actualización correcta de una Bios buena en FLASH.
<- Ya hemos metido algo parecido, en el nuevo bootloader hay un modo recovery (pulsando arriba+fuego del joystick mientras le das corriente al zxuno, entras en un modo que espera una Bios por cinta (EAR) de la que arrancar. Una vez cargada ya podemos flashear lo que queramos. Para que entre en la BRAM hay que aumentar su capacidad actual de 128 bytes a 256.

- UART con control por hardwre RTS/CTS (para trastear con el módulo ESP-12). Esto no es para nada prioritario y se podría dejar incluso para mucho más adelante. Poero lo pongo aquí para que no se me olvide :) (ya tengo ese módulo comprado desde hace tiempo)

- Para los cores de Jupiter ACE y SAM Coupé: Añadir el master reset (ctrl+alt+supr) que vuelve al core principal (spectrum). Yo ya lo he implementado en el de SMS. Basta con incluir el multiboot_v4.v y mandarle la dirección 0x058000 para el reboot de la FPGA.

Iremos usando este hilo si os parece bien para este tipo de peticiones e ir viendo su estado :)

Gracias!
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Hilo de peticiones para el core de Spectrum para mcleod

Mensaje por Uto » 21 Mar 2016, 12:20

No se si esto cuadra aquí, pero el tema de usar un teclado Spectrum 48k, un teclado de Spectrum +2/+3, e incluso cambiar posición de teclas en el de +2/+3 creo que es algo que implica tocar el core (o tener uno core "a medida"), porque imagino que toca configurar la cosa para que los pines del bus de expansión tengan las señales correspondientes.


Tampoco tengo claro si en caso de hacerlo así, afectaría también a otros cores como el de CPC, o se daría la paradoja de que el core de Spectrum usaría el teclado del Spectrum, y otros cores el PS/2.

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

Re: Hilo de peticiones para el core de Spectrum para mcleod

Mensaje por antoniovillena » 22 Mar 2016, 12:41

Quiero que se puedan mapear los pines del joystick DB9 de forma parecida a lo que hay para teclado. Como hay 7 acciones de joystick, creo que con 7 direcciones de puerto (o una que se escriba 7 veces seguidas) es suficiente. Cada registro necesita 6 bits para codificar todas las posibilidades:
-40 teclas
-5 direcciones Kempston
-5 direcciones Fuller?
-NMI y Reset (no estaría mal)

En total son 52 posibilidades de entre las 64 disponibles.

De esta forma, por ejemplo puedes configurarlo como Kemspton y mapear en teclado los 2 botones adicionales. O poner un OPQA y 3 teclas más para disparo

OscarBraindeaD
Mensajes: 38
Registrado: 26 Oct 2015, 11:49

Re: Hilo de peticiones para el core de Spectrum para mcleod

Mensaje por OscarBraindeaD » 22 Mar 2016, 14:37

Hola a todos,
No sé si encaja con el propósito del hilo... pero seria bastante útil, para los que no tengan las pegatinas del teclado, que al pulsar alguna tecla se mostrase la disposición de un teclado del modelo de 48kb (o del modelo que se esté utilizando) y su correspondencia con el teclado de ps2... esto lo tenía algún emulador antiguo y a veces resultaba útil si andabas enredando con el Basic.

Saludos!

Avatar de Usuario
carmeloco
Mensajes: 751
Registrado: 25 Dic 2015, 12:02

Re: Hilo de peticiones para el core de Spectrum para mcleod

Mensaje por carmeloco » 22 Mar 2016, 14:41

Yo lo encuentro complicado, teniendo en cuenta de que :zxuno: no emula.

OscarBraindeaD
Mensajes: 38
Registrado: 26 Oct 2015, 11:49

Re: Hilo de peticiones para el core de Spectrum para mcleod

Mensaje por OscarBraindeaD » 22 Mar 2016, 15:04

carmeloco escribió:Yo lo encuentro complicado, teniendo en cuenta de que :zxuno: no emula.
Bien visto... no lo había mirado desde ese lado...

Avatar de Usuario
neuro_999
Mensajes: 692
Registrado: 06 Oct 2015, 10:14

Re: Hilo de peticiones para el core de Spectrum para mcleod

Mensaje por neuro_999 » 22 Mar 2016, 15:06

Siempre se puede poner la rom de test de teclado entre las de arranque y alli ves que tecla se toca con cada una.
Yo lo use mucho cuando monte el tecleator de antonio. :)

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: Hilo de peticiones para el core de Spectrum para mcleod

Mensaje por Quest » 22 Mar 2016, 15:13

En la versión actual de la BIOS hay una utilidad para comprobar el funcionamiento del teclado, que hace justo lo que pedís (Input Test).

Vamos a intentar dejar este hilo para peticiones de cosas relativas puramente a la implementación de la Descripción Hardware del core de Spectrum (puramente lo que va en HDL sintetizable), que es de lo que se encarga principalmente mcleod_ideafix ;)

Para otras peticiones relativas al software, firmware/BIOS/ROMs (como lo que comentábais del teclado, que ya está implementado), etc, podéis hacerlo en las secciones correspondientes del foro (las hay de HDL, firmware, software... en el foro del core de Spectrum) o si son peticiones generales que no encajan en ninguno, podéis usar el subforo genérico de Preguntas / Peticiones.

Gracias :)
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
Manu
Mensajes: 83
Registrado: 26 Oct 2015, 08:21

Re: Hilo de peticiones para el core de Spectrum para mcleod

Mensaje por Manu » 14 Abr 2016, 21:37

antoniovillena escribió:Quiero que se puedan mapear los pines del joystick DB9 de forma parecida a lo que hay para teclado. Como hay 7 acciones de joystick, creo que con 7 direcciones de puerto (o una que se escriba 7 veces seguidas) es suficiente. Cada registro necesita 6 bits para codificar todas las posibilidades:
-40 teclas
-5 direcciones Kempston
-5 direcciones Fuller?
-NMI y Reset (no estaría mal)

En total son 52 posibilidades de entre las 64 disponibles.

De esta forma, por ejemplo puedes configurarlo como Kemspton y mapear en teclado los 2 botones adicionales. O poner un OPQA y 3 teclas más para disparo
Genial, con esto se podría hacer que el segundo botón fuese el salto en los juegos que hay que pulsar arriba y no se puedan redefinir teclas :D

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

Re: Hilo de peticiones para el core de Spectrum para mcleod

Mensaje por antoniovillena » 15 May 2016, 12:10

Una petición que me ha hecho un usuario de WOS por privado:
I have just a few questions about the ZX Uno, as I am interested in one. Would the unit work with NTSC video as I am in the USA? Does the Uno support DVI video?
Vamos que quiere NSTC para teles viejunas. DVI no veo que sea necesario puesto que hay adaptadores desde VGA y HDMI que harían la función.

Responder