Respuesta a
este mensaje de Quest, antes de que lo vaya dejando.
1- El Upgrade machine. Esto sí es esencial que funcione bien, porque el usuario final no tendrá cable xilinx y cualquier cambio lo tendrá que cargar de ahí. No funciona. He probado de mil maneras. Cargando el TAP a velocidad normal, diferentes volúmenes, desde diferentes dispositivos (ordenador con diferntes reproductores, móviol, aparatos de mp3,etc) y también he probado pasándolo a CargandoLeches, en sus 7 posibles velocidades, pero nada, es imposible, da siempre error. He probado con diferentes ficheros machine, del svn o de .bit generados por mi, etc, pero nada. Suele dar el error de carga siempre al finalizar el primer bloque grande. Me refiero a error de carga. Lo de que se corrompa la pantalla al cargar cabecera es otra cosa que además ya me consta que era un fallo conocido pendiente de arreglar. El problema es que no hay manera de actualizar machine. Creo que este punto sería el primero a arreglar de la bios, sobre todo de cara al producto final, al usuario final.
Esto también es lo primero que tengo pendiente de arreglar, sobre todo ahora que hay algunos poseedores de ZX-Uno sin cable USB (se lo han soldado y programado otros)
2- Este es una tontería

pero siempre que lo veo me chirría, simplemente que en todos los sitios donde aparece la palabra "timing" o "timings" lo pone con dos emes: "timming", siendo que la palabra correcta en inglés es con sólo una eme: "timing". Ya digo que es una chorrada, pero ahí está
Arreglado ya en mi archivo local, es cuestión de tiempo que lo suba al repositorio.
3- El quiet boot. Aquí supongo que esto no es un fallo, sino que lo que hace es el comportamiento normal, pero quizá no estaría de más darle un repaso al tema. La cuestión es que cuando activamos el quiet boot, evidentemente ya no sale la pantalla de presentación con el logo del ZX-UNO y demás, y claro, sale un paper con basura aleatoria de la memoria de pantalla o bien si es tras un master reset después de haber estado usando el spectrum, pues suele salir lo último que había en pantalla antes de resetear, normalmente con un border azul. Hasta aquí bien. El tema es que dura aproximadamente unos 6-7 segundos (bueno, si la rom es más pequeña pues menos, claro, hablo de la de un +3), que imagino que es debido a que hay que esperar a que se copie la rom a memoria antes de ejecutarla. Con la de un 48, son sólo un par de segundos, así que no hay problema. Con la del +3 y similares pues eso, simplemente que mientras esperas pues ves un ratillo de basura. Si se pudiera inicializar la memoria de vídeo de algún modo para que saliera todo negro o todo blanco, o algo uniforme, pues quizá sea mejor, no se qué opinas. Esto no tiene realmente importancia, pero ahí lo dejo. Son sólo detalles de cara al usuaro final. Imagino que tampoco se puede acelerar la carga de la rom.
Sí, aquí puedo poner toda la pantalla azul para que haga juego con el borde.
4- Esto creo que ya se comentó hace bastante bastante tiempo, pero creo que sigue dando lugar a cierta confusión, y lo saco a la palestra de nuevo. Cuando está desactivado el quiet boot y aparece la pantalla del logo del ZX-UNO, mientras la ves, pues evidentemente ahí aparece el "press Edit to setup" y el "<break> Boot Menu", pero lo que acaba desesperando cuando lo usas frecuentemente es que sólo puedes pulsar durante un periodo muy corto. Ya leí en su día la explicación al respecto, pero aun así para el usuario final no es intuitivo, porque aunque aceptemos que el tiempo para pulsar sea corto, el mensaje de "press XXXXX" sigue saliendo aun cuando ya no se puede pulsar. Esto frustra y hace pensar que el teclado no funciona o que hay algo que va mal (aunque nosotros sabemos que no es así). Entonces, una de dos: O dejamos el tiempo de pulsado tal como está y hacemos que desaparezca la línea de "Press XXXXX" justo cuando ya no se puede pulsar, o bien dejamos que se pueda pulsar mientras dicha línea de texto sea visible. El caso es que tiene que haber una coherencia entre lo que se ve y la acción que se puede llevar a cabo.
Tienes razón, no tenía previsto que las ROMs tardasen tanto en cargarse. Me parece mejor opción hacer desaparecer el mensaje cuando ya no sea posible dicha acción.
5- Esto es una sugerencia: No se cómo de complicado será porque imagino que involucra cambios sustanciales en el código vhdl/verilog del core, pero sería MUY interesante y muy bien aceptado por los usuarios, tener en la BIOS, por ejemplo en Main, dentro de Options, una opción para elegir el layout del teclado. Por ejemplo:
Keyboard map [ESP|UK|AV|ZXint]
Evidentemente no tienen por que ser esas 4 opciones, sólo es un ejemplo, de un layout ES tipo el de mcleod, un layout UK, AV tipo el tuyo, uno ZXint tipo el mio para usar un teclado de membrana real de spectrum con el arduino, etc, etc. Como decía antes, imagino que esto para nada será trivial, pero ahí lo dejo porque si fuera posible, sería de gran acogida. Cada uno con su set de pegatinas en cada teclado y configurándolo en la Bios a placer

