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

Sinclair QL, ZX81, +2, +3, 128K ...
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 » 26 Jun 2015, 16:49

antoniovillena escribió:Sé que no es académicamente correcto hacerlo así, pero prefiero esperar a ver qué ocurre en casos reales.


Ok, me parece bien, pero... has pensado cómo vamos a saber lo que ocurre en casos reales? Has implementado algún mensaje o indicación de que se ha producido alguna repetición? Al menos para saber si está funcionando esto nuevo... si no, no lo sabremos nunca, haya funcionado o no. Yo mismo me ofrezco a hacer pruebas, teniendo ahora mismo la flash en zócalo, ya me da igual hacer lo que sea. Pero al menos tiene que haber algún indicador.

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 » 26 Jun 2015, 18:23

Ok, ya lo he puesto. Si se pone el borde rojo es que al menos un bloque se ha grabado mal y se ha reintentado.

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 » 26 Jun 2015, 18:30

Excelente, gracias. Cuando tenga un rato, posiblemente mañana haré un intensivo de "upgrades machine CL" a ver qué pasa.

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 » 26 Jun 2015, 18:55

McLeod, si no es muy complicado, ¿podrías implementar esa NMI especial que te comenté?. Te recuerdo. Es como una NMI normal. Tiene asociado un registro indicador de fuente de interrupción, que podría ser algo así:

-bit 0: el origen fue que el reproductor PZX vació su buffer
-bit 1: el origen fue pin 5 del joystick
-bit 2: el origen fue pin 9 del joystick
-bit 3: el origen fue F7
-bit 4: el origen fue F8
-bit 5: el origen fue F9
-bit 6: el origen fue F11
-bit 7: el origen fue F12

Si al saltar la NMI el valor de este registro es 0, se produce una NMI normal. Si por el contrario, algunos de estos bits (uno o más) vale 1, salta la NMI especial, que es como la normal pero con BOOTM a 1. La instrucción RETN siempre retornará con BOOTM a 0 (independientemente del tipo de NMI que se produzca). Es tarea de la RTI detectar el evento disparador y resetear el registro indicador.

Con esto puedo pedirle a César que implemente las NMI especiales y así poder escribir rutinas que permitan cambiar en vuelo el mapa de teclado, el joystick, el volumen (esto habría que soportarlo también en hardware) y muchas cosas más.

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 » 27 Jun 2015, 01:53

Bueno, ya he estado haciendo pruebas con la nueva BIOS que has subido, Antonio.

Lamentablemente, no funciona.

Todos los intentos de upgrade machine han acabado igual: Borde rojo desde el primer bloque, al final mensaje de upgrade OK y finalmente produce brick (teniendo que reflashear con programador después).

Los resultados no tienen sentido, puesto que:

1- Sale borde rojo siempre.
2- No hace bucle infinito de repeticiones, puesto que da OK al final (tras, creo recordar que 21 flasheos de led)
3- Hace brick. Si los reintentos fueron correctos (puesto que da OK sin bucle infinito) no debería haber brick

Con la BIOS anterior, todo OK al hacer el upgrade.

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 » 27 Jun 2015, 09:43

Vaya, tendré que revisar. De momento no actualicéis el firmware. Gracias Quest por las pruebas.

Avatar de Usuario
chernandezba
MSX Turbo R
MSX Turbo R
Mensajes: 264
Registrado: 11 Mar 2015, 10:42
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: ZX81
consola_favorita: NeoGeo
Primera consola: Atari 2600
Gracias dadas: 13 veces
Gracias recibidas: 167 veces

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

Mensajepor chernandezba » 27 Jun 2015, 10:03

antoniovillena escribió:Vaya, tendré que revisar. De momento no actualicéis el firmware. Gracias Quest por las pruebas.


Hola Antonio.

Este mismo fallo que comentan es reproducible en ZEsarUX? Porque si en el emulador no falla, hay algo que no tengo bien implementado...
Esa comprobación que haces al escribir, como la haces?

