Windows용으로 제작되고 Linux와 macOS에서도 빌드할 수 있는 Z80 및 R800 프로세서용 크로스 어셈블러입니다.
hra1129/msx_basic_compiler
BACON은 MSX-BASIC 프로그램을 MSX 컴퓨터용 기계어로 변환하는 컴파일러로, PLAY(PSG 음악)를 지원합니다.
- 스타
- 37
- 포크
- 5
- 열린 이슈
- 9
- 마지막 커밋
- 5일 전
어떤 프로젝트인가요?
msx_basic_compiler(BACON)는 MSX-BASIC 소스 파일을 어셈블리 코드로 컴파일하고, 이 코드를 어셈블해 MSX 컴퓨터에서 실행되는 바이너리를 만듭니다. 생성된 프로그램은 BACON 로더 바이너리와 함께 로드되어 MSX에서 실행되므로, 컴파일된 코드는 BASIC 인터프리터가 보통 하듯 줄 단위로 해석되지 않고 실행됩니다.
컴파일러는 소스 전체를 살펴 DEFINT, DEFSNG, DEFDBL, DEFSTR 문에 따라 변수의 기본 타입을 결정하며, LIST, RENUM, TRON, MERGE 같은 소스 수준 명령은 제외합니다. 속도를 높이기 위해 일부 런타임 오류 검사를 생략하며, 프로젝트 문서에서 MSX-BASIC과의 차이로 설명하듯 문자열 연산 후 배열에 대한 VARPTR 값이 바뀔 수 있습니다.
이 프로젝트는 표준 MSX-BASIC PLAY 문과 PLAY(n) 함수를 지원하며, MML 문자열을 BIOS 사운드 큐로 변환합니다. 출력 어셈블리 코드는 msx_bacon 도구로 생성한 뒤 ZMA 어셈블러로 어셈블합니다.
핵심 기능
- 01MSX-BASIC 소스 파일을 MSX용 어셈블리 코드로 컴파일합니다.
- 02PSG 음악을 위한 표준 MSX-BASIC PLAY 문과 PLAY(n) 함수를 지원합니다.
- 03소스 전체를 기준으로 DEFINT, DEFSNG, DEFDBL, DEFSTR에서 변수 기본 타입을 결정합니다.
- 04ZMA 어셈블러와 함께 사용해 실행 가능한 바이너리를 만듭니다.
- 05PLAY 동작을 확인할 수 있는 OpenMSX 테스트 디스크가 포함되어 있습니다.
활용 사례
- 기존 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 기능은 지원되지 않으며, 런타임 오류 검사도 최소한으로 제공됩니다.
포함된 컬렉션
토픽
자주 묻는 질문
- 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의 마지막 커밋은 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
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
프로세서가 코드를 실행하는 방식을 학습할 수 있는 시각적 RISC-V 컴퓨터 구조 시뮬레이터이자 어셈블리 편집기입니다.
15가지가 넘는 숫자 타입을 지원하는 SIMD 가속 거리·내적·행렬 연산 커널로, Python, Rust, C/C++, JS, Swift, Go 바인딩을 제공합니다.
512바이트 x86 부트 섹터에서 실행되며 가짜 Linux 부팅 로그를 만들어 내는 작은 문자 단위 언어 모델입니다.
실제 운영체제를 부팅할 수 있도록 런타임에 기계어를 WebAssembly로 변환해 브라우저에서 실행하는 x86 PC 에뮬레이터입니다.