A Linux toolchain that is compatible with Microsoft MACRO-80. The um80 assembler, the ul80 linker, the ulib80 librarian, and the ud80 disassembler build and examine CP/M .COM files for the 8080 and Z80.
An unpacker for the CP/M archive and compression formats LBR, ARC, squeeze, crunch, and CrLZH. A Python 3 program and a native CP/M program give the same output.
A Python interpreter for MBASIC 5.21, the Microsoft BASIC-80 for CP/M. It runs the original programs without changes, and two compiler backends compile them to CP/M .COM files or to JavaScript.
A Cowgol compiler for the Z80 processor and CP/M. It runs on Linux in Python and analyzes the call graph across modules, so subroutines that never overlap share the same local storage.
A C compiler for the Z80 processor and CP/M. It optimizes for small code size, and it made smaller binaries than z88dk in all 47 tests of a public test suite.
An Ada compiler for the Z80 processor and CP/M 2.2. It compiles a subset of Ada 2012 to Z80 assembly language for CP/M .COM files, and it works toward ACATS conformance.