
cpm-test는 CP/M 2.x 에뮬레이터를 시험하는 간단한 프로그램 모음이다. Z80 어셈블리 소스와 컴파일된 바이너리를 함께 제공하며, Makefile과 pasmo 컴파일러로 테스트를 다시 빌드하거나 확장할 수 있다.
테스트는 콘솔·보조 입력과 트랙·섹터·실린더 관련 시스템 호출을 제외한 여러 BDOS 기능을 다룬다. 콘솔 출력 호출을 시험하는 CONOUT.Z80을 빼면 모든 프로그램은 CP/M BDOS 인터페이스를 대상으로 한다. 별도로 제공하는 TICKER.Z80은 클록 인터럽트가 발생해야 메시지를 출력하며, 점수표에는 포함되지 않는다. 대체 CP/M 구현에서도 사용할 수 있도록 Aztec C 컴파일러로 빌드하는 단일 테스트 프로그램 COMPLETE.C도 포함한다.
기본 실행 명령은 make test다. 기본값은 제작자의 에뮬레이터인 cpmulator를 사용한다. 다른 에뮬레이터를 지정하려면 DRIVER에 실행 명령을 전달한다. 예를 들어 ntvcm은 make test DRIVER=ntvcm, iz-cpm은 make test DRIVER=iz-cpm으로 실행한다. 일부 에뮬레이터는 실행 파일 이름에서 .COM을 빼야 하므로 별도 조정이 필요할 수 있다.
저장소에는 에뮬레이터별 시험 결과도 실려 있다. 2026년 10월 24일 기준 표에서 cpmulator는 모든 테스트를 통과했고, 다른 네 에뮬레이터에는 각기 다른 실패 항목이 기록됐다. 결과는 에뮬레이터의 구현 변경에 따라 달라질 수 있다. 직접 최신 결과를 얻으려면 ./setup.sh로 에뮬레이터 소스를 내려받고 ./run.sh를 실행한다. 모든 에뮬레이터를 컴파일하려면 Rust, Go, C 및 C++ 컴파일러가 필요하다.
실패가 곧 에뮬레이터 결함을 뜻하지는 않는다. 일부 에뮬레이터는 실제 프로그램에서 거의 쓰이지 않았던 사용자 번호나 I/O 바이트를 지원하지 않거나, A: 드라이브만 있다고 가정해 활성 드라이브 상태를 유지하지 않을 수 있다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요