Además, no es lo mismo ponerse a jugar que a programar. A veces te resulta más cómodo usar un layout para una cosa y otro para otra.
Esta sugerencia sería más bien para McLeod. Como poder se puede, pero sería más costoso en términos de ocupación de la FPGA: no llegaría a ocupar como las 4 opciones a la vez, pero casi. A mí me parece bien, pero claro no depende de mí.
Por cierto me ha llegado el Arduino. Me pondré a trastear con él un poco y cuando pueda implemento lo de tu teclado.
6- Esto tampoco es nada que tenga importancia pero si da algo más de comodidad: en el apartado ROMs de la bios, para subir por ejemplo una rom que está al final de la lista (que es donde suelen ponerse cuando añades una nueva con la N), tienes que darle a Enter, seleccionar "Move up" con la flecha de arriba, y volver a dar a enter. Esa secuencia repetida tantas veces como puestos quieras subir la ROM. Se hace algo pesado. Quizá usar unas teclas dedicadas a subir y bajar los puestos sería infinitamente más rápido. Por ejemplo: "+" para bajar y "-" para subir.
Ya, pero el problema de esto es que no me cabe en la pantalla de ayuda y si la gente no lo ve ahí, pues no lo usa. De todas formas si tengo tiempo lo pondré, aunque realmente lo use poca gente.
7- Una pequeña mejora a futuro: en ROMs, simplemente que haya, por ejemplo, arriba a la derecha (que ahora esta vació ese cuadro en esa sección) un par de líneas donde diga: 1- El Nº de slots ocupados/libres (nosotros sabemos que hay 20, pero no todos lo sabrán). Y otra línea donde diga, de forma dinámica cuando pasas por encima de cada rom al moverte con los cursores, el nº de slots que ocupa esa rom. Y ya sería de orgasmo si además (que creo que hay hueco suficiente) te dijera los defaults que tiene esa rom (timing, keyboard issue, contencion, divmmc, nmi..)
Lo de los defaults de la ROM es algo que tengo contemplado y no solo para visualizar, si no con posibilidad de editar. Pero lo de los slots ocupados/libres requeriría mucho cambio en el código, por lo que no lo voy a hacer de momento.
8- Esto ya no sé como será de posible, pero sería interesante añadir en Options a la opción de timings, los del +2A/+3. Esto sería ideal para cosas como por ejemplo demos que sólo funcionan bien con esos timings. Yo soy de ver demos muy a menudo, y tenía idea de usar el ZX-UNO en un futuro entre otras cosas para retroparties donde puedas proyectar demos (por ejemplo coger todo Pouet y hacer una sesión...), y no tener que usar emuladores ni tener un montón de spectrums reales quitando y poniendo del proyector, y que se vean bien todas. Esto lo digo ya al margen de lo del T80 que veremos al final cómo queda. Pero al margen del core de la CPU, faltarían los timings que comentaba de los +2A/+3 (entiendo que de la memoria, según leo en
http://www.worldofspectrum.org/faq/refe ... erence.htm , cerca de la parte final).
De momento eso es todo
Sigo testeando cosas.
Pues no tengo ni idea si se conoce al detalle la ULA (gate array) del +2A/+3 como para implementarlo y que se exacto. Añadirlo al firmware sería trivial, lo complicado sería codificarlo en VHDL.