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:
6 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
como consigo el open msx catapult?? enconté uno pero es diferente
La web de openMSX es esta https://openmsx.org/ , en su web podemos descargar la versión para instalar en Windows y la ejecutable en Windows, yo te recomiendo la versión ejecutable https://github.com/openMSX/openMSX/releases/download/RELEASE_19_1/openmsx-19.1-windows-vc-x64-bin.zip
Una vez descargada y descomprimida (por ejemplo) en el escritorio
Ahora toca actualizar las máquinas y extensiones de openMSX ya que por razones de los derechos de las Bios hay que ponerlas de forma pirata, para eso
descarga las máquinas y extensiones que puedes encontrar en https://download.file-hunter.com/System%20ROMs/
copia y pega el contenido del archivo descargado dentro la carpeta openmsx-19.1-windows-vc-x64-bin\share\systemroms
Ahora tienes que ir a la carpeta \openmsx-19.1-windows-vc-x64-bin\Catapult\bin y ejecutar catapult.exe y una vez abierto el programa catapult, selecciona Settings y Edit configuration:
En la ventana que sale pincha en los 3 puntos, selecciona el archivo \openmsx-19.1-windows-vc-x64-bin\openmsx.exe y pincha en OK
Comenzará la actualización de todas las máquinas con sus bios
Cuando haya terminado ya podrás seleccionar tu MSX favorito y jugar con el basic:
No consigo me atasco 1.4 no me sale los mismos mensajes
Lo siento, no había recibido el correo con tu pergunta, he creado un chat para hablar de cualquier cosa: https://msx.tipolisto.es/contacta/