Cross-assembler de linha de comando para processadores Z80 e R800, feito para Windows e também compilável no Linux e macOS.
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
Escreva o programa BASIC hello.bas
- 2
Compile hello.bas para assembly com msx_bacon
msx_bacon hello.bas hello.asm - 3
Monte hello.asm como hello.bin com o ZMA (assembler separado)
zma hello.asm hello.bin - 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
IDE leve e multiplataforma para C/C++ e GNU Assembly, baseada em Qt e sucessora do Dev-C++ 7.
Simulador visual de arquitetura de computadores RISC-V e editor de assembly para estudar como os processadores executam código.
Kernels matemáticos acelerados por SIMD para distâncias, produtos escalares e operações com matrizes em mais de 15 tipos numéricos, com bindings para Python, Rust, C/C++, JS, Swift e Go.
Um minúsculo modelo de linguagem em nível de caractere que roda em um setor de boot x86 de 512 bytes e inventa logs falsos de inicialização do Linux em modo real.
Um emulador de PC x86 que roda no navegador e traduz código de máquina para WebAssembly em tempo de execução para iniciar sistemas operacionais reais.