开发者生态
morning
CP/M-386 – 用于 386 保护模式的 CP/M,源自 CP/M-68K
摘要
CP/M‑386 is CP/M for 386 protected mode, derived from CP/M‑68K . CP/M‑386 is currently in the very early development stages. Compatible with 386 (and later systems) with 2MB (or more) memory. Systems ...
386
and
the
with
BDOS
The
have
are
supported
Plus
2026-08-03
1 阅读
约9分钟阅读
TMWNN
字号:
CP/M-386 是 386 保护模式的 CP/M,源自 CP/M-68K。 CP/M-386 目前正处于早期开发阶段。兼容具有2MB(或更多)内存的386(及更高版本的系统)。支持使用 PC BIOS 或 UEFI(带有 CSM)的系统。支持 VGA、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 完全同等。还支持大多数 CP/M-Plus (CP/M 3) BDOS。超过 60% 的 DOS-Plus 新增功能已得到实施。大约一半的 MP/M 扩展已经完成。缺少的功能主要是多用户、多任务、消息队列和过程控制调用,这些功能不适用于单用户 CP/M 实现。添加了独特的 CP/M-386 特定 BDOS 扩展,以适应直接视频访问、高分辨率定时、PRNG 等新功能。编译 CP/M-386 需要以下依赖项: † 请务必使用 cpmtools 版本 2.23 或更高版本。旧版本可能看起来可以工作,但有几个已知的错误。当前版本的 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。 GCC 构建(推荐): 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。运行测试套件需要 32 位支持库 ( make test )。 ‡ 在撰写本文时,FreeBSD 正在发布非功能性的 cpmtools2 软件包,其 mkfs.cpm 功能已损坏。要在 FreeBSD 上成功构建,您必须重建 cpmtools 并确保它不与 libdsk 链接。如果您在 FreeBSD 上从 mkfs.cpm 收到光盘被驱动程序拒绝的错误,则您的工具已损坏并且无法用于构建 CP/M-386 。您可以在上面下载预编译的二进制文件。多重启动内核(推荐): 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 Use -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 打印环境和系统数据 PRNG.386 PRNG 测试和演示实用程序 (BDOS 253/254) PROFILE.SUB SUBMIT 脚本(启动时自动执行) RC.386 返回代码测试和查询 ( BDOS 108 ) README.TXT 示例文本文件 REBOOT.386 重新启动实用程序 (BDOS 220) RM.386 UNIX rm 类似交互式文件删除实用程序 SEROFF.386 禁用串行控制台(BDOS 223) SERON.386 启用串行控制台 (BDOS 223) STAT.386 STAT(Zilog CP/M‑Z8000 STAT v1.0C 01/03/84 的端口) SYNC.386 同步磁盘 ( BDOS 48 ) TEST211.386 数字格式测试 ( BDOS 211 ) TEXTMODE.386 查询和设置控制台文本模式 (BDOS 229/230/231) TICKS.386 高分辨率定时器测试 (BDOS 225/226) TOD.386 获取(和设置)时钟 ( BDOS 104 / 105 ) TOUCH.386 创建空文件 TRUNCATE.386 文件截断实用程序(LRBC 感知) TRUNCTST.386 截断测试 ( BDOS 99 ) TSEC.386 获取日期和时间 ( BDOS 155 ) VER.386 显示操作系统版本 ( BDOS 163 ) VGAFONT.386 加载
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