开发者生态
morning
CP/M-386 – 用于 386 保护模式的 CP/M,源自 CP/M-68K
2026-08-03
1 阅读
约8分钟阅读
TMWNN
字号:
CP/M-386 CP/M-386 是用于 386 保护模式的 CP/M,源自 CP/M-68K。概述 硬件支持 CP/M 兼容性 构建要求 下载 编译 构建输出 QEMU 测试 QEMU 注释 包含的实用程序 贡献 未来计划 代码统计 镜像 许可证概述 CP/M-386 目前处于非常早期的开发阶段。使用 Ring-3 TPA 实现完整的 32 位保护模式。可通过 3.5" 1.44MB 软盘 MBR 或 GRUB 多重启动内核启动。支持 VGA 文本 (0xB8000) 和/或 COM1 串行 (9600/N/8/1, 0x3F8) 控制台。无软盘/硬盘/CD/USB/网络/声音/其他驱动程序(尚未)。硬件支持 与 2MB 的 386(及更高版本的系统)兼容支持使用 PC BIOS 或 UEFI(带 CSM)、8042 PS/2、8250/16450/16550 UART、CMOS RTC 和 8253/8254 PIT 的系统 CP/M-386 应与其他实现高度源兼容:系统 BDOS 覆盖 CP/M-68K 1.3。 100% CP/M 2.2 100% CP/M-Plus 71% DOS-Plus 62% MP/M 2.1 50% 系统当前向应用程序报告 BDOS 2.2 CP/M-386 BDOS 与 CP/M-68K 1.3 和 CP/M 2.2 完全同等。 ) 还支持超过 60% 的 DOS-Plus 扩展。大约一半的 MP/M 扩展已完成,缺少的功能主要是不适用于单用户 CP/M 实现的独特 CP/M-386 BDOS 扩展,以适应直接视频访问、高分辨率定时、PRNG 等新功能。编译要求 编译 CP/M-386 需要以下依赖项: AWK Cpmtools † GNU Binutils GNU Coreutils GNU GCC 或 LLVM Clang GNU Make NASM QEMU(仅用于测试) † 请务必使用 cpmtools 版本 2.23 或更高版本。 CI/CD 日志 在当前版本的 NetBSD 和 FreeBSD 以及最新的 Linux 发行版上支持编译构建 CP/M-386 以下是已验证可成功构建 CP/M-386 的 Linux 发行版的最低版本:CentOS Stream 9、Fedora 36、Debian 12、Ubuntu 18.04(使用 ppa:ubuntu-toolchain-r/test 中的 gcc-16)、Ubuntu。 22.04、Alpine 3.24 和 OpenSUSE Leap 15.4。 构建(推荐): make -Orecurse -j " $( nproc 2> /dev/null || printf ' %s ' 1 ) " make test Clang 构建: make -Orecurse -j " $( nproc 2> /dev/null || printf ' %s ' 1 ) " CC= " clang " 建议使用 GCC,因为 Clang 编译的 i386 代码较大。如果切换编译器或调整编译器标志,请确保 make clean。运行测试套件 ( make test ) 需要 32 位支持库。 ‡ 在撰写本文时,FreeBSD 正在发布具有损坏的 mkfs.cpm 功能的非功能性 cpmtools2 软件包。要在 FreeBSD 上成功构建,您必须重建 cpmtools 并确保它不与如果您在 FreeBSD 上从 mkfs.cpm 收到光盘被驱动程序拒绝的错误,则您的工具已损坏,无法用于构建 CP/M-386 构建输出 构建会产生两个主要工件: 文件 说明 cpm386.elf 多重启动内核映像 floppy.img 可启动 3.5" 1.44MB 软盘映像 您可以下载上面的预编译二进制文件。 QEMU 测试 Multiboot 内核(推荐): qemu-system-i386 -m 2M -serial stdio -monitor none -kernel " cpm386.elf " 软盘 MBR 加载程序: qemu-system-i386 -m 2M -serial stdio -monitor none -drive if=floppy,format=raw,file= " floppy.img " -boot a QEMU Notes 使用-ngraphic -display none -vga none 禁用 VGA 视频(并且仅使用串行控制台)。使用 -serial none 禁用串行 UART(并仅使用 VGA 控制台)。包含的实用程序 程序 说明 ACLOCKDV.386 aclock(VGA 文本控制台版本) ACLOCKVT.386 aclock(ANSI 终端版本) BIG.386 多范围加载测试可执行文件 CLEARTPA.386 清除(清零)并可选择验证 TPA CLS.386 清屏 (BDOS 221) DELAY.386 延迟测试 (BDOS 141) DEMO.SUB SUBMIT 演示DUMPDIR.386 目录条目转储实用程序 (BDOS 17 / 18) DUMPFCB.386 文件控制块转储实用程序 (BDOS 15) ENV.DAT 环境数据文件 FPARSE.386 F_PARSE 测试 (BDOS 152) GETSN.386 显示序列号 (BDOS 107) GFXTEST.386 图形和帧缓冲区演示 (BDOS) 229/230/231/233) HD.386 十六进制转储实用程序 HELLO.386 Hello world(第一个 CP/M-386 程序!) ILLEGAL.386 Ring-3 保护和异常处理程序测试 IOTEST.386 文件 I/O BDOS 测试 JULIA.386 绘制 Julia 集分形(终端版本) LRBC.386 查询和/或设置最后记录字节计数LS.386 列出文件(带大小) MANDEL.386 绘制 Mandelbrot 集合分形(终端版本) ALVTST.386 获取分配向量测试 ( BDOS 27 ) MEM.386 内存映射实用程序 (BDOS 227/228) MORE.386 UNIX 更多风格分页器 OD.386 八进制转储实用程序 PAUSE.386 等待按键 PRINTENV.386普里
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