1.Configurando el entorno
1.1 Instalando sjasm
Pincha aquí para descargar sjasm, también puedes ir a su web, una vez descargado, como es un ejecutable lo colocamos en C:\Program Files (x86):

1.2 Configurando la variable de entorno
Ahora configuramos la variable de entorno de windows para que esté localizable cuando llamemos a “sjasm.exe” desde cualquier directorio, para eso pinchamos en el icono de “Este equipo” y dentro otra vez cobre “Este equipo” botón derecho y elegimos propiedades:

Ahora configuración avanzada del sistema:

Y en la ventana que sale en la pestaña de Opciones abalanzadas pinchamos en variables de entorno:

Ahora editamos la variable path:

Por último añadimos una nueva entrada:

Para probar que todo ha ido bien, abrimos un terminal y ponemos sjasm:

1.3 Instalando visual studio code
Nos descargamos Visual studio code, también podemos ir a su web https://code.visualstudio.com/download
Creamos un directorio para nuestros proyectos, yo lo he llamado «Proyectos asm» y lo he puesto en mi escritorio, dentro de esta carpeta pulsamos el botón derecho del ratón y pinchamos en “open with code”:

1.4 Instalando la extensión retro assembler de vs code
Una vez abierto pinchamos en extensiones e instalamos la extensión Retro assembler, esta extensión va a ser nuestra ayuda para que nos coloree las directivas e instrucciones del z80:

Creamos un nuevo archivo con extensión asm (de assambler), nos fijamos si en la parte inferior derecha pome z80, en este caso vemos que no y tenemos que cambiarlo pinchando donde pone Retro Assambler (6502):

Elegimos Retro assambler (z80)

2.Programando
Copiamos y pegamos el siguiente texto:
output "hola.bin" ; debemos de poner esta instrucción o nos generaría un archivo.out, ponle espacios al principio CHPUT: equ #00A2 ; CHPUT es solo una etiqueta que se pone para no estar llamado a la subrutina 0042h ; Muestra un carácter ; MSX-1 BIOS subrutines ; Definiciones de subrutinas creadas para la bios ; http://map.grauw.nl/resources/msxbios.php ;esto es oblgatorio para definir la cabecera de un archivo BIN ; https://www.faq.msxnet.org/suffix.html 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 MAIN ; dircción del programa de ejecución (para cuando pongas r en bload"nombre_programa", r) org 33280 ; 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 #8200 INICIO: MAIN: ld hl,mensaje ; Almacena en los registro hl del z80 la dirección donde está la variable con el texto. call Print ; llama a la rutina o método. ret ; devuelve el control a Basic. ;método print Print: ld a,(hl) ; Lee el 1 byte de la dirección de la memoria indicada y lo almacena en el registro a del z80. and a ; Actualiza la bandera z del registro F del z80 y la pone en 0 si no hay valor, and a también actualiza el flag c, p, v y s. ret z ; Devuelve el cotrol al Main si la bandera z del registro F del z80 es 0 call CHPUT ; Llama a la subrutina 0042h de la Bios la cual imprime el caracter almacenado en el registro a del z80 inc hl ; incrementa el puntero de los registros hl para que señale al siguiente byte jr Print ; Llama al métdo print para que lo vuelva a ejecutar mensaje: db "Hola soy MSX, claro, pijo!! ",0 ; Crea una dirección en la memoria con la etiqueta mensaje, el cero indica el fin del texto FINAL:
2.1 Configurando terminales en vs code
Ahora toca configurar la terminal, para eso pinchamos en Configuración:

En el campo que nos sale ponemos terminal.integrated, pinchamos en el que pone “Editar en settings.json” de Windows:

Debemos de poner la ruta donde está el cmd de Windows:
{ "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe", //Si queremos bash de linux //"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe", //Si queremos powershell de windws //"terminal.integrated.shell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", "window.zoomLevel": 0, "breadcrumbs.enabled": true }

Ahora pinchamos en Ver y en terminal del menú superior:

Si no vemos nuestro terminal pinchamos en “Seleccionar el Shell predeterminado”:

2.2 Compilando con sjasm
Ahora toca compilar el archivo hola.asm, ponemos en el terminal “sjasm hola.asm”

Si todo ha ido bien no dará ningún error de compilación:

Esto generará 2 archivos el hola.bin con el código máquina y hola.lst que es un listado donde se detalla las instrucciones en código máquina y ensamblador.

3.Probando nuestro programa con openMSX
Ahora toca probar nuestro hola mundo, vamos al catapult y pinchamos en el botón Disk A y elegimos “Browse for this folder”, elegimos nuestra carpeta:

Pinchamos en Start

Ponemos en nuestro emulador files para ver los archivos dentro del emulador:

Ejecutamos nuestro programa con bload”hola.bin”,r

Lo último que debes de recordar es que cada vez que vuelvas a compilar tendrás que resetear el emulador para que vea los cambios para eso, presiona F10 dentro del emulador para que salda la consola de comandos:

Ahora escribe reset, presiona F10 de nuevo para que desaparezca la consola de comandos y podrás ver el resultado:

2 respuestas a «Hola mundo en ensamblador para MSX con visual studio code y sjasm»
quiero poner el caracter # en openmsx …como lo hago?
La letra ñ o Ñ son los caracteres 164 y 165, prueba a escribir en basic
print chr$(165)
En este código tendrías que modificar mensaje db y escribir:
mensaje: db «la letra : «,164,» – «,165,0