ZX-Uno prototipo 2: seguimos dándole caña

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor antoniovillena » 20 Mar 2015, 18:38

Este hilo es continuación de la saga:
PiZx: Clon barato de spectrum con FPGA (WIP)
ZX-Uno, clon barato basado en FPGA
Montaje del ZXUNO
Sintetizando un Spectrum con el ZX-Uno
Avances en el desarrollo del ZX-Uno
Novedades acerca del ZX-Uno
Prototipo 2 del ZX-Uno
Montaje del prototipo 2 del ZX-Uno
Cacharreando con el prototipo 2 del ZX-Uno

Estos hilos están relacionados con el ZX-Uno pero no pertenecen a la saga:
Creando videos en formato "Radastaniano" para reproducirlos con ZX-Uno
Teclado para ZX-Uno
ZX-UNO: Etiquetas para Teclado (2º Tiraje)
Addon Z80 de McLeod para el ZX-Uno
ZX-Uno: Diseñando una caja de cartón / impreso 3D
Conector expansión Spectrum para ZX-Uno




Pdf con todo para revisar

Listado de componentes

Repositorio de McLeod:
http://www.atc.us.es/svn/zxuno/
Usuario: guest
Contraseña: zxuno




¿Quiénes tienen el prototipo 1?
  • superfo
  • jepalza
  • mcleod_ideafix
  • antoniovillena
  • JULIO
  • garillete
  • flopping
  • radastan
  • TallerSeverino
  • celestinox

¿Quiénes tienen el prototipo 2?
  • mcleod_ideafix
  • superfo
  • antoniovillena
  • TallerSeverino
  • jepalza
  • JULIO
  • yombo
  • alt
  • Haplo
  • Winston
  • enkonsierto
  • flopping
  • Hark0
  • Quest
  • wilco2009
  • web8bits
  • Sinclair
  • BCH
  • Angriff
  • garvidal
  • radastan
  • celestinox
  • Mejias3D
  • JonS (WOS)
  • aowen
  • Eselchen (WOS)
  • javu61
  • Ben-kenobi (va-de-retro.com)
  • jrodriguezv (va-de-retro.com)
Última edición por antoniovillena el 16 May 2015, 13:12, editado 1 vez en total.

Avatar de Usuario
Hark0
Amiga 1200
Amiga 1200
Mensajes: 1695
Registrado: 11 Jul 2012, 23:44
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: (Otro)
Primera consola: (Otro)
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor Hark0 » 20 Mar 2015, 19:00

El lunes actualizo la web oficial.... ;)
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor antoniovillena » 20 Mar 2015, 20:08

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 :D
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.

Avatar de Usuario
Quest
Atari 1040 STf
Atari 1040 STf
Mensajes: 900
Registrado: 18 Jul 2013, 22:20
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo NES/Clónica
Gracias dadas: 9 veces
Gracias recibidas: 16 veces

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor Quest » 21 Mar 2015, 19:53

antoniovillena escribió:Respuesta a este mensaje de Quest, antes de que lo vaya dejando.


Muchas gracias por tomarte el tiempo para revisar esos detalles.

[..Con respecto al tema de elección de layouts de teclado..] 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í.


Ok, pues ya nos dirá cómo de factible es y si merece la pena el % de uso.

También se me ocurre otra sugerencia similar, a evaluar su dificultad: En BIOS, posibilidad de activar/desactivar add-ons, en el momento actual, podría haber una opción (para los tests actuales sería genial para no tener que estar grabando el .bit todo el rato) para conmutar entre Core T80 de la FPGA y el Z80 externo, tal que así:

CPU core [Internal T80 | External Z80]

Por cierto me ha llegado el Arduino. Me pondré a trastear con él un poco y cuando pueda implemento lo de tu teclado.


Genial. Yo tengo el código AVR-GCC preparado (como ya te dije, ya lo probé en mi arduino mini clon y funciona estupendamente por el puerto serie salvo por lo que comentamos de los scancodes>ascii). Sólo falta que me digas si el programa PC que vas a hacer para enviar por puerto serie va a enviar finalmente los scancodes ps/2 tal cual o no, para implementar el cambio en mi código (que hasta ahora usaba mapeo), y una vez hecho (es sencillo de hacer), lo pruebo todo y te mando el hex para tu arduino. Sólo necesitarás un level shifter para tx/rx entre el arduino y el rs232 del PC. Yo uso un MAX3232 que tenía por ahí.

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor antoniovillena » 21 Mar 2015, 22:17

Quest escribió:
También se me ocurre otra sugerencia similar, a evaluar su dificultad: En BIOS, posibilidad de activar/desactivar add-ons, en el momento actual, podría haber una opción (para los tests actuales sería genial para no tener que estar grabando el .bit todo el rato) para conmutar entre Core T80 de la FPGA y el Z80 externo, tal que así:


Desde luego estaría genial, pero no sé si es viable para McLeod.

