面向 Z80 和 R800 处理器的命令行交叉汇编器,支持 Windows,也可在 Linux 和 macOS 上编译。
hra1129/msx_basic_compiler
BACON,将 MSX-BASIC 程序编译为 MSX 机器码的编译器,支持 PLAY 音乐指令。
- Star
- 37
- Fork
- 5
- 未关闭 Issue
- 9
- 最近提交
- 5天前
这是什么?
msx_basic_compiler(BACON)可将 MSX-BASIC 源程序编译为汇编代码,再由汇编器生成可在 MSX 电脑上运行的二进制文件。生成的程序与 BACON 加载器一起加载运行,无需逐行解释执行。
编译器在编译时扫描整个源码,根据 DEFINT、DEFSNG、DEFDBL、DEFSTR 确定变量类型默认值,并且不支持 LIST、RENUM、TRON、TROFF、MERGE 等源码相关命令。为提高速度,部分运行时错误检查被省略,数组的 VARPTR 在字符串操作后地址可能变化。
项目支持 MSX-BASIC 标准的 PLAY 语句和 PLAY(n) 函数,将 MML 字符串转换为 BIOS 音乐队列进行演奏。汇编代码由 msx_bacon 工具生成,并使用 ZMA 汇编器完成汇编。
核心功能
- 01将 MSX-BASIC 源程序编译为 MSX 可用的汇编代码。
- 02支持标准 PLAY 语句和 PLAY(n) 函数,用于 PSG 音乐演奏。
- 03根据全源码的 DEFINT、DEFSNG、DEFDBL、DEFSTR 确定变量默认类型。
- 04配合 ZMA 汇编器生成可运行的二进制文件。
- 05附带 OpenMSX 测试磁盘,用于验证 PLAY 功能。
适用场景
- 将已有 MSX-BASIC 程序编译为机器码以提升运行速度。
- 通过 BASIC 编写 PLAY 音乐,探索 MSX 的声音功能。
- 学习 MSX-BASIC 编译器如何处理变量和字符串。
快速上手
- 1
编写BASIC程序 hello.bas
- 2
使用 msx_bacon 将 hello.bas 编译为汇编文件
msx_bacon hello.bas hello.asm - 3
使用 ZMA(独立汇编器)将 hello.asm 汇编为 hello.bin
zma hello.asm hello.bin - 4
将 hello.bin 与 BACONLDR.BIN 复制到MSX,用BLOAD加载运行
使用前须知
- 生成最终二进制文件需要另外安装汇编器 ZMA。
- macOS 的安装路径写死为 /opt/homebrew/bin,其他环境需要修改 Makefile。
- 不支持 LIST、RENUM、TRON、TROFF、MERGE 等命令,运行时错误检查也很少。
收录于专题
标签
常见问题
- msx_basic_compiler 是什么?
- BACON,将 MSX-BASIC 程序编译为 MSX 机器码的编译器,支持 PLAY 音乐指令。 msx_basic_compiler(BACON)可将 MSX-BASIC 源程序编译为汇编代码,再由汇编器生成可在 MSX 电脑上运行的二进制文件。生成的程序与 BACON 加载器一起加载运行,无需逐行解释执行。
- msx_basic_compiler 可以免费使用吗?用的什么许可证?
- msx_basic_compiler 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- msx_basic_compiler 还在维护吗?
- 活跃维护中。msx_basic_compiler 最近一次提交是在 2026年11月2日。
- msx_basic_compiler 适合用来做什么?
- 将已有 MSX-BASIC 程序编译为机器码以提升运行速度。 通过 BASIC 编写 PLAY 音乐,探索 MSX 的声音功能。 学习 MSX-BASIC 编译器如何处理变量和字符串。
- msx_basic_compiler 怎么安装和运行?
- 编写BASIC程序 hello.bas 使用 msx_bacon 将 hello.bas 编译为汇编文件: msx_bacon hello.bas hello.asm 使用 ZMA(独立汇编器)将 hello.asm 汇编为 hello.bin: zma hello.asm hello.bin 将 hello.bin 与 BACONLDR.BIN 复制到MSX,用BLOAD加载运行
- 在哪里获取 msx_basic_compiler?
- 源代码和安装说明在 GitHub 上:https://github.com/hra1129/msx_basic_compiler
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
面向 RISC-V 的可视化计算机体系结构模拟器与汇编代码编辑器,用于学习处理器如何执行程序。
基于 SIMD 加速的数值计算库,提供距离、点积与矩阵运算,支持 15 种以上数值类型,并提供多语言绑定。
一个运行在 512 字节 x86 引导扇区中的微型字符级语言模型,在实模式下生成虚构的 Linux 启动日志。
一个在浏览器中运行的 x86 PC 模拟器,运行时将机器码转为 WebAssembly 以启动真实操作系统。