Repolode
hra1129

hra1129/msx_basic_compiler

BACON, um compilador que traduz programas em MSX-BASIC para código de máquina em computadores MSX, com suporte a PLAY (música via PSG).

Estrelas
37
Forks
5
Issues abertas
9
Último commit
há 5 dias

O que é?

msx_basic_compiler (BACON) compila arquivos-fonte em MSX-BASIC para código assembly, que depois é montado em um binário executável em computadores MSX. O programa gerado é carregado junto com um binário carregador do BACON e executado no MSX; assim, o código compilado roda sem a interpretação linha a linha usual do interpretador BASIC.

O compilador analisa todo o código-fonte para determinar os tipos padrão das variáveis com base nas instruções DEFINT, DEFSNG, DEFDBL e DEFSTR. Ele também omite comandos do código-fonte, como LIST, RENUM, TRON e MERGE. Algumas verificações de erros em tempo de execução são omitidas para melhorar o desempenho, e VARPTR em arrays pode mudar após operações com strings, conforme descrito nas notas do projeto sobre as diferenças em relação ao MSX-BASIC.

O projeto inclui suporte à instrução padrão PLAY do MSX-BASIC e à função PLAY(n), convertendo strings MML em filas de som da BIOS. O código assembly de saída é gerado pela ferramenta msx_bacon e montado com o assembler ZMA.

Recursos principais

  • 01Compila arquivos-fonte em MSX-BASIC para código assembly destinado ao MSX.
  • 02Oferece suporte à instrução padrão PLAY do MSX-BASIC e à função PLAY(n) para música via PSG.
  • 03Determina os tipos padrão das variáveis com base em DEFINT, DEFSNG, DEFDBL e DEFSTR, considerando todo o código-fonte.
  • 04Funciona com o assembler ZMA para gerar um binário executável.
  • 05Inclui um disco de teste do OpenMSX para verificar o comportamento de PLAY.

Casos de uso

  • Acelerar um programa existente em MSX-BASIC compilando-o para código de máquina.
  • Experimentar com o som do MSX criando músicas com PLAY em BASIC.
  • Estudar como um compilador de MSX-BASIC lida com variáveis e strings.

Início rápido

  1. 1

    Escreva o programa BASIC hello.bas

  2. 2

    Compile hello.bas para assembly com msx_bacon

    msx_bacon hello.bas hello.asm
  3. 3

    Monte hello.asm como hello.bin com o ZMA (assembler separado)

    zma hello.asm hello.bin
  4. 4

    Copie hello.bin e BACONLDR.BIN para o MSX e carregue-os com BLOAD

Antes de usar

  • É necessário ter o assembler separado ZMA para gerar o binário final.
  • O caminho de instalação no macOS está fixado em /opt/homebrew/bin; para outras configurações, é preciso editar o Makefile.
  • Alguns recursos do MSX-BASIC não são compatíveis, como LIST, RENUM, TRON, TROFF e MERGE, e a verificação de erros em tempo de execução é mínima.

Em coleções

Tópicos

Perguntas frequentes

O que é msx_basic_compiler?
BACON, um compilador que traduz programas em MSX-BASIC para código de máquina em computadores MSX, com suporte a PLAY (música via PSG). msx_basic_compiler (BACON) compila arquivos-fonte em MSX-BASIC para código assembly, que depois é montado em um binário executável em computadores MSX. O programa gerado é carregado junto com um binário carregador do BACON e executado no MSX; assim, o código compilado roda sem a interpretação linha a linha usual do interpretador BASIC.
msx_basic_compiler é gratuito? Qual é a licença?
msx_basic_compiler é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
msx_basic_compiler ainda é mantido?
Manutenção ativa. O último commit de msx_basic_compiler foi em 2 de nov. de 2026.
Para que posso usar msx_basic_compiler?
Acelerar um programa existente em MSX-BASIC compilando-o para código de máquina. Experimentar com o som do MSX criando músicas com PLAY em BASIC. Estudar como um compilador de MSX-BASIC lida com variáveis e strings.
Como instalar msx_basic_compiler?
Escreva o programa BASIC hello.bas Compile hello.bas para assembly com msx_bacon: msx_bacon hello.bas hello.asm Monte hello.asm como hello.bin com o ZMA (assembler separado): zma hello.asm hello.bin Copie hello.bin e BACONLDR.BIN para o MSX e carregue-os com BLOAD
Onde consigo msx_basic_compiler?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/hra1129/msx_basic_compiler

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados