Ensamblador Z80, entorno de desarrollo
Una de las primeras dudas a la hora de afrontar el reto de programar, en cualquier lenguaje, es que entorno de desarrollo tengo que preparar.
Tabla de contenidos
- Entorno de desarrollo para ensamblador Z80
- Editores de Texto
- Ensamblador
- Emulador
- Otros entornos
- Conclusión
Entorno de desarrollo para ensamblador Z80
A continuación voy detallar el entorno que uso para programar en ensamblador para Z80. Puede no ser el mejor, pero es con el que me siento más cómodo. Ya se sabe que para gustos, colores.
A la hora de configurar un entorno de desarrollo, debemos contar con al menos tres herramientas:
- Editor de texto.
- Ensamblador.
- Emulador para probar y depurar nuestros programas.
Editores de Texto
Editores de texto hay muchos y variados, también gratuitos, y muy potentes. Yo me inclino por los gratuitos, y tras haber trabajado con varios, últimamente trabajo con Visual Studio Code. Es gratuito y tiene extensiones para reconocer la sintaxis del ensamblador del Z80. Yo uso la extesión Z80 Assembly. También tiene una consola integrada que a mí me resulta muy útil.
Ensamblador
Para ensamblar lo programas uso Pasmo, que está disponible para Windows, Linux y Mac OS/X. Pasmo es un ensamblador cruzado para Z80, que compila para varias plataformas, entre ellas para ZX Spectrum. La compilación en Pasmo se hace por línea de comandos. Yo siempre ejecuto Pasmo con los mismos parámetros, cuando compilo para ZX Spectrum.
pasmo --name NombrePrograma --tapbas Archivo.asm Archivo.tap --public
El parámetro public es muy importante. Genera un fichero llamado con el mismo nombre que se ponga (en este caso public), que contiene las direcciones de memoria de todas las etiquetas del programa.
En Windows es importante incluir la ruta de Pasmo en la variable de sistema Path, para poder invocarlo desde cualquier sitio. En Linux esto no es necesario y en Mac OS/X no lo he probado nunca.
Yo en concreto, que uso Windows, creo un archivo .bat con la llamada a Pasmo y lo invoco desde la ventana de comandos integrada en Visual Studio Code. Copio este archivo en cada proyecto, cambiando solo el nombre del programa y los nombres de los archivos.
Emulador
Por último queda el emulador. Yo usaba ZX Spin 0.7. Me resultaba cómodo porque en una sola ventana puedo depurar, ver el estado de los registros, acceder a ver el valor de todas las posiciones de memoria, etc. Solo está disponible para Windows, pero en Linux funciona ejecutándolo con Wine. Además tiene un editor, que aunque no es muy estable, permite compilar y ejecutar programas, conservando el nombre de las etiquetas en el depurador. Suelo abrir ZX Spin 0.7 y luego únicamente vuelvo a cargar el fichero .tap cada vez que compilo y quiero ver los resultados.
Actualmente uso ZEsarUX, pues es estable y también me resulta muy cómodo. Está desarrollado por César Hernández, y funciona en Windows, Linux y Mac OS/X.
Otros entornos
Por otro lado, también podéis echar un vistazo a los entornos de desarrollo que usan otros compañeros del grupo Ensamblador ZX Spectrum de Telegram:
- Ángel nos recomienda Zeus, que a su vez le recomendó un programador de videojuegos para máquinas con Z80.
- César Wagener ha redactado un tutorial donde integra ZEsarUX y Visual Studio Code.
- Duefectu nos deja un link a su blog, donde nos recomienda TommyGun.
Conclusión
También puedes visitar el resto de tutoriales:
Y recuerda, si lo usas no te limites a copiarlo, intenta entenderlo y adaptarlo a tus necesidades.
Hay una extensión de vscode que tiene debugger,ide,emulador integrado,resaltado etc.
https://marketplace.visualstudio.com/items?itemName=dotneteer-vsc.spectnetvsc
Lo tengo añadido pero hasta ahora no he sido capaz de hacerlo funcionar.
Voy a volver a probar a ver que tal.
Está basado en este
https://github.com/Dotneteer/spectnetide
Ya lo he conseguido arrancar. Ahora solo me queda averiguar como depurar, jejejejeje.
Muchas gracias por todo.
Muchas gracias por estos tutoriales. Hace poco vi tu entrevista en el canal de Juanje y me entusiasmó que estés enseñando a programar en ASM-Z80-Spectrum con tutoriales prácticos enfocados a hacer juegos. ¡Me parece una idea sublime! Yo aprendí a finales de los 80 con la Microhobby, el libro de JA Rodríguez y las microfichas que lo acompañaban, con la intención de hacer un juego. Ahora gracias a ti he vuelto a programar en este lenguaje y he empezado a sentir la pasión de entonces.
Muchas gracias a tí por el comentario
Pingback: Programar un juego para Spectrum (10): eje9 Intro – El blog de Conrado Badenas