Disk Images are now available as part of the project releases, ready to use ! Full Source Build
This project preserves Digital Research's Concurrent DOS 4.11, multitasking OS (CCP/M-86 follow up), including PC-MODE DOS 2.0 Compatibility, as a usable, rebuildable system for running and exploring classic 16-bit software. It is also the last mainly CP/M-ish system produced. The successors will switch closer to DOS.
Runnable disks, development tools and patch notes accompany the sources, with CP/M-Plus-style usability improvements.
The assembly is based on partial 4.1 OEM sources corrected to align with European 4.11 and a lot of fixes and enhancements.
| Goal | Distribution |
|---|---|
| Source rebuild | Kernel, four RSP families, boot sources and command tools |
| Usability improvements | Command-line editing and recall, console shortcuts, paging and CLS |
| Additional tools | ASM80, HEXCOM, Legacy CCP/M tools and floppy copy/compare commands |
| Floppy formats | CP/M 160/320K; DOS FAT12 360K, 720K, 1.2M and 1.44M |
| Graphics | CGA plus EGA 0Dh/0Eh/10h, monochrome 0Fh on EGA monochrome/VGA, and VGA 11h/12h/13h, with graphics drawing and palette services |
| DOS compatibility | 100% Coverage of DOS 2.10, Extended DOS APIs, CON raw/cooked handle I/O, inherited standard handles and PUT/GET/RDR redirection for native CMD and DOS programs, Full DOS Batch Language |
| Date fixes | Patched native date/reporting utilities and corrected short-year input in DATE.EXE |
Console windows · Concurrent DOS 4.11
System setup · File Manager
Startup menu · Microsoft BASIC 5.50A
Turbo Pascal for CP/M-86 · Turbo Pascal for DOS
Disk maintenance · DOS applications under PC-MODE
The build follows the CCP/M project's source organization and toolchain.
All build inputs are local to this repository. Source pedigree and component
status and sources.json record the origins and source hashes.
The current version includes:
- Enhanced SUBMIT
- BIOS INT 1Ah RTC startup and native/DOS date-time write-back, with software-clock fallback.
- CP/M-Plus-style command-line cursor movement, insertion, deletion and recall.
- Left/Right, Home/End, Delete and Up during buffered console input.
- Ctrl+Alt+1–4 to select consoles; Ctrl+Alt+Tab to cycle through them.
- Ctrl+Alt+0 (top row) or Ctrl+Alt+Esc opens an installed WMENU; Ctrl+keypad-Plus remains available.
- Optional paging for TYPE, SDIR and DIR, alongside the built-in DIR's
/P/[P]. - CP/M-Plus-style console redirection through PUT, GET and RDR for native and DOS programs. (CP/M alternative to >, >>, <, |)
- Extra built-in CLS and PATH commands.
- DEL mapped to native ERA.CMD in both the shell and BATCH to keep CP/M as the main flavour.
- Case-insensitive FAT short names, without interpreting modern case flags as CP/M compatibility attributes.
- FAT volume labels remain metadata during raw CP/M directory scans, regardless of their root-directory position.
- Native FAT attribute GET/masked SET through BDOS 230; SET supports
[HIDDEN=ON|OFF]. - FAT HIDDEN files follow SYSTEM deletion rules; READ-ONLY and locks remain protected.
- Support for DOS Environment Variable Setting (SETENV)
- Full Batch Language Support with Extensions (In Progress)
Buffered console input supports editing and recall of the last nonempty line on each console:
| Key | Action |
|---|---|
| Left / Ctrl-A | Move one character left |
| Right / Ctrl-F | Move one character right |
| Home / End | Go to the beginning / end |
| Up / Ctrl-W | Recall the last line when empty; otherwise go to the end |
| Backspace / Rubout | Delete left of the cursor |
| Delete / Ctrl-G | Delete at the cursor |
| Ctrl-K / Ctrl-X | Delete to the right / left of the cursor |
| Ctrl-B | Toggle between beginning and end |
| Ctrl-U / Ctrl-R | Cancel the line / retype it on a new line |
Return accepts the whole line from any cursor position. The editor also serves applications using BDOS Function 10; raw-input applications keep their own keys. There is one saved line per console, not a history list. Ctrl-U retains the historical #/newline echo; Ctrl-E continues on a new row.
| Command | Effect |
|---|---|
CLS |
Clear the screen and home the cursor |
TYPE filespec [PAGE] / [PNN] |
Page text; NN selects 01..23 rows |
SDIR [PAGE] |
Page a detailed directory listing |
DIR.CMD filespec [P] |
Page the standalone directory command |
DIR filespec /P |
Page the shell's built-in directory listing |
ORDER |
Display the executable-extension search order |
ORDER CMD,COM,EXE,BAT |
Set the extension search order |
PATH / PATH=value |
Display / set the DOS search path |
Optional paging uses 23 screen rows. Press a key to continue or Ctrl-C to stop;
paging is off by default. TYPE and SDIR count tabs and wrapped text. SDIR's
[LENGTH=n] controls repeated headers separately. The standalone DIR.CMD
and built-in DIR retain their respective option syntax.
ORDER provides command-order configuration in 4.1. SETDEF will not be ported;
system-path configuration remains with the external SYSDISK.CMD on the maintenance disk.
EXE loading fixes the same DOS Plus defect: headers need not be 512-byte aligned.
See the shell command and alias table and HELP for command syntax.
See the API inventory for native, DOS, BIOS and graphics interfaces.
HELP on the tools disk uses the imported CCP/M text as a starting point;
the second OEM disk retains the original 4.1 help text.
PUT, GET and RDR redirect a native or DOS program's console output, input or
both, using a bracket prefix:
| Command | Effect |
|---|---|
PUT [out{,A}{,E|EO}] cmd |
Capture output; A appends, E/EO also echoes it |
GET [in{,E|EI}] cmd |
Read input from a file; E/EI echoes it |
RDR [in,out{,A}{,E|EI|EO}] cmd |
Redirect input and output together |
A>PUT [LIST.TXT] SDIR.CMD *.CMD
A>GET [KEYS.IN] PIP.CMD
A>RDR [KEYS.IN,PIP.LOG] PIP.CMD
Native .CMD programs use BDOS console calls; DOS .COM/.EXE programs
use standard input/output, including legacy INT 21h console calls. Use
DIR.CMD or SDIR.CMD for directory capture. Shell built-ins and direct screen
access remain outside this interface. Details and limits are in the
PUT/GET/RDR notes.
PUT/GET/RDR preserve DOS argument case using the opt-in CMD TAIL=KEEP flag;
CHSET can select KEEP or the historical UPPER behaviour.
Stock DOS Plus 1.2 versus this CDOS rebuild.
| Functionality | DOS Plus 1.2 | This CDOS rebuild |
|---|---|---|
| Native CP/M and DOS programs | Both supported | Both supported |
| Documented DOS 2.0 application API | All functions claimed supported; reports DOS 2.11 | Partial: resident programs (31h), device control (44h), program loading (4Bh). Legacy resident termination (INT 27h) is missing |
| Concurrent DOS programs | One foreground DOS program | Multiple DOS console sessions |
| Background native programs | Up to three | Supported alongside DOS sessions |
| Screen management | Foreground screen with background task control | Multiple consoles and WINDOW/WMENU |
| CP/M floppies and FAT volumes | Accessible from native and DOS programs | Accessible from native and DOS programs |
| FAT subdirectories | Supported | Supported |
| CP/M hard-disk partitions | Not supported | Supported |
| Hard-disk installation and boot | FAT partition only | FAT or CP/M partition |
| National keyboard, screen and printer settings | N and NATIONAL.MSG | Same national setup support through N and NATIONAL.MSG |
| Directory-tree statistics | TREE | Portable TREE |
| EXEs with short or unaligned headers | Loader defect affects some programs | Fixed |
| Command processor | COMMAND.COM | PCTMP and BATCH |
| Startup scripts | AUTOEXEC.BAT | Per-console startup scripts |
| Batch support | DOS 2.0 Level | Enhance DOS 2.0 Level (CALL, DIREXIST, @ECHO, EXIT) |
| Environment variables | SET and %NAME% expansion |
SETENV and BATCH %NAME% expansion; no interactive expansion |
| Search-path commands | PATH built-in | PATH built-in and PATH.CMD for the DOS environment; SYSDISK and ORDER for native shell searching |
| DOS program memory | ADDMEM and COMSIZE | Same-named PCTMP/BATCH built-ins: extra allocation and minimum DOS-program memory |
| File attributes (ATTRIB role) | FSET on the reference 1.2 disk | SET changes read-only/system/archive attributes; SDIR inspects them. Different syntax; no exposed HIDDEN toggle |
| Volume labels (LABEL role) | DOS volume-label utility on some system disks | SET [NAME=...] and SHOW LABEL support CP/M directory labels and FAT volume names; blank FAT NAME deletes |
| Native resident extensions | RSX loading; GENRSX supplied on some system disks | Resident System Processes (RSPs); no compatible RSX loader or GENRSX equivalent |
| Input/output redirection and append | DOS pattern: <, >, >> |
CP/M-Plus pattern: GET/PUT/RDR, extended to both native and DOS programs |
| Command pipelines | command1 | command2 using temporary files |
CP/M-Plus pattern: GET/PUT/RDR |
| Internal DOS interfaces | Not supported as a compatibility interface | 2 of 9 fully implemented (22%); 1 partial; 6 missing or stubbed |
The internal-interface count uses the nine services identified in api.md: 33% have at least some implementation; this is not an overall compatibility score.
| DOS Plus commands without a matching CDOS command | CDOS alternative or gap |
|---|---|
| PROMPT, BREAK, VERIFY, SLICE | No corresponding shell commands |
| LABEL, BACKG, FSET | Mapped to SET/SHOW, SYSTAT/STOP and SET respectively; command syntax differs |
| ALARM, GRAFTABL, DEVICE | No direct command equivalents |
| CHKDSK | CHKCPMFS checks CP/M allocation with confirmed metadata repairs; CHKDOSFS checks and repairs FAT12/FAT16 (B/D/F/L/R/V supported; confirmed conservative repairs) |
| MODE | SETUP/SETPORT cover some configuration functions; no complete equivalent |
| Image | Bootable | Contents |
|---|---|---|
cdos86.img |
Yes | Kernel, core file commands, ED, DATE, SDIR, SET, SHOW, SUBMIT, BATCH, ERA/ERAQ, PIP and shell alias targets |
cdostools.img |
No | SUBMIT, TREE, ECHO.CMD, HELP, SYSTAT, CHSET, WINDOW/WMENU, PUT/GET/RDR, ERA and PIP |
cdosdev.img |
No | ASM80/ASM86, DDT86, GENCMD, HEXCOM, GENCCPM, GENLDR, ED, SUBMIT and PIP |
cdosmaint.img |
Yes | Kernel, INITDIR, DSKMAINT, DFORM, HDMAINT, SYSDISK, ERA and PIP |
cdosmenu.img |
No | SPL, PRINT, DREDIX, COPYMENU, EDITMENU, PRINTMGR, DSP, menu/terminal data, BAT examples and PIP |
cdosdos.img |
No | SETENV.CMD, COPY.EXE, DATE.EXE, ERASE.EXE, PATH.CMD, LOADCCPM.COM, TIME.EXE, REN.EXE, REDOS.COM and CHKDOSFS.CMD, core commands and PIP |
cdosextras.img |
No | BACKREST, CARDFILE, DRTALK, their support files and PIP |
cdosadmin.img |
No | FUNCTION, DCOPY/DCOMP, SETPORT, SETUP, STOP, CHKCPMFS, N with NATIONAL.MSG, FM with FM.CFG and TERM.DAT and PIP |
make dist places these eight images and disks.zip at the repository root.
Source distribution and history stay in Git.
Boot the system or maintenance disk in A: and use the data disks in B:.
make test launches PCE with system/tools mounted on A:/B:. HELP and
WINDOW/WMENU are on the tools disk; use B:HELP with the desired help disk
inserted. The kernel retains its historical CCPM.SYS filename.
320 KB: untwist → cpmtools ccpm86-320 → twist.
The filesystem and boot track are generated locally.
Media recipes, contents and emulator usage.
| Format | Capacity | Read/write | DFORM | DSKMAINT |
|---|---|---|---|---|
| CP/M | 160K | Yes | [1] |
F2 |
| CP/M | 320K | Yes | Default | F3 |
| DOS | 160K / 320K | Yes | — | Copy operation only |
| DOS | 180K | Yes | — | F4 |
| DOS | 360K | Yes | [DOS] |
F5 |
| DOS | 720K | Yes | [DOS720] |
F6 |
| DOS | 1.2M | Yes | [DOS1200] |
F7 |
| DOS | 1.44M | Yes | [DOS1440] |
F8 |
DCOPY/DCOMP copy and compare these formats. To make a system floppy, format
it and copy the normal CCPM.SYS first, before adding other files.
The hard-disk driver supports BIOS CHS disks with 512-byte sectors and 17 sectors per track, using the geometry reported by the BIOS. It supports two physical disks. It does not require a particular disk model.
Representative supported geometries (capacity is before partitioning):
| Disk class | Cylinders | Heads | Sectors/track | Capacity |
|---|---|---|---|---|
| 10 MB | 306 | 4 | 17 | 10.7 MB / 10.2 MiB |
| 20 MB | 615 | 4 | 17 | 21.4 MB / 20.4 MiB |
| 30 MB | 615 | 6 | 17 | 32.1 MB / 30.6 MiB |
| 40 MB | 615 | 8 | 17 | 42.8 MB / 40.8 MiB |
| 60 MB | 900 | 8 | 17 | 62.67 MB / 59.77 MiB |
The BIOS must expose the selected geometry. CHS addressing permits cylinder numbers 0–1023; HDMAINT accepts three-digit starting cylinders and partition lengths. A disk larger than 32 MiB must be divided into smaller partitions; the limit below applies to each partition, not to the whole disk. Modern 63-sector translated geometries and BIOS extended LBA access are not supported.
| Partition format | Supported size | Read/write | Create with HDMAINT | System boot |
|---|---|---|---|---|
| Native CP/M (type DBh) | Below 32 MiB with the current HDMAINT; at most 8 MiB for CP/M-86 1.1 compatibility | Yes | Yes | Yes |
| DOS FAT12 (type 01h) | Below 32 MiB, with fewer than 4,085 data clusters | Yes | Yes; cluster size selected automatically | Yes |
| DOS FAT16 (type 04h) | Below 32 MiB | Yes | No | Not established |
HDMAINT uses 16-bit sector calculations: do not create a partition of 65,536 sectors (32 MiB) or larger. Filesystem metadata reduces usable file space. The 8 MiB CP/M compatibility limit is not the Concurrent DOS limit.
| Layout rule | Support |
|---|---|
| Partitions per physical disk | One native CP/M and one DOS partition |
| Maximum mounted hard-disk volumes | Four across two physical disks |
| Partition order on disk | CP/M then DOS, or DOS then CP/M |
| Duplicate partition types | Only the first CP/M and first DOS match in the MBR are mounted |
| Partition placement | HDMAINT creates cylinder-aligned partitions, at least 10 cylinders long; cylinder 0 reserves the MBR sector |
| Unsupported partition types | Extended/logical partitions, GPT, large FAT16 (type 06h) and FAT32 |
With A: and B: assigned to floppies, drive letters are allocated as follows, regardless of the physical order of the partitions:
| Physical disks | DOS partitions | CP/M partitions |
|---|---|---|
| One | C: | D: |
| Two | C: on disk 1, D: on disk 2 | E: on disk 1, F: on disk 2 |
For approximately 30 MiB of each filesystem, use the 900-cylinder geometry above and create these two partitions with HDMAINT:
| Partition | Starting cylinder | Length in cylinders | Raw capacity |
|---|---|---|---|
| CP/M | 0 | 450 | Approximately 29.88 MiB |
| DOS FAT12 | 450 | 450 | Approximately 29.88 MiB |
Both partitions fit the limits above. Usable file space is smaller because of filesystem metadata and loaders.
An absent partition leaves its drive slot unavailable. To boot, make the
desired partition active on the first hard disk, install its loaders with
HDMAINT, then copy CCPM.SYS to that partition.
| Component | Purpose | Origin |
|---|---|---|
| SUP | Supervisor and native command dispatch | Recompiled from CDOS 4.1 and adapted |
| RTM | Scheduling, queues, flags and process control | Recompiled from CDOS 4.1 |
| CIO | Console, character and auxiliary I/O | Recompiled from CDOS 4.1 and adapted |
| MEM | Memory allocation and shared memory | Recompiled from CDOS 4.1 |
| BDOS | File and filesystem services | Recompiled from CDOS 4.1 |
| SYSDAT | Shared system data | Recompiled from CDOS 4.1 |
| XIOS | IBM PC/XT/AT SQUID hardware support | Recompiled from CDOS 4.1 and adapted |
| PIN | Physical console input | Recompiled from CDOS 4.1 and adapted |
| CLOCK | Timekeeping resident process | Recompiled from CDOS 4.1 |
| PCTMP | Shell and command execution on four resident PC consoles | Recompiled from CDOS 4.1 and adapted |
| CONFID | Optional FIDD device-driver loading (ccpmfidd.sys) |
Recompiled from CDOS 4.1 |
| Boot sector / loader | Start the generated kernel | Recompiled from CCP/M-86 boot sources |
The build produces ccpm.sys (standard, used by media) and ccpmfidd.sys
(with the optional CONFIDD driver loader). See system generation.
Source-origin terminology follows ccpm86-kernel. The columns below separate reference provenance, build origin, and parity. A source rebuild or the phrase “adapted for parity” alone is not proof that the 4.11 comparison is complete.
Original reference identifies the historical release: 4.11 references were
matched against release-image hashes; SYSTAT is identified as 4.1 and SUBMIT as CCP/M-86 3.1.
Unclassified means the release is unknown; None means no reference has been
identified. SUBMIT's original is not currently retained in base/. Internal version strings (for example SHOW 3.3) do not override
release-image provenance. Details are in base/cdos411.json.
| Parity status | What it means |
|---|---|
| Byte-identical | Complete rebuilt executable matches the 4.11 reference |
| Equivalent | The rebuild matches the reference apart from documented, verified build differences and intentional improvements. |
| Behavior tested | Reviewed behavior matches the reference in documented tests, with intentional improvements retained |
| No reference | No independent release binary is available for comparison |
| Additional tool | Imported/new tool without a corresponding retained CDOS release binary |
| Original used | Distribution uses the original itself; no replacement is being compared |
Tail=KEEP marks native CMD binaries built to preserve command-tail case:
BATCH.CMD, ECHO.CMD, GET.CMD, PUT.CMD, RDR.CMD, SETENV.CMD and PATH.CMD. Other native CMDs use the
historical uppercase tail; DOS COM/EXE files do not use this CMD-header flag.
Filename matching is unchanged. CHSET can query or
change the setting. See batch.md for substitution and child-command
case handling.
| Tool | Purpose | Original reference | Source (commands/) |
Parity | Tail |
|---|---|---|---|---|---|
asm80 |
8080 assembler | - | Translated using XLT86 from CP/M-80 2.2 and adapted | Additional tool | — |
asm86 |
8086 assembler | - | Recompiled from CCP/M-86 3.1 and adapted | Additional tool | — |
batch |
Run BAT command files | 4.11 | Recompiled from CDOS 4.1 and adapted for parity | Equivalent | KEEP |
chdir / mkdir |
Change or create directories | 4.11 | Recompiled from CDOS 4.1; shared D.A86 implementation | Byte-identical | — |
chkcpmfs |
CP/M allocation check and confirmed metadata repair | - | New shared PL/M-86 checker for CDOS, CCP/M-86 and CP/M-86 | Additional tool | — |
chkdosfs |
FAT12/FAT16 check and confirmed size/EOF correction and lost-chain recovery | DOS Plus CHKDSK 1.0 | Recreated in C from the DOS Plus binary; scope and tests | Additional tool | — |
rmdir |
Remove directories | 4.11 | Recompiled from CDOS 4.1 and adapted for parity | Equivalent | — |
chset |
Inspect or change CMD header flags | 4.11 | Recompiled from CDOS 4.1 and adapted for parity | Behavior tested | — |
cls |
Clear the terminal screen | - | New; TMP built-in; VT52 ESC-E | Additional tool | — |
copy.exe |
Copy files | 4.11 | Recompiled from CDOS 4.1 and adapted for parity | Equivalent | — |
copymenu |
Copy menu definitions | 4.11 | Recompiled from CDOS 4.1 | Behavior tested | — |
date |
Display or set the date | - | Recompiled from CCP/M-86 3.1 and adapted, Y2K patched | Additional tool | — |
date.exe |
Display or set the date through DOS | 4.11 | Recompiled from CDOS 4.1 and adapted, short-year fix; commands/datetime | Equivalent | — |
dcomp / dcopy |
Compare or copy CP/M/FAT floppies up to 1.44M | - | Ported from PC DOS 1.10; adapted for CDOS and extended floppy geometry | Additional tool | — |
ddt86 |
8086 interactive debugger | - | Recompiled from CCP/M-86 3.1 | Additional tool | — |
dir |
List directory contents | - | Recompiled from CCP/M-86 3.1 and adapted; separate CDOS 4.1 TMP built-in | Additional tool | — |
dredix |
Full-screen text editor | 4.11 | Recompiled from CDOS 4.1 | Behavior tested | — |
dform |
Command-line CP/M and DOS FAT12 floppy formatter | — | Adapted from CCP/M-86 DFORM | — | — |
dskmaint |
Format, verify and copy diskettes | 4.11 | Recompiled from CDOS 4.1 with reconstructed 4.11 DOS boot sector and extended DOS formats | Behavior tested | — |
dsp |
Inspect print-spool information | 4.11 | Recompiled from CDOS 4.1 | Behavior tested | — |
echo |
Write text to the native console | None | New native RASM86 implementation | Additional tool | KEEP |
ed |
Line-oriented text editor | - | Recompiled from CCP/M-86 3.1 and adapted | Additional tool | — |
editmenu |
Edit menu definitions | 4.11 | Recompiled from CDOS 4.1 | Behavior tested | — |
era |
Erase files | - | Recompiled from CCP/M-86 3.1 and adapted for parity | Behavior tested | — |
eraq |
Erase files with per-file confirmation | 4.11 | Recompiled from CDOS 4.1 | Behavior tested | — |
erase.exe |
Erase files through DOS | 4.11 | Recompiled from CDOS 4.1 | Equivalent | — |
function |
Program function keys | 4.11 | Recompiled from CDOS 4.1 | Behavior tested | — |
gencmd |
Convert H86 output into CMD executables | - | Recompiled from CCP/M-86 3.1 and adapted | Additional tool | — |
get |
Feed console input from a text file | - | New; shared putget.lib engine, imported from the CCP/M project | Additional tool | KEEP |
genccpm |
Generate and configure the system image | - | Recompiled from CDOS 4.1 and adapted; flag-table fix | No reference | — |
genldr |
Generate a system loader | - | Recompiled from CDOS 4.1; carried-over SCD2 startup | No reference | — |
hdmaint |
Hard-disk maintenance | 4.11 | Recompiled from CDOS 4.1 with recovered flat LBDOS | Byte-identical | — |
help |
Browse indexed command help | 4.11 | Recompiled from CDOS 4.1; maintained help.dat | Behavior tested | — |
hexcom |
Convert Intel HEX to COM binaries | - | HEXCOM 3.00-compatible C from tpzasm | Additional tool | — |
initdir |
Enable or remove directory date/time stamps | 4.11 | Recompiled from CDOS 4.1 | Equivalent | — |
loadccpm.com |
Load the system from DOS | 4.11 | Recompiled from CDOS 4.1 and adapted for parity | Byte-identical | — |
n |
Configure national keyboard, screen and printer tables | 4.11 | Rewritten in C from CDOS 4.11, with byte-identical assembly reference | Behavior tested | — |
path |
Display or set the DOS search path | 4.11 | Rewritten in assembly from CDOS PATH; shared with TMP/BATCH, legacy source retained | Equivalent | KEEP |
pip |
Copy and transfer files | 4.11 | Recompiled from CDOS 4.1 and adapted | Behavior tested | — |
print |
Print files using Concurrent printer services | - | Recompiled from CCP/M-86 3.1 | Additional tool | — |
printmgr |
Manage print spooling | 4.11 | Recompiled from CDOS 4.1 and adapted for parity | Behavior tested | — |
put |
Capture console output into a file | - | New; shared putget.lib engine, imported from the CCP/M project | Additional tool | KEEP |
rdr |
Redirect console input and output together | - | New; shared putget.lib engine, imported from the CCP/M project | Additional tool | KEEP |
redos.com |
Install PC DOS system files on a prepared hard disk | 4.11 | Reverse Engineered from CDOS 4.11 | Byte-identical | — |
ren |
Rename files | - | Recompiled from CCP/M-86 3.1 and adapted for parity | Additional tool | — |
ren.exe |
Rename files through DOS | 4.11 | Reverse Engineered from CDOS 4.11 | Byte-identical | — |
sdir |
Detailed, sorted directory listing | 4.11 | Recompiled from CCP/M-86 3.1 and adapted for parity | Behavior tested | — |
set |
Set file, drive and label attributes | 4.11 | Recompiled from CCP/M-86 3.1, adapted for parity and enhanced with FAT labels and HIDDEN control | Equivalent | — |
setenv |
Display and edit the 1 KB per-console DOS environment | None | New native C implementation for CDOS 4.11 | Additional tool | KEEP |
setport |
Configure serial ports and protocols | 4.11 | Reverse Engineered from CDOS 4.11 and patched | Equivalent | — |
setup |
Customize system hardware settings | 4.11 | Reverse Engineered from CDOS 4.11 | Byte-identical | — |
show |
Display disk space, drive and label information | 4.11 | Recompiled from CCP/M-86 3.1, adapted for parity and enhanced with FAT labels and HIDDEN control | Equivalent | — |
submit |
Run SUB command files | - | Recompiled from CCP/M-86 3.1 and adapted | Additional tool | — |
spl |
Manage the print spool queues and dispatch jobs to DSP | 4.11 | Reconstructed C from CDOS 4.11; DRC 1.11 build, ASM86 reference retained | Behavior tested | — |
stop |
List processes and stop a selected entry | 4.11 | Reconstructed PL/M from CDOS 4.11; byte-identical assembly reference retained | Behavior tested | — |
sysdisk |
Display or change the system search path | 4.11 | Recompiled from CDOS 4.1; SD-mode D.A86 wrapper | Byte-identical | — |
systat |
Inspect processes and system resources | 4.1 | Recompiled from CCP/M-86 3.1 and adapted for parity | Behavior tested | — |
time.exe |
Display or set the time through DOS | 4.11 | Reconstructed assembly from CDOS 4.11; release MZ fields restored | Byte-identical | — |
tree |
Directory tree with per-directory file counts and byte totals | None | New C implementation of the DOS Plus interface | Additional tool | — |
type |
Display a text file | 4.11 | Recompiled from CCP/M-86 3.1 and adapted for parity | Behavior tested | — |
window |
Control console windows from commands | 4.11 | C rewrite, adapted for parity; shared modules in commands/window | Behavior tested | — |
wmenu |
Interactive console-window manager | 4.11 | C rewrite, adapted for parity; shared modules in commands/window | Behavior tested | — |
The native DATE(.CMD/.EXE), SDIR and SHOW imports retain the CCP/M project's date fixes.
DOS DATE.EXE has the same short-year pivot as native DATE.CMD: 00–77 maps to
2000–2077 and 78–99 to 1978–1999, subject to DOS calendar validation.
The regression runs 54 command-line/interactive cases without changing a clock.
Native DATE.CMD is in commands/date; DOS DATE.EXE and its tests are in
commands/datetime. TIME.EXE is rebuilt from the reconstructed pctime.a86.
Its complete file is compared with the 4.11 reference, and its time/prompt
formatting is tested; see the tool README for coverage.
Patch notes cover buffered line editing, per-console recall, console shortcuts, adapter-aware cursor shape, PIN's separate input queues, GENCCPM flag initialization, date handling, CLS and the DEL/PAUSE changes. Only changes made for this 4.1 rebuild are recorded there.
The IBM SQUID XIOS is the selected build. The alternative modular OEM XIOS is preserved separately; its link still needs the missing 8087.SIM input/profile. HDMAINT is rebuilt byte-for-byte, including its embedded CP/M and FAT boot stages, and supplied with its manual on the maintenance disk. See HDMAINT build notes for loader provenance and checks. Installation and cold boot from both CP/M and FAT12 hard-disk partitions have passed under PCE with the rebuilt kernel. HELP text and imported commands are all aligned.
Build: cpm86-crossdev, make,
cpmtools, Python 3 and zip. The Makefiles use the installed cpm86_*,
pcdev_*, Intel PL/M, DRC and PL/I tools; emu2 runs the build-time programs.
The boot build also uses h862bin from cpm86-cmdtools. PCE runs the interactive
system and the live regression checks.
| Command | Result |
|---|---|
make |
Commands, kernel/RSPs, boot sources and eight images |
make check |
Command headers, DATE parser, system layout, cursor, boot track and every packaged file/size |
make check-tree |
TREE statistics and private FAT directory traversal |
make check-batch-strings |
Case-sensitive IF equality, quotes, empty operands and variable concatenation |
make check-batch-status |
Native/DOS return-status thresholds and persistence in BATCH |
make check-batch-for |
FOR lists, ranges, file snapshots and ordinary command dispatch |
make check-batch-call |
Child BAT return, arguments, loop state, status and failure handling |
make check-batch-if |
File/directory predicates, full FAT paths and directory-state preservation |
make check-batch-expand |
Environment/argument expansion, bounds and per-console isolation |
make check-batch-exit |
Explicit/default BATCH status through native BDOS 108 |
make check-batch-language |
ECHO forms, script control, SHIFT/GOTO and DOS redirection |
make check-graphics |
Assembled graphics guards and adapter gates; PCE VGA/EGA/CGA, EGA monochrome and Hercules checks: pixels, palettes, graphics text/TTY and restoration |
make check-hercules |
Native and DOS Hercules graphics, text/cursor/scrolling, exit restoration and plain-MDA rejection |
make check-text40 |
Booted 40-column text tests on CGA/EGA/VGA: cursor, wrapping, scrolling and restoration |
make check-dos-switch |
DOS 37h get/set, native delimiter separation, EXEC sharing and launch persistence |
make check-dos-allocation |
1Bh/1Ch/36h geometry, FAT media pointer, invalid-drive rejection and default-drive preservation |
make check-pce |
Boot, console switching, line editing/recall, DIR, PIP, CLS, USER and external SYSDISK.CMD |
make check-type |
OEM/rebuilt TYPE comparison, DOS/CP/M EOF, passwords and paging |
make check-set |
OEM/rebuilt SET comparison, persisted attributes, passwords and timestamp settings |
make check-setenv |
DOS environment editing, mixed-case persistence, capacity and PATH interoperability |
make check-show |
OEM/rebuilt SHOW comparison, media guards, capacity/free space, users and labels |
make check-rtc |
Built-XIOS BIOS RTC, calendar bounds, fallback and write-back checks |
make check-fat-case |
FAT case-insensitive names, PIP copy/import, ERA and CP/M F4 preservation |
make check-fat-labels |
Raw-label isolation, DIR/SDIR counts, SET label protection and DOS label search/open |
make check-fat-batch |
FAT-hosted BAT/CMD loading, case flags, EOF forms and buffer refills |
make check-sdir |
OEM/rebuilt SDIR comparison on CP/M/FAT12, directory markers/counts, options and paging |
make check-redirection |
Native/DOS capture, append, input/echo, binary EOF, failure recovery and return to shell |
make check-aliases |
TMP/BATCH DEL execution, argument preservation and common PAUSE text |
make test |
Launch PCE with system/tools disks on A:/B: |
make dist |
Root-level disk images and disks.zip |
make check-release-commands |
Compare 4.11 and rebuilt command behavior in PCE and run the DATE parser cases |
make check-dskmaint-live |
Format a disposable FAT floppy and verify empty-disk recovery and both system filenames at cold boot |
make check-dform-live |
Format/verify DOS 360K–1.44M, test native FAT I/O and cold boot with the normal distribution kernel |
make check-floppy-boot |
Cold boot DOS 180K–1.44M with the normal distribution kernel |
make check-floppy-bios |
DOS last-sector, cross-head and cross-cylinder reads on 360K–1.44M media |
make check-dist |
Build and verify the disk archive |
make clean |
Remove generated build outputs, media and releases |
Source pedigree · License correspondence.
| Project | Description |
|---|---|
| cpm86-kernel | CP/M-86 1.1 distribution rebuilt from patched and reconstituted sources |
| ccpm86-kernel | CCP/M-86 3.1 distribution rebuilt from patched and reconstituted sources |
| cdos41-kernel | Concurrent DOS 4.1 distribution rebuilt from patched and reconstituted sources |
| cpm86-crossdev | Unix CP/M-86 cross development project (compilers, emulation and tools) |
| cpm86-hacking | CP/M-86 miscellaneous tools and PCE emulator helpers |
| cpm86-cmdtools | CP/M-86 .cmd file manipulation tools |
| cpm86-ports | CP/M-86 application ports in C and assembler |
| cpm86-vi | STevie vi port for CP/M-86 and PC-DOS |
| cpm86-msbasic | A recreaction of msbasic-86 for CP/M-86 and PC-DOS 1.1 from gwbasic sources |
| cpm86-menu | A submit replacement and a menu system for submit orchestration for CP/M-86 1.1 |
| cpm86-make | A simple submit based make tool for CP/M-86 |
| pcdos11-hacking | PC-DOS 1.1 distribution, tools and notes |
CP/M-derived material is covered by the CP/M license; other material uses the MIT license, unless specified otherwise in a subdirectory.
XIOS uses three assembly entry files with functional includes, linked
into one component. Build and fixed-interface validation run through the normal
make -C kernel/con xios.con target.