Por cierto hay lógicamente cosas de la spi que no implemento completamente real, por ejemplo, nunca retornará status Busy porque se supone que todas las operaciones las hace 'al momento' ;)

Ya me dirás
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

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 » 27 Jun 2015, 11:10

chernandezba escribió:Hola Antonio.

Este mismo fallo que comentan es reproducible en ZEsarUX? Porque si en el emulador no falla, hay algo que no tengo bien implementado...
Esa comprobación que haces al escribir, como la haces?

Por cierto hay lógicamente cosas de la spi que no implemento completamente real, por ejemplo, nunca retornará status Busy porque se supone que todas las operaciones las hace 'al momento' ;)

Ya me dirás


De momento creo que es un bug del firmware y no de tu emulador. El problema es las pruebas las he estado haciendo en upgrade firmware por comodidad y no en upgrade machine (la modificación que comprueba la escritura afecta a todas las rutinas que escriben en flash). Con tu emulador falla igualmente cuando hago upgrade machine, así que de momento tu emulador está bien y el fallo es mío.

-- Actualizado 27 Jun 2015, 11:23 --

Vale. Hay un bug en el emulador, aunque no sé dónde puede estar (estoy depurando). La revisión 381 de firmware.asm debería funcionar perfectamente con un update machine, y con el emulador se cuelga (McLeod lo comprobó con ZX-Uno real y funcionaba).

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: 54 veces
Contactar:

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

Mensajepor mcleod_ideafix » 27 Jun 2015, 14:12

antoniovillena escribió:McLeod, si no es muy complicado, ¿podrías implementar esa NMI especial que te comenté?. Te recuerdo. Es como una NMI normal. Tiene asociado un registro indicador de fuente de interrupción, que podría ser algo así:

Pelín complicado lo veo ahora. Recuerda que es tocar el core del T80, que es complicado, y encima escrito en VHDL, que no domino. Además de eso tendría que escribir código para gestionar el buffer del reproductor, y cambiar el mismo comportamiento del reproductor para que use ese buffer y no la memoria externa. Creo que lo que es ahora, no lo voy a hacer, y menos para algo que nunca he pretendido que esté en el core oficial, dado que el espacio que ocuparía el reproductor y la BRAM que necesite puede que me haga falta para cosas que sí queremos añadir al core oficial, como el scandoubler.

Sigo pensando que es mucho más sencillo que el que quiera esta característica (y no quiera/pueda usar un reproductor externo convencional), obtenga su plaquita de memoria extra, que va a permitir hacer muchas más cosas.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

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 » 27 Jun 2015, 14:41

mcleod_ideafix escribió:Pelín complicado lo veo ahora. Recuerda que es tocar el core del T80, que es complicado, y encima escrito en VHDL, que no domino. Además de eso tendría que escribir código para gestionar el buffer del reproductor, y cambiar el mismo comportamiento del reproductor para que use ese buffer y no la memoria externa. Creo que lo que es ahora, no lo voy a hacer, y menos para algo que nunca he pretendido que esté en el core oficial, dado que el espacio que ocuparía el reproductor y la BRAM que necesite puede que me haga falta para cosas que sí queremos añadir al core oficial, como el scandoubler.

Sigo pensando que es mucho más sencillo que el que quiera esta característica (y no quiera/pueda usar un reproductor externo convencional), obtenga su plaquita de memoria extra, que va a permitir hacer muchas más cosas.


Aunque no lo emplemos ahora en el reproductor PZX, lo del NMI especial lo veo muy útil. Es una forma muy sencilla de extender el hardware usando el Z80 (aunque no simultáneamente) de forma transparente. Por ponerte un ejemplo, una simple ayuda pulsando F1 (y pulsar Esc para volver). De todas formas puedo hablar con César para que implemente esto en su emulador ZEsarUX, y extender la ROM del bootloader para mostrar la ayuda o cambiar de layout en caliente.


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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