Repolode
hra1129

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. 1

    Напишите программу на BASIC в файле hello.bas

  2. 2

    Скомпилируйте hello.bas в ассемблерный код с помощью msx_bacon

    msx_bacon hello.bas hello.asm
  3. 3

    Соберите hello.asm в hello.bin с помощью ZMA (отдельного ассемблера)

    zma hello.asm hello.bin
  4. 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 обновляется ежедневно.

Похожие проекты

Визуальный симулятор архитектуры компьютера RISC-V и редактор ассемблерного кода для изучения выполнения инструкций процессором.

3,5 тыс.+8 за неделю388C++MITАктивно поддерживаетсяОбновлён 4 дня назад

SIMD-ускоренные математические ядра для вычисления расстояний, скалярных произведений и матричных операций с 15+ числовыми типами и привязками для Python, Rust, C/C++, JS, Swift и Go.

1,9 тыс.+6 за неделю142CApache-2.0Обновлён 6 дней назад

Эмулятор x86-ПК, работающий в браузере: он преобразует машинный код в WebAssembly на лету и загружает настоящие операционные системы.

23,7 тыс.+19 за неделю1,9 тыс.JavaScriptBSD-2-ClauseАктивно поддерживаетсяОбновлён 8 дней назад