Para depurar el código necesitamos bajarnos la aplicación openMSX debugger, pincha aquí, también puedes bajártela de su página web una vez:
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/1-9.jpg)
Una vez descomprimida como es un ejecutable, hacemos doble click openmsx-debugger.exe:
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/2-6-1024x389.jpg)
Una vez abierta, demos de tener el openMSX abierto, pero antes copia y pega este código en visual studio code en en archivo por ejemplo “b.asm” y este archivo mételo dentro de una carpeta por ejemplo asm, leyéndolo sabrás que es lo que hace:
output "b.bin" ; debemos de poner esta instrucción o nos generaría un archivo.out, ponle espacios al principio db 0FEh ; ID archivo binario, siempre hay que poner el mismo 0FEh dw INICIO ; dirección de inicio dw FINAL - 1 ; dirección final dw INICIO ; dircción del programa de ejecución (para cuando pongas r en bload"nombre_programa", r) org #8200 ; org se utiliza para decirle al z80 en que posición de memoria empieza nuestro programa (es la 33280 en decimal), en hezadecimal sería 08200h INICIO: ld hl,variable ;leemos en hl el comienxo de la dirección de memoria que almacna nuestra variable call leer_string ;llamamos a la rutina leer_string ret ;devolvemos el control al basic leer_string: ld a,(hl) ;alamcenamos en a el 1 byte que será "E" cp 0; si el caracter es 0 pondrá la la bandera z a 1 del registro z del z80 y saldrá con ret z ret z call #00A2 ;rutina bios que muestra en pantalla el caracter ascii almacenado en el registro a inc hl ;si no es cero llamaremos de nuevo a leer_string con jp jr leer_string ;volverá a llamar a la rutina ;cONSTANTES ;texto_el_valor_es: db "El valor de mi variable es: ",0 variable: db "Esto es una prueba",0 ; Crea una dirección en la memoria con la etiqueta mensaje, el cero indica el fin del texto FINAL:
Compílalo para generar el punto .bin:
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/3-7.jpg)
Abre el catapult y pincha en el botón Dis A y elige Browse for disk folder y presiona Start, una vez abierto el openMSX pincha en el botón connect del debugger:
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/4-7-1024x290.jpg)
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/5-5-1024x330.jpg)
Como sabemos que nuestro código empieza en el registro #8200 (hexadecimal) de la RAM hacemos hacemos click en ese punto para crear un breakpoint (punto de ruptura), para eso tendremos que bajar por lo registros hasta encontrar el 8200
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/7-5-1024x566.jpg)
Ahora ejecutamos el programa y veremos que la memoria RAM se llena de nuestras instrucciones, si no te deja hacer nada presiona el botón Run para que te devuelva el control :
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/8-8-1024x448.jpg)
Si está el botón break en rojo puedes ir instrucción por instrucción viendo si corresponde con tu código, para eso tendrás que presionar Step into, step back para volver:
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/9-8.jpg)
Fijate que las rutinas de la bios llegan hasta el registro 8000, fijate también en la zona donde aparecen los registros del z80 y donde aparecen los flags o banderas del registro f del z80:
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/10-6.jpg)
En la 1 intrucción o paso llegamos a la variable que tiene la referencia de nuestro mensaje y lo almacena en hl que es #8211, es decir nuestro texto estará escrito en los registros 8211 en adelante, 8211 tiene 45 que en decimal es 69 que en la tabla ASCII es la E mayúscula, 8212 tiene 73 que en decimal es 115 que en la tabla ASCII es la s minúscula y así:
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/12-7.jpg)
En la siguiente instrucción llamamos al método leer_string que está en el registro #8207 y salatá a el:
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/13-7.jpg)
3 clicks en step into llegarás a la instrucción call que es la llamada a una rutina de la bios , otro click en step to into y te meterás en la ruina de la bios, para salir de ella pincha en el botón step out:
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/14-5.jpg)
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/15-4.jpg)
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/16-4.jpg)
Si te lias mucho siempre puedes pinchar en Run volver a openMSX y subir con los cursores del teclado hasta que se situe el cursor en bload y volver a pulsar intro, el debugger volverá al principio:
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/17-4-1024x390.jpg)
Como nota diré que la información que el compilador sjasm en su fichero .lst es muy interesante, en esta se detallan las posiciones o registros de memoria, fijate como nuestra variable mensaje va de los registros #8211 a la #8221:
![](http://msx.tipolisto.es/wp-content/uploads/2019/12/19-3-1024x419.jpg)