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
![Smile :)](./images/smilies/icon_e_smile.gif)
- 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
![Smile :)](./images/smilies/icon_e_smile.gif)
Gracias!