Nuevas características para un emulador

Software para o relacionado con el core ZX Spectrum / Software for or related to the ZX Spectrum core
Avatar de Usuario
Uto
Mensajes: 1389
Registrado: 17 Dic 2015, 16:39

Re: Nuevas características para un emulador

Mensaje por Uto » 17 Dic 2016, 11:02

Desde PASMO, SJASM y demás podría usarse fácilmente con un par de macros WRITECHAR y WRITENUM o algo así, de modo que no se hagan los OUT directamente. Cuando se va a generar la versión final se borra el contenido de la macro y así desaparecen todos los OUT del código final (o se pone un ifdef en la macro vamos)

Yo lo veo muy especialmente útil para hacer debug de cosas complicadas, como comandos dot de ESXDOS, que a veces es muy delicado y los temas de puntos de entrada bastante "tricky".

Obviamente es algo que se puede hacer también com métodos más tradicionales, como cambiar el color de borde, o escribir algo en pantalla, pero lo primero es muy limitado y lo segundo con según que cosa puede ser inconveniente porque metes texto en la propia pantalla del Spectrum, que pueden descolocar cosas.

Esto unido a la posibilidad de cambiar la velocidad de CPU podría ayudar bastante (por ejemplo cambiando la velocidad al 10% temporalmente para ir viendo el output en consola)

Avatar de Usuario
Haplo
Mensajes: 367
Registrado: 05 Oct 2015, 13:51
Ubicación: Ciudad Real

Re: Nuevas características para un emulador

Mensaje por Haplo » 17 Dic 2016, 11:23

Yo todo lo que ayude al debug siempre lo agradeceré :)

Avatar de Usuario
chernandezba
Mensajes: 832
Registrado: 02 Oct 2015, 23:35

Re: Nuevas características para un emulador

Mensaje por chernandezba » 23 Feb 2017, 20:20

Uto escribió:Refloto esto porque acaba de ocurrirseme algo, que no se si tiene ZEsarUX pero por los menús no lo veo: un hardware de debug.

¿Que quiere decir eso?

Bueno, pues ya nos hemos dado cuenta de que algunos juegos no iban bien en ZX-Uno porque algun sistema debug viejuno dejó instrucciones OUT que daba la casualidad de que activaban modos Timex. Pues mi propuesta es hacer algo como eso, que permita a los programadores hacer debug "clásico" sin afectar al Spectrum en sí.

¿Como? Pues creando un puerto de debug, que todo lo que se escriba vaya a parar a la consola, así de sencillo, haces OUT 55555, 65 y aparece una A en la consola que ha lanzado ZesarUX. Alternativamente se podría poner algun puerto más, que lo escrito se interprete como un número, por ejemplo que si haces OUT 55556,65 no escriba una A, sino 65.

Esto permitiría hacer debug "clásico"en plan "he llegado hasta aqui" o pintar el valor de un byte sin tener que andar ejecutando paso a paso, todo mientra el programa de Spectrum sigue ejecutándose.

Ale, implementado :)

Usando los puertos 12291 para escribir un caracter ASCII y el 12295 para mostrar un número, ambos acaban apareciendo en la consola del equipo.
Estos puertos son los primeros que me he inventado y que no entran en conflicto con ningún dispositivo de Spectrum (o eso creo :silbando: )
Por defecto están desactivados y hay que habilitarlos desde el menu settings->debug o por linea de comandos con --hardware-debug-ports

Gracias a Uto por la sugerencia.

:gracias!:

Quien quiera probarlo deberá compilar el último código fuente, pues esto no está en las betas que he subido hoy y ayer

Saludos
----

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

Avatar de Usuario
Hark0
Mensajes: 683
Registrado: 27 Sep 2015, 00:31
Ubicación: Cornellà de Llobregat - BCN
Contactar:

Re: Nuevas características para un emulador

Mensaje por Hark0 » 24 Feb 2017, 13:54

Yo voy a bajar la ultima beta... la que tiene este nombre tan chulo: ZEsarUX_win-pthreads-4.3-22022017-2.zip

