원문 캡처 · github.com
원문 캡처 · github.com

ZXCode는 VS Code에서 Sinclair ZX Spectrum 48K BASIC 프로그램을 작성하고, 입력 중 검사한 뒤 Spectrum이나 에뮬레이터에서 사용할 .tap 파일로 빌드하는 확장이다. 확장 설치에는 VS Code 1.140.0 이상이 필요하며, 배포판을 사용할 때 Node.js와 npm은 필요하지 않다.

최신 버전은 GitHub Releases에서 .vsix 파일로 내려받아 설치한다. VS Code의 명령 팔레트에서 Extensions: Install from VSIX...를 선택하고 파일을 지정하면 된다. 터미널에서 설치하려면 내려받은 파일명에 맞춰 다음 명령을 실행한다.

bash
code --install-extension zxcode-vscode-0.1.0.vsix

각 릴리스에는 SHA-256 체크섬이 담긴 .vsix.json 보고서가 포함된다. ZXCode는 GitHub Releases를 통해 배포되며, 현재 VS Code Marketplace에는 등록되지 않았다.

.zxbas 파일을 만들면 ZX Spectrum BASIC 언어 모드가 자동으로 선택된다. 일반 .bas 파일은 언어 모드를 직접 지정해야 한다. 편집기에서 ZXCode: Check BASIC을 실행하면 문제를 확인할 수 있고, ZXCode: Build TAP을 실행하면 저장된 소스 파일 옆에 TAP 파일이 생성된다. 두 명령은 저장하지 않은 편집 내용도 반영한다.

확장은 구문 강조, 실시간 진단, 자동 완성, Sinclair 도움말과 BASIC 줄·변수·함수 탐색 기능을 제공한다. TAP 빌드, 소스 포맷, 줄 번호 재지정 미리보기와 지원되는 BASIC TAP 가져오기 기능도 포함한다. 별도로 설치한 Fuse 1.8 이상 에뮬레이터로 프로그램을 실행할 수 있으며, 선택 사항인 ZEsarUX 설정을 이용하면 중단점, 단계별 실행, 변수·감시 항목, 화면·메모리 검사를 포함한 디버깅이 가능하다.

프로그램은 실제 BASIC 줄 번호와 원래의 48K ROM BASIC을 사용한다. GOTO와 GOSUB는 각각 표준 표기인 GO TO, GO SUB의 소스 별칭으로 허용된다. ZXCode는 레이블이나 자동 줄 번호를 추가하지 않으며 새로운 BASIC 방언을 만들지 않는다. 에뮬레이터와 ROM은 함께 제공되지 않지만, 편집·검사·TAP 빌드에는 필요하지 않다.

자세한 사용 방법은 사용자 안내서와 첫 Spectrum BASIC 프로그램 가이드에서 확인할 수 있다. Fuse로 실행하기, TAP 가져오기, 디버거 설정 안내와 예제 프로그램도 제공된다.

저장소에서 CLI를 사용하려면 Node.js 24.x, npm, Git이 필요하다. 공개 저장소는 GitHub 인증 없이 복제할 수 있다.

bash
git clone https://github.com/banyek/ZXCode.git
cd ZXCode
npm ci
npm run build
npm run zxcode -- check examples/hello.bas
npm run zxcode -- build examples/hello.bas --autostart 10

빌드 결과는 examples/hello.tap에 저장된다. 버그 제보와 기여는 GitHub Issues와 풀 리퀘스트로 할 수 있다.