Кросс-ассемблер командной строки для процессоров Z80 и R800, предназначенный для Windows и собираемый также на Linux и macOS.
hra1129/msx_basic_compiler
BACON — компилятор, переводящий программы MSX-BASIC в машинный код для компьютеров MSX, с поддержкой PLAY (музыка через PSG).
- Звёзды
- 37
- Форки
- 5
- Открытые issues
- 9
- Последний коммит
- 5 дней назад
Что это?
msx_basic_compiler (BACON) компилирует исходные файлы MSX-BASIC в ассемблерный код, который затем собирается в бинарный файл для запуска на компьютерах MSX. Скомпилированную программу загружают вместе с бинарным файлом загрузчика BACON и запускают на MSX — поэтому код выполняется без обычной построчной интерпретации BASIC.
Компилятор сканирует весь исходный код, чтобы определить типы переменных по умолчанию на основе операторов DEFINT, DEFSNG, DEFDBL и DEFSTR, а команды, предназначенные для работы с исходным кодом, — например LIST, RENUM, TRON и MERGE — не включаются. Для повышения скорости опущены некоторые проверки ошибок во время выполнения; кроме того, VARPTR для массивов может измениться после операций со строками. Эти особенности описаны в заметках проекта о различиях с MSX-BASIC.
Проект поддерживает стандартный оператор MSX-BASIC PLAY и функцию PLAY(n), преобразуя строки MML в очереди звуковых команд BIOS. Выходной ассемблерный код создаёт инструмент msx_bacon, а собирается он ассемблером ZMA.
Ключевые возможности
- 01Компилирует исходные файлы MSX-BASIC в ассемблерный код для MSX.
- 02Поддерживает стандартный оператор MSX-BASIC PLAY и функцию PLAY(n) для воспроизведения музыки через PSG.
- 03Определяет типы переменных по умолчанию на основе DEFINT, DEFSNG, DEFDBL и DEFSTR, анализируя весь исходный код.
- 04Работает с ассемблером ZMA для создания исполняемого бинарного файла.
- 05В комплект входит тестовый диск OpenMSX для проверки работы PLAY.
Сценарии использования
- Ускорение существующей программы MSX-BASIC путём компиляции в машинный код.
- Эксперименты со звуком MSX: написание музыки с помощью PLAY в BASIC.
- Изучение того, как компилятор MSX-BASIC обрабатывает переменные и строки.
Быстрый старт
- 1
Напишите программу на BASIC в файле hello.bas
- 2
Скомпилируйте hello.bas в ассемблерный код с помощью msx_bacon
msx_bacon hello.bas hello.asm - 3
Соберите hello.asm в hello.bin с помощью ZMA (отдельного ассемблера)
zma hello.asm hello.bin - 4
Скопируйте hello.bin и BACONLDR.BIN на MSX и загрузите их командой BLOAD
Что важно знать
- Для создания итогового бинарного файла требуется отдельный ассемблер ZMA.
- Путь установки в macOS задан жестко как /opt/homebrew/bin; для других конфигураций необходимо отредактировать Makefile.
- Некоторые возможности MSX-BASIC, например LIST, RENUM, TRON, TROFF и MERGE, не поддерживаются, а проверка ошибок во время выполнения минимальна.
В подборках
Темы
Частые вопросы
- Что такое msx_basic_compiler?
- BACON — компилятор, переводящий программы MSX-BASIC в машинный код для компьютеров MSX, с поддержкой PLAY (музыка через PSG). msx_basic_compiler (BACON) компилирует исходные файлы MSX-BASIC в ассемблерный код, который затем собирается в бинарный файл для запуска на компьютерах MSX. Скомпилированную программу загружают вместе с бинарным файлом загрузчика BACON и запускают на MSX — поэтому код выполняется без обычной построчной интерпретации BASIC.
- msx_basic_compiler можно использовать бесплатно? Какая у него лицензия?
- msx_basic_compiler распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- msx_basic_compiler всё ещё поддерживается?
- Активно поддерживается. Последний коммит в msx_basic_compiler — 2 нояб. 2026 г..
- Для чего можно использовать msx_basic_compiler?
- Ускорение существующей программы MSX-BASIC путём компиляции в машинный код. Эксперименты со звуком MSX: написание музыки с помощью PLAY в BASIC. Изучение того, как компилятор MSX-BASIC обрабатывает переменные и строки.
- Как установить msx_basic_compiler?
- Напишите программу на BASIC в файле hello.bas Скомпилируйте hello.bas в ассемблерный код с помощью msx_bacon: msx_bacon hello.bas hello.asm Соберите hello.asm в hello.bin с помощью ZMA (отдельного ассемблера): zma hello.asm hello.bin Скопируйте hello.bin и BACONLDR.BIN на MSX и загрузите их командой BLOAD
- Где скачать msx_basic_compiler?
- Исходный код и инструкции по установке — на GitHub: https://github.com/hra1129/msx_basic_compiler
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Лёгкая кроссплатформенная IDE для C/C++ и GNU Assembly на Qt, преемница Dev-C++ 7.
Визуальный симулятор архитектуры компьютера RISC-V и редактор ассемблерного кода для изучения выполнения инструкций процессором.
SIMD-ускоренные математические ядра для вычисления расстояний, скалярных произведений и матричных операций с 15+ числовыми типами и привязками для Python, Rust, C/C++, JS, Swift и Go.
Компактная символьная языковая модель, которая работает в 512-байтном загрузочном секторе x86 и генерирует фальшивые журналы загрузки Linux в реальном режиме.
Эмулятор x86-ПК, работающий в браузере: он преобразует машинный код в WebAssembly на лету и загружает настоящие операционные системы.