CP/M Neo requires a RISC-V bare-metal toolchain (riscv64-unknown-elf-gcc + binutils), make, and sh.
make -C sysgen
./sysgen/build/sysgen new --disk-size=2048K --mem=64K --platform=vemu --march=rv32imEverything outputs directly to sysgen/build/:
| File | Purpose |
|---|---|
disk.img |
Final disk image |
bootloader.bin |
Boot image |
core/int/kernel.bin |
kernel binary |
core/int/ccp.bin |
Console Command Processor (CCP) binary |
apps/ |
Bundled Apps |
To clean up the build environment, run:
See the User Guide for the full build and execution walkthrough.
sysgen is the host utility for building and inspecting CP/M Neo disk images. Commands other than new support appending --disk=path to target a specific image; new always writes to sysgen/build/disk.img.
| Command | Description |
|---|---|
new --disk-size=KB --mem=KB --platform=NAME --march=isa |
Build the OS and create a disk image |
add <file> [--dst=Vn] [--attr=R/W|R/O|SYS] |
Add an external file to an image |
install <folder> [--dst=Vn] [--attr=...] |
Compile a source folder and install the binaries |
dir [Vn] |
List files on a volume |
type <name> [Vn] |
Print a file |
era <name> [Vn] |
Delete a file |
ren <old> <new> [Vn] |
Rename a file |
stat |
Show volume usage and metadata |
Platforms are defined in platform/<name>/bios.c.
See the Developer Guide to add your own.
CP/M Neo has 4 volumes:
Switch volume:
Each volume contains 16 user areas:
Switch user area:
Or use the short form:
Switch volume and user area:
Type help at the command prompt for the full list of commands.
CP/M Neo is structured to isolate user applications from the host hardware, with the Console Command Processor (CCP) and user applications sharing the Transient Program Area (TPA).
Contributions to CP/M Neo are welcome!
If you'd like to contribute, see CONTRIBUTING.md for more info.
CP/M Neo is distributed under the terms of the open-source MIT.