8-) :gracias!:


Link: https://sourceforge.net/projects/zesaru ... _versions/
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

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

Re: Nuevas características para un emulador

Mensaje por Uto » 24 Feb 2017, 14:19

chernandezba escribió: Ale, implementado :)

Usando los puertos 12291 para escribir un caracter ASCII y el 12295 para mostrar un número, ambos acaban apareciendo en la consola del equipo.
Estos puertos son los primeros que me he inventado y que no entran en conflicto con ningún dispositivo de Spectrum (o eso creo :silbando: )
Por defecto están desactivados y hay que habilitarlos desde el menu settings->debug o por linea de comandos con --hardware-debug-ports

Gracias a Uto por la sugerencia.

:gracias!:

Quien quiera probarlo deberá compilar el último código fuente, pues esto no está en las betas que he subido hoy y ayer

Saludos
Genial, es una tonteria pero a veces el "cutredebug" de toda la vida (que en otros lenguajes sería con un print, write, echo) es lo más rápido :-D

Avatar de Usuario
Haplo
Mensajes: 367
Registrado: 05 Oct 2015, 13:51
Ubicación: Ciudad Real

Re: Nuevas características para un emulador

Mensaje por Haplo » 24 Feb 2017, 16:13

Pues me parece una idea estupenda!
Esto me recuerda una cosa que igual ya está implementada: imprimir el contenido de una o varias posiciones de memoria en la consola.

Avatar de Usuario
chernandezba
Mensajes: 832
Registrado: 02 Oct 2015, 23:35

Re: Nuevas características para un emulador

Mensaje por chernandezba » 24 Feb 2017, 17:22

Bueno lo mas seguro es que cambie los puertos y la manera de usarlos, porque estoy usando dos puertos aleatorios con eso, y otro puerto más inventado que ya usaba para un tema del Inves. Y he solicitado un par de puertos dentro del ZXI standard
http://faqwiki.zxnet.co.uk/wiki/ZXI_standard

Y la manera de acceder será al estilo del ZX-Uno: un puerto para seleccionar registro de control, y otro puerto para escribir el valor.
En cuanto me contesten con los puertos ya asignados lo modificaré.
De esta manera quedan los puertos registrados, para que no haya conflictos con nada ni nadie, pese a que sólo serán para el emulador y no para un dispositivo físico, es mejor así

Saludos
César
----

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

Avatar de Usuario
chernandezba
Mensajes: 832
Registrado: 02 Oct 2015, 23:35

Re: Nuevas características para un emulador

Mensaje por chernandezba » 24 Feb 2017, 17:23

Por cierto, alguien sabe cuanto tardan en contestar los del ZXI? Porque me he suscrito a la mailing list, enviado solicitud, y estoy esperando respuesta.
----

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

Avatar de Usuario
Hark0
Mensajes: 683
Registrado: 27 Sep 2015, 00:31
Ubicación: Cornellà de Llobregat - BCN
Contactar:

Re: Nuevas características para un emulador

Mensaje por Hark0 » 24 Feb 2017, 18:59

Haplo escribió:Pues me parece una idea estupenda!
Esto me recuerda una cosa que igual ya está implementada: imprimir el contenido de una o varias posiciones de memoria en la consola.
Eso si estaría de narices... poder "enviar a la consola" algún tipo de debug... como dice @Haplo igual está implementado y aún no me he percatado.

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

Avatar de Usuario
chernandezba
Mensajes: 832
Registrado: 02 Oct 2015, 23:35

Re: Nuevas características para un emulador

Mensaje por chernandezba » 25 Feb 2017, 13:20

Hark0 escribió:
Haplo escribió:Pues me parece una idea estupenda!
Esto me recuerda una cosa que igual ya está implementada: imprimir el contenido de una o varias posiciones de memoria en la consola.
Eso si estaría de narices... poder "enviar a la consola" algún tipo de debug... como dice @Haplo igual está implementado y aún no me he percatado.

;)
Eso ya se puede hacer mediante el protolo remoto, comando "read-mapped-memory"
----

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

Responder