CP/M-386: A New Operating System for 386 Processors
A version of classic CP/M systems adapted for 386 processors is under development.
1What is CP/M-386?
CP/M-386 is a new operating system developed for 386 and later processors. Derived from CP/M-68K, this system offers high-level source compatibility with old CP/M applications. Currently in early development stages, the project can run on systems with at least 2MB of memory. It supports both PC BIOS and UEFI (with CSM).
2Hardware Support
CP/M-386 supports basic hardware components like VGA graphics cards, 8042 PS/2 keyboards, 8250/16450/16550 UART serial ports, CMOS real-time clock, and 8253/8254 programmable interval timer. The system currently reports BDOS version 2.2 and maintains compatibility with old CP/M applications. Developers continue working to expand hardware support.
3Compilation and Installation
CP/M-386 can be compiled on NetBSD, FreeBSD, and many Linux distributions. Supported distros include CentOS Stream 9, Fedora 36, Debian 12, and Ubuntu 22.04. The compilation process uses the 'make' command, and tests can be run with 'make test'. The Clang compiler is also supported as an alternative. The system can be tested on QEMU and works as a multiboot kernel.
4System Requirements
CP/M-386 requires a minimum of a 386 processor and 2MB RAM. It's being developed to preserve old systems and make them compatible with modern hardware. The system supports basic features like serial console and VGA output. When testing on QEMU, the graphical interface can be disabled to use only the serial console.
5User Utilities
CP/M-386 includes various utilities like ACLOCKDV.386 (VGA clock), ACLOCKVT.386 (ANSI terminal clock), BIG.386 (multi-extent loading test), CLEARTPA.386 (memory clearing), and CLS.386 (screen clearing). It also features system management tools such as DUMPDIR.386 (directory entries), DUMPFCB.386 (file control blocks), and HD.386 (hex dump).
6Development Process
The project is open-sourced on GitHub, allowing developers to contribute. Currently in early stages, work continues on system stability and compatibility. Developers are optimizing BDOS functions to ensure smooth operation of old CP/M applications. Future versions plan to add more hardware support.
7Testing and Debugging
CP/M-386 includes test tools like ILLEGAL.386 (protection and exception handler test), IOTEST.386 (file I/O tests), JULIA.386 (Julia set fractal drawing), and MANDEL.386 (Mandelbrot set fractal drawing). Utilities such as MEM.386 (memory mapping), MORE.386 (pager), and OD.386 (octal dump) help test system performance and stability.
8Future Plans
Future versions of CP/M-386 aim for broader hardware support, improved application compatibility, and better performance. Developers continue working to preserve historical software and integrate it with modern hardware. The project represents an important step in preserving legacy software for future generations.
Original article: Hacker News — CP/M-386: 386 İşlemciler İçin Yeni Bir İşletim Sistemi