Quest escribió:Genial. Yo tengo el código AVR-GCC preparado (como ya te dije, ya lo probé en mi arduino mini clon y funciona estupendamente por el puerto serie salvo por lo que comentamos de los scancodes>ascii). Sólo falta que me digas si el programa PC que vas a hacer para enviar por puerto serie va a enviar finalmente los scancodes ps/2 tal cual o no, para implementar el cambio en mi código (que hasta ahora usaba mapeo), y una vez hecho (es sencillo de hacer), lo pruebo todo y te mando el hex para tu arduino. Sólo necesitarás un level shifter para tx/rx entre el arduino y el rs232 del PC. Yo uso un MAX3232 que tenía por ahí.


La aplicación del PC enviaría los scancodes tal cual, pero usando codificación propia y un único byte. Sería 80 códigos, 40 makes y 40 releases. Los makes serían los ASCII (en mayúsculas) de las letras (entre 65 y 90) y los números (de 48 a 57), más el espacio (32), el enter (13), el caps shift (91) y symbol shift (64). Los códigos release serían los mismos que los make pero sumándole 128.

Tengo el montaje listo para hacer pruebas, adjunto imagen. Creo que lo suyo es abrir hilo nuevo, si quieres ábrelo tú que eres el creador de la utilidad.
Adjuntos
IMG_20150321_220313_1.jpg
IMG_20150321_220313_1.jpg (161.03 KiB) Visto 13507 veces

stratotrasto
Dragon 32
Dragon 32
Mensajes: 22
Registrado: 27 Jun 2013, 12:27

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor stratotrasto » 22 Mar 2015, 17:23

Ya veremos si soy capaz de montar yo esto...

Avatar de Usuario
Hark0
Amiga 1200
Amiga 1200
Mensajes: 1695
Registrado: 11 Jul 2012, 23:44
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: (Otro)
Primera consola: (Otro)
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor Hark0 » 23 Mar 2015, 11:09

Actualizado hilo ENLACES en web principal.
Pulsar F5 para actualizar.

http://zxuno.speccy.org/enlaces.shtml

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

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor antoniovillena » 05 Abr 2015, 14:24

Para los 3 ZX-Uno que faltan por enviar (stratotrasto, Ben-kenobi y jrodriguezv), os pongo al día. El vendedor es bastante cabroncete y se ha esperado al día antes de que se acabe la disputa para hacer un envío. El número de seguimiento es el mismo RF010216514CN, así que algo llegará. El paquete parece ser que ha llegado a España y en una semana o así me llegará. Pueden pasar 2 cosas: que esté todo bien (no vengan las 3 FPGAs dentro) o que no. Si lo segundo vuelvo a pedir las FPGAs y a esperar otro mes. Si todo está bien, os lo envío. Siento el retraso. Lo que me ha pasado con este vendedor no es normal.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor mcleod_ideafix » 05 Abr 2015, 15:15

antoniovillena escribió:
Quest escribió:
También se me ocurre otra sugerencia similar, a evaluar su dificultad: En BIOS, posibilidad de activar/desactivar add-ons, en el momento actual, podría haber una opción (para los tests actuales sería genial para no tener que estar grabando el .bit todo el rato) para conmutar entre Core T80 de la FPGA y el Z80 externo, tal que así:


Desde luego estaría genial, pero no sé si es viable para McLeod.


¿En qué situación necesitas cambiar "on the fly" entre el T80 y el Z80 con tanta frecuencia? Cargar el .bit en la FPGA no supone practicamente tiempo (ojo: cargar el .bit, no regrabar la EEPROM completa)
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Quest
Atari 1040 STf
Atari 1040 STf
Mensajes: 900
Registrado: 18 Jul 2013, 22:20
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo NES/Clónica
Gracias dadas: 9 veces
Gracias recibidas: 16 veces

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor Quest » 05 Abr 2015, 16:05

mcleod_ideafix escribió:
antoniovillena escribió:
Quest escribió:
También se me ocurre otra sugerencia similar, a evaluar su dificultad: En BIOS, posibilidad de activar/desactivar add-ons, en el momento actual, podría haber una opción (para los tests actuales sería genial para no tener que estar grabando el .bit todo el rato) para conmutar entre Core T80 de la FPGA y el Z80 externo, tal que así:


Desde luego estaría genial, pero no sé si es viable para McLeod.


¿En qué situación necesitas cambiar "on the fly" entre el T80 y el Z80 con tanta frecuencia? Cargar el .bit en la FPGA no supone practicamente tiempo (ojo: cargar el .bit, no regrabar la EEPROM completa)


Entiendo por la pregunta, que no crees que merezca la pena hacerlo, o bien que es costoso, o que no lo consideras importante... ;)

No tengo problema con grabar el bit (son solo unos segundos, efectivamente), más bien es por si finalmente se considerara como un addon apto para todo el mundo (yo pensaba que no, pero parece que lo tenias presente como opcion en el ultimo programa de retro entre amigos), en tal caso la opcion de eleccion de core en bios es un imperativo.

Por lo demas, para la fase de testeo no es mucho problema, solo por comodidad, menos cables por enmedio (ya no se como hacer para que el cableado del zxuno no ocupe media mesa) :mrgreen: y que cuando te vas a poner a probar una tacada de, por ejemplo, 20 o 30 juegos o demos, para hacee una tabla de resultados, quieres que te resulte lo mas comodo y rapido posible.


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 12 invitados