Repolode
hra1129

hra1129/msx_basic_compiler

BACON, un compilador que traduce programas de MSX-BASIC a código máquina para computadoras MSX y admite PLAY (música PSG).

Estrellas
37
Forks
5
Issues abiertos
9
Último commit
hace 5 días

¿Qué es?

msx_basic_compiler (BACON) compila archivos de código fuente MSX-BASIC a código ensamblador, que luego se ensambla en un binario ejecutable en computadoras MSX. El programa generado se carga junto con un binario cargador de BACON y se ejecuta en el MSX, por lo que el código compilado no requiere la interpretación habitual línea por línea del intérprete de BASIC.

El compilador analiza todo el código fuente para determinar los tipos de variable predeterminados a partir de las instrucciones DEFINT, DEFSNG, DEFDBL y DEFSTR, y omite comandos del código fuente como LIST, RENUM, TRON y MERGE. Para mejorar la velocidad, se omiten algunas comprobaciones de errores en tiempo de ejecución. Además, VARPTR en arreglos puede cambiar después de operaciones con cadenas, tal como se explica en las notas del proyecto sobre las diferencias con MSX-BASIC.

El proyecto admite las instrucciones estándar de MSX-BASIC PLAY y la función PLAY(n), y convierte cadenas MML en colas de sonido de la BIOS. La herramienta msx_bacon genera el código ensamblador de salida, que se ensambla con el ensamblador ZMA.

Funciones clave

  • 01Compila archivos de código fuente MSX-BASIC a código ensamblador para MSX.
  • 02Admite la instrucción estándar de MSX-BASIC PLAY y la función PLAY(n) para música PSG.
  • 03Determina los tipos de variable predeterminados a partir de DEFINT, DEFSNG, DEFDBL y DEFSTR en todo el código fuente.
  • 04Funciona con el ensamblador ZMA para producir un binario ejecutable.
  • 05Incluye un disco de prueba de OpenMSX para comprobar el comportamiento de PLAY.

Casos de uso

  • Acelerar un programa MSX-BASIC existente al compilarlo a código máquina.
  • Experimentar con el sonido de MSX escribiendo música con PLAY en BASIC.
  • Estudiar cómo gestiona un compilador de MSX-BASIC las variables y las cadenas.

Inicio rápido

  1. 1

    Escribe el programa BASIC hello.bas

  2. 2

    Compila hello.bas a ensamblador con msx_bacon

    msx_bacon hello.bas hello.asm
  3. 3

    Ensambla hello.asm como hello.bin con ZMA (un ensamblador independiente)

    zma hello.asm hello.bin
  4. 4

    Copia hello.bin y BACONLDR.BIN a MSX y cárgalos con BLOAD

Antes de usarlo

  • Se necesita el ensamblador independiente ZMA para generar el binario final.
  • La ruta de instalación en macOS está fijada en /opt/homebrew/bin; para otras configuraciones hay que editar el Makefile.
  • Algunas funciones de MSX-BASIC no están disponibles, como LIST, RENUM, TRON, TROFF y MERGE, y la comprobación de errores en tiempo de ejecución es mínima.

En colecciones

Temas

Preguntas frecuentes

¿Qué es msx_basic_compiler?
BACON, un compilador que traduce programas de MSX-BASIC a código máquina para computadoras MSX y admite PLAY (música PSG). msx_basic_compiler (BACON) compila archivos de código fuente MSX-BASIC a código ensamblador, que luego se ensambla en un binario ejecutable en computadoras MSX. El programa generado se carga junto con un binario cargador de BACON y se ejecuta en el MSX, por lo que el código compilado no requiere la interpretación habitual línea por línea del intérprete de BASIC.
¿msx_basic_compiler es gratuito? ¿Qué licencia tiene?
msx_basic_compiler es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿msx_basic_compiler sigue mantenido?
Mantenimiento activo. El último commit de msx_basic_compiler fue el 2 nov 2026.
¿Para qué puedo usar msx_basic_compiler?
Acelerar un programa MSX-BASIC existente al compilarlo a código máquina. Experimentar con el sonido de MSX escribiendo música con PLAY en BASIC. Estudiar cómo gestiona un compilador de MSX-BASIC las variables y las cadenas.
¿Cómo se instala msx_basic_compiler?
Escribe el programa BASIC hello.bas Compila hello.bas a ensamblador con msx_bacon: msx_bacon hello.bas hello.asm Ensambla hello.asm como hello.bin con ZMA (un ensamblador independiente): zma hello.asm hello.bin Copia hello.bin y BACONLDR.BIN a MSX y cárgalos con BLOAD
¿Dónde consigo msx_basic_compiler?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/hra1129/msx_basic_compiler

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados