<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.restless.systems/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dr.+Shuppet</id>
	<title>DisNCord Community Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.restless.systems/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dr.+Shuppet"/>
	<link rel="alternate" type="text/html" href="https://wiki.restless.systems/wiki/Special:Contributions/Dr._Shuppet"/>
	<updated>2026-04-19T00:09:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=Windows_Libraries_for_OS/2&amp;diff=1196</id>
		<title>Windows Libraries for OS/2</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=Windows_Libraries_for_OS/2&amp;diff=1196"/>
		<updated>2023-10-07T06:53:53Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Corrected typo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
[[File:WLO_applets_on_OS2_1.3.png|400px|thumb|right|WLO 1.0 applets running on Microsoft OS/2 1.30.1]]&lt;br /&gt;
&#039;&#039;&#039;Microsoft Windows Libraries for OS/2&#039;&#039;&#039; (shortened to WLO) is an implementation of the Win16 API for OS/2 1.21 and higher, along with an SDK for converting existing Win16 applications to run on OS/2.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
The first version was 0.9, announced on February 4, 1991 as Microsoft Windows Libraries for OS/2 Development Kit&amp;lt;ref&amp;gt;https://web.archive.org/web/20060206232522/http://pages.prodigy.net/michaln/history/pr/wlo.html&amp;lt;/ref&amp;gt;&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Wikipedia says April 2, 1987, but this is likely an error, since that pre-dates the release of OS/2 1.0 by a few months.&amp;lt;/ref&amp;gt;. To make matters confusing, as is common with Microsoft, another &amp;quot;advanced&amp;quot; version named 0.9 was distrubuted on Compuserve earlier on January 1, 1991. This version is, according to Microsoft and unlike 0.9 DK, not compatible with later versions. It can be assumed that this is because both the &amp;quot;advanced&amp;quot; 0.9 and 1.0 are based on DLLs, while 0.9 was linked statically (see more in Implementation section).&lt;br /&gt;
&lt;br /&gt;
Version 1.0 was released some time after that, along with a Demonstration Applications distribution (WLO10.ZIP), containing WLO DLLs and the so-called Windows 3.0 accessory applets, which are ports of Calc, Calendar, Cardfile, Clipboard, Clock, Notepad, Paintbrush, Reversi, Solitaire, Windows Help, and Write from Windows 3.0. This is the only known preserved distribution of WLO, hence most of the information in this article is derived from it, if not specified otherwise.&lt;br /&gt;
&lt;br /&gt;
No later version is known to exist, and most likely it doesn&#039;t, since IBM and Microsoft parted ways later in 1991. OS/2 2.0 and later includes WinOS/2, which makes use of 386 specific features; however, WLO 1.0 still works at least up to OS/2 Warp 4.5&amp;lt;ref&amp;gt;https://web.archive.org/web/20011208005210/http://pages.prodigy.net/michaln/history/os213/index.html&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://www.betaarchive.com/forum/viewtopic.php?t=14196&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
IBM mentions using PC-DOS 4.01, OS/2 SE 1.3, Microsoft OS/2 1.2 Toolkit, Microsoft C 6.00A, Windows 3.0 and the corresponding SDK, and IBM OS/2 1.3 toolkit as being used for WLO 0.9 development on their workshop machines. Re-linking with LIBMK_B.LIB, SLIBCEMK.LIB, and 0S2.LIB is all that is needed to port an Windows application to OS/2 using this version of WLO. For DLLs, library initialization source has to be modified, and SDLLCEMK.LIB linked instead of SLIBCEMK.LIB &amp;lt;ref name=&amp;quot;psd&amp;quot;&amp;gt;IBM Personal Systems Developer Magazine, Summer 1991, pages 32-38.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A similar approach using just Microsoft C 6.00A and Windows 3.0 SDK on FLAGGEN, linking with Windows libraries (since no special libraries are required for WLO 1.0), works on OS/2 1.3, but it produces non-working binaries that call INT 21h.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
Unlike the later WinOS/2, no virtualization is used to implement WLO. Instead, it makes use of the fact OS/2 and Windows executables have the same format, which is [[New Executable]] (NE, sometimes also called segmented executable). This is a rather complicated format, the precise description of which is out of the scope of this article. What is important here is that it contains a &#039;&#039;module reference&#039;&#039; and &#039;&#039;imported names&#039;&#039; table, which specify which modules are used by the program&amp;lt;ref&amp;gt;https://www.pcjs.org/documents/books/mspl13/msdos/encyclopedia/appendix-k/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
These are usually at the beginning of the file, hence they can be analyzed using simple string extraction:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ strings ie5win31.exe | head&lt;br /&gt;
This is a Windows self-extracting ZIP file.  You can run it from&lt;br /&gt;
Windows or unzip it with a utility like WinZip or PKUNZIP.$&lt;br /&gt;
WZ-SE-01&lt;br /&gt;
KERNEL&lt;br /&gt;
KEYBOARD&lt;br /&gt;
USER&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here, the module names are KERNEL, KEYBOARD, and USER. These correspond to other New Executable files and contain functions that can be imported into and used to by the original program (more precisely, for this case these contain the functions exported by Windows itself). Windows can have various extensions here, for example on Windows 3.0, the corresponding files are KERNEL.EXE, USER.EXE, and KEYBOARD.DRV (all in C:\WINDOWS\SYSTEM), however, these are, in fact, of course all NE executables.&lt;br /&gt;
&lt;br /&gt;
WLO ships its own version of these Windows modules, which are named KERNEL.DLL, USER.DLL, and KEYBOARD.DLL, and reside in C:\OS2\DLL (which is one of the default library paths, hence they will be found when launching an Windows executable). These are essentially a Windows implementation on top of OS/2 instead of DOS, making use of Presentation Manager for GUI.&lt;br /&gt;
&lt;br /&gt;
When a Windows executable is launched on a OS/2 system with WLO installed, it is treated the same as an OS/2 executable linking to the aforementioned modules; if you are lucky (see the compatibility section below), it will work as expected. On WLO 0.9, relinking was necessary, but with WLO 1.0, this is no longer required&amp;lt;ref name=&amp;quot;psd&amp;quot;/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Interface compatibility ==&lt;br /&gt;
&lt;br /&gt;
WLO implements the vast majority of functions in GDI, KERNEL, KEYBOARD, SOUND, SYSTEM, and USER. Currently only functions known to be missing are functions called by integral parts of Windows like Program Manager.&lt;br /&gt;
&lt;br /&gt;
== Compatibility of executables ==&lt;br /&gt;
[[File:Stock CLOCK.EXE error under WLO.png|thumb|Trap triggered by an attempted INT 21h call from Windows 3.0&#039;s CLOCK.EXE. Note the AH value of 0x2C &amp;quot;Get system time&amp;quot;.]]&lt;br /&gt;
&lt;br /&gt;
Generally, Windows binaries that only use the C runtime and Windows functions should run without issue under WLO, provided they only use Win16 interfaces implemented by WLO (see above). Binaries using direct DOS calls using INT 21h or similar will trap, since this interface is not present under OS/2&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Under real-mode Windows, these are handled by the underlying DOS directly; protected mode Windows works as a DOS extender.&amp;lt;/ref&amp;gt;; DOS calls can still be accessed via KERNEL.DOS3CALL. These include stock Windows 3.0 applications like CLOCK (traps on DOS call to get time) and NOTEPAD (traps on DOS call to exit program).&lt;br /&gt;
&lt;br /&gt;
Some (but not all) applications other than WLO applets display a compatiblity warning (&amp;quot;Application has not been tested to run compatibly on OS/2. Choose Cancel to quite or OK to proceed. If you choose OK, the application could terminate unexpectedly&amp;quot;). Setting OS2EXEFlags to 0x80, as done by the WLO SDK tool MARKWLO.EXE&amp;lt;ref&amp;gt;IBM OS/2 Developer&#039;s Toolkit Version 4.5 newexe.h&amp;lt;/ref&amp;gt;, removes the warning (tested on [[Progress Pride Flag Generator for Windows 3.1|FLAGGEN.EXE]]).&lt;br /&gt;
&lt;br /&gt;
Some applications, for example CONTROL.EXE and PROGMAN.EXE from Windows 3.0, are missing functions in DLLs, and fail with &amp;quot;SYS0182: The operating system cannot run %1.&amp;quot;&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;While this is not officially confirmed to be the meaning of the error, it is heavily implied, since it is reported to happen when 1.2 DLLs are used with 1.3 code, and also happens when running 2.0 applications on 1.3.&amp;lt;/ref&amp;gt;. Others, for example RECORDER.EXE, and most programs for Windows 3.1 (including PBRUSH.EXE, whose 3.0 version works), are missing DLLs, and fail with a rather generic error &amp;quot;Cannot find the file or directory. Be sure that the path(s) and file name(s) are entered correctly. (PMV1024)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Compatibility of DLLs ==&lt;br /&gt;
&lt;br /&gt;
TODO: Add information from IBM PSD and do research on WLO 1.0&lt;br /&gt;
&lt;br /&gt;
== Co-existing with WinOS/2 ==&lt;br /&gt;
&lt;br /&gt;
On OS/2 2.0 and above, Win16 applications are run under WinOS/2, if installed. Executables with OS2EXEFlags set to 0x80 will run under WLO when launched via the command line, but will still run under WinOS/2 when launched through Workspace Shell. The WLO applets always launch with WLO, which hints at them being marked in another way in addition to OS2EXEFlags.&lt;br /&gt;
&lt;br /&gt;
yksoft1 mentions in the BetaArchive post referenced earlier using a special &amp;quot;WLO&#039;s&amp;quot; stub and changing a byte to create a WLO executable from Windows 3.0 SDK examples. There is indeed a specific MS-DOS stub in the WLO applets (in contrast with their Windows 3.0 counterparts, whose MS-DOS stub only displays &amp;quot;Cannot be run in DOS mode&amp;quot;); when run in DOS mode, it prints &#039;&amp;lt;executable-name&amp;gt;: can&#039;t open quotefile &amp;quot;quotes.txt&amp;quot;&#039;, pauses for a few seconds and exits. If quotes.txt exists, it prints its contents instead of the error mesasge. This stub somehow prevents the binary from being launched under WinOS/2; whether it is intentional is not clear.&lt;br /&gt;
&lt;br /&gt;
WLO 0.9 did not have the stub, at least from what is known from the description on how a WLO 0.9 binary is created in IBM PSD.&lt;br /&gt;
&lt;br /&gt;
== Static version of WLO ==&lt;br /&gt;
&lt;br /&gt;
TODO: Microsoft Word and Excel for OS/2&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1168</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1168"/>
		<updated>2023-02-25T10:11:47Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added detailed information about Concurrent CP/M-86 3.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
[[File:CP M-86 version timeline, revision 1.png|thumb|Timeline of CP/M-86 versions up to Concurrent PC DOS 3.2]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Is it possible to reconstruct the original .CON, .MPM and .H86 files (eventually .A86 disassembled source) from built CPM.SYS, MPM.SYS, PCPM.SYS, and DOSPLUS.SYS kernels? How difficult is it? (The CP/M-86 1.1 BIOS linked below was reconstructed this way, disassembled and annotated.)&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 Plus 1.0 for Apricot PC || 3.1 || November 1983&amp;lt;sup&amp;gt;Installation guide&amp;lt;/sup&amp;gt; || Likely Concurrent CP/M-86 2.0, partly CP/M-86 1.1&amp;lt;ref group=&amp;quot;note&amp;gt;This is a hybrid version between CP/M-86 and CCP/M, having CCP/M&#039;s multitasking and BDOS, but CP/M-86&#039;s CCP and simple kernel structure&amp;lt;/ref&amp;gt; || Simple multitasking || ? || [https://archive.computerhistory.org/resources/access/text/2016/12/102762495-05-01-acc.pdf Installation guide]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. Minimum RAM required for the system to boot is 32kB, although at least 48kB is needed to fit a non-trivial application like PIP and STAT.&lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
=== Concurrent CP/M-86 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:Concurrent CPM 1.0 command prompt in 86box.png|thumb|Concurrent CPM 1.0 booted in 86box (IBM PC 1982)]]&lt;br /&gt;
&lt;br /&gt;
While CP/M-86 for IBM PC&#039;s only major advantage over PC DOS was easier porting of existing CP/M-80 software, Digital Research also had MP/M-86, an 8086 port of the ambitious multiuser multi-terminal MP/M operating system. The IBM PC was, however, meant to be used by a single user. Digital Research decided to add virtual screens into MP/M-86; the result was released as Concurrent CP/M-86 1.0 a few months after CP/M-86 for IBM PC 1.0.&lt;br /&gt;
&lt;br /&gt;
Concurrent CP/M-86 1.0 has four virtual screens, each one of which can run a CP/M-86 program, enabling users to upgrade their IBM PC hardware to a multitasking OS while keeping their old software. The OS is however limited by both disk space and RAM, since its kernel is 92kB large (compare to CP/M-86 1.1 kernel, which is only 18kB). This makes the system require two 160k floppies to run, the first one for the kernel and help file, the second one for the rest of the system utilities. The maximum memory of the IBM PC is only 256kB, which imposes limitations on how the system is used in practice; with four parallel programs and a ramdisk, one might easily run out of memory.&lt;br /&gt;
&lt;br /&gt;
To make working with a two-floppy system easier, a program named SYSDISK is used specify a &amp;quot;system disk&amp;quot;, which is a primitive analogue of Unix PATH: if a program is not found on the current drive, it is searched on the system disk (B: by default). For example if you replace the system disk 1 in drive A: with WordStar, you can still run system commands present on drive B: without switching the default drive or prefixing the command with B:.&lt;br /&gt;
&lt;br /&gt;
A slightly unexpected incompatibility is found with the shell, which is not CCP used in CP/M-86, but a slighly more complex equivalent from MP/M-86 called Terminal Message Process. Known differences include the absence of a DIRS command, DIR [SYS] being used instead to list system files, and more detailed error messages like &amp;quot;Can&#039;t Find Command&amp;quot;, &amp;quot;Bad File Spec&amp;quot;, or &amp;quot;Bdos Err On X: Select&amp;quot; insteaf of &amp;quot;COMMAND?&amp;quot; and &amp;quot;X:?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.1 and CP/M-86 for IBM PC XT 1.1 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:CPM-86 1.1 for IBM PC boot screen.png|thumb|CP/M-86 1.1 for IBM PC booted on 86box&lt;br /&gt;
File:CPM-86 1.1 SETUP utility.png|thumb|CP/M-86 1.1 SETUP utility main screen on 86box&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With a kernel timestamp of March 1983, CP/M-86 for IBM PC 1.1 is an update to CP/M-86 for IBM PC 1.0, suited for situations where one wants to save RAM at the cost of multitasking. Despite being released around the time of the IBM PC XT, its initial version had no fixed disk support. Overall, it is very similar to CP/M-86 1.0, for example it has the same memory requirements. A change visible at first glance is a colored status bar and a new boot message displayed by the new bootloader, which now loads the CP/M-86 kernel from a file named CPM.SYS. For the bootloader to work, CPM.SYS has to be the first file on the floppy.&lt;br /&gt;
&lt;br /&gt;
Command line tools COPYDISK, NEWDISK, FUNCTION, PROTOCOL, and SPEED from CP/M-86 1.1 were replaced with text user interface programs DSKMAINT, FUNCTION, and CONFIG. A new TUI tool called SETUP was instroduced, which allows the configuration of hardware parameters in the kernel and additional functions. Power-On Command Line allows the user to include a command that will be launched on boot; it can only run one command, for running multiple commands, SUBMIT must be used. Memory Disk allows allocating a portion of RAM to store files, which was a key functionality for CP/M-86, since disk access was slowed down by to both hardware limitations and system calls going through several layers (BDOS, CP/M-86 BIOS, IBM PC BIOS).&lt;br /&gt;
&lt;br /&gt;
A later release from August 1983 added fixed disk support, again coming late compared to PC DOS 2.0 released with the IBM PC XT. Also unlike PC DOS 2.0, which was an ambitious release with many new features, CP/M-86 still has no directory support and lacks any Unix compatibility. The HDMAINT utility was added for hard drive formatting, which together with the bigger kernel causes the system not to fit on a single-sided 160k floppy anymore, hence this version is distributed on a double-sided 320k floppy.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 Plus 1.0 and derivatives ===&lt;br /&gt;
&lt;br /&gt;
[[File:Personal CPM 2.0 for Siemens SICOMP PC 16-20.png|thumb|Personal CPM 2.0 for PC 16-20, a derivative of CP/M-86 Plus, running in 86box]]&lt;br /&gt;
&lt;br /&gt;
CP/M-86 Plus is a relatively unknown version of CP/M-86 created sometimes around November 1983 (based on its installation guide date), initially for the Apricot PC. It combines some MP/M-86 features with the more lightweight CP/M-86, in parallel to CP/M 3 (also called CP/M Plus) for Intel 8080 systems. It also includes some calls that are not in MP/M-86 and Concurrent CP/M-86, but are in CP/M 3. Like MP/M, its kernel CPMP.SYS is build with a GENSYS utility, called GENCPM. A notable difference from MP/M is the use of the classical CP/M BIOS, BDOS, CCP architecture of the kernel; a new feature of CP/M-86 Plus is the CCP being optionally outside the kernel as CCP.CMD.&lt;br /&gt;
&lt;br /&gt;
Some sources claim that CP/M-86 Plus was never released&amp;lt;ref&amp;gt;https://computer.fandom.com/wiki/CP/M-86&amp;lt;/ref&amp;gt;, however, others mention it was released for the Apricot PC, and there are screenshots of it running on an Apricot emulator&amp;lt;ref&amp;gt;http://www.seasip.info/Unix/QDAE/screens.html&amp;lt;/ref&amp;gt;. Personal CP/M-86, released for the Apricot PC and for Siemens industrial computers, and DOS Plus are derivatives of CP/M-86 Plus. &lt;br /&gt;
&lt;br /&gt;
Siemens PC16-20 is compatible with IBM PC, hence Personal CP/M-86 2.0 for PC16-20 also runs on PC hardware. Its internal version number 1.2 and BDOS version 4.1 suggest a close relationship to DOS Plus 1.2, and its CCP.CMD can be run on DOS Plus. Unlike proper versions of CP/M-86 for the IBM PC, it seems to lack single-sided floppy support.&lt;br /&gt;
&lt;br /&gt;
=== Concurrent CP/M-86 3.1 for IBM PC ===&lt;br /&gt;
&lt;br /&gt;
Concurrent CP/M-86 3.1 brings the features of CP/M-86 for IBM PC XT 1.1 like colored status bar and fixed disk support to the Concurrent CP/M-86 line. Like its predecessors, it runs from two floppies with the help of SYSDISK. There is a special release for IBM PC with Starlink communication card, which is the only preserved full release; we have only the first floppy for regular IBM PC, nevertheless it is enough to boot the system because the Starlink release only differs in the kernel.&lt;br /&gt;
&lt;br /&gt;
A new feature of Concurrent CP/M-86 3.1 is windowing: the ability to see more than one virtual screen at once by splitting the physical screens into separate rectangles. It also allows each window to have different colors. The WINDOW tool is used to set up windows from the command line; alternatively, WMENU installs the window manager, allowing interactive manipulation of windows.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
A: No. DOS layer is built into the kernel.&lt;br /&gt;
&lt;br /&gt;
Q: What does LOADCCPM.COM on Concurrent DOS (3.2, 4.1) do?&lt;br /&gt;
&lt;br /&gt;
A: It loads the Concurrent DOS kernel and replaces the running version of DOS with Concurrent DOS. Somehow paradoxically, the boot disks of CDOS 3.2 and 4.1 are CP/M-86 floppies, making LOADCCPM.COM effectively only usable from other Concurrent DOS systems.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1164</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1164"/>
		<updated>2023-02-21T19:12:27Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* typo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
[[File:CP M-86 version timeline, revision 1.png|thumb|Timeline of CP/M-86 versions up to Concurrent PC DOS 3.2]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Is it possible to reconstruct the original .CON, .MPM and .H86 files (eventually .A86 disassembled source) from built CPM.SYS, MPM.SYS, PCPM.SYS, and DOSPLUS.SYS kernels? How difficult is it? (The CP/M-86 1.1 BIOS linked below was reconstructed this way, disassembled and annotated.)&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 Plus 1.0 for Apricot PC || 3.1 || November 1983&amp;lt;sup&amp;gt;Installation guide&amp;lt;/sup&amp;gt; || Likely Concurrent CP/M-86 2.0, partly CP/M-86 1.1&amp;lt;ref group=&amp;quot;note&amp;gt;This is a hybrid version between CP/M-86 and CCP/M, having CCP/M&#039;s multitasking and BDOS, but CP/M-86&#039;s CCP and simple kernel structure&amp;lt;/ref&amp;gt; || Simple multitasking || ? || [https://archive.computerhistory.org/resources/access/text/2016/12/102762495-05-01-acc.pdf Installation guide]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. Minimum RAM required for the system to boot is 32kB, although at least 48kB is needed to fit a non-trivial application like PIP and STAT.&lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
=== Concurrent CP/M-86 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:Concurrent CPM 1.0 command prompt in 86box.png|thumb|Concurrent CPM 1.0 booted in 86box (IBM PC 1982)]]&lt;br /&gt;
&lt;br /&gt;
While CP/M-86 for IBM PC&#039;s only major advantage over PC DOS was easier porting of existing CP/M-80 software, Digital Research also had MP/M-86, an 8086 port of the ambitious multiuser multi-terminal MP/M operating system. The IBM PC was, however, meant to be used by a single user. Digital Research decided to add virtual screens into MP/M-86; the result was released as Concurrent CP/M-86 1.0 a few months after CP/M-86 for IBM PC 1.0.&lt;br /&gt;
&lt;br /&gt;
Concurrent CP/M-86 1.0 has four virtual screens, each one of which can run a CP/M-86 program, enabling users to upgrade their IBM PC hardware to a multitasking OS while keeping their old software. The OS is however limited by both disk space and RAM, since its kernel is 92kB large (compare to CP/M-86 1.1 kernel, which is only 18kB). This makes the system require two 160k floppies to run, the first one for the kernel and help file, the second one for the rest of the system utilities. The maximum memory of the IBM PC is only 256kB, which imposes limitations on how the system is used in practice; with four parallel programs and a ramdisk, one might easily run out of memory.&lt;br /&gt;
&lt;br /&gt;
To make working with a two-floppy system easier, a program named SYSDISK is used specify a &amp;quot;system disk&amp;quot;, which is a primitive analogue of Unix PATH: if a program is not found on the current drive, it is searched on the system disk (B: by default). For example if you replace the system disk 1 in drive A: with WordStar, you can still run system commands present on drive B: without switching the default drive or prefixing the command with B:.&lt;br /&gt;
&lt;br /&gt;
A slightly unexpected incompatibility is found with the shell, which is not CCP used in CP/M-86, but a slighly more complex equivalent from MP/M-86 called Terminal Message Process. Known differences include the absence of a DIRS command, DIR [SYS] being used instead to list system files, and more detailed error messages like &amp;quot;Can&#039;t Find Command&amp;quot;, &amp;quot;Bad File Spec&amp;quot;, or &amp;quot;Bdos Err On X: Select&amp;quot; insteaf of &amp;quot;COMMAND?&amp;quot; and &amp;quot;X:?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.1 and CP/M-86 for IBM PC XT 1.1 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:CPM-86 1.1 for IBM PC boot screen.png|thumb|CP/M-86 1.1 for IBM PC booted on 86box&lt;br /&gt;
File:CPM-86 1.1 SETUP utility.png|thumb|CP/M-86 1.1 SETUP utility main screen on 86box&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With a kernel timestamp of March 1983, CP/M-86 for IBM PC 1.1 is an update to CP/M-86 for IBM PC 1.0, suited for situations where one wants to save RAM at the cost of multitasking. Despite being released around the time of the IBM PC XT, its initial version had no fixed disk support. Overall, it is very similar to CP/M-86 1.0, for example it has the same memory requirements. A change visible at first glance is a colored status bar and a new boot message displayed by the new bootloader, which now loads the CP/M-86 kernel from a file named CPM.SYS. For the bootloader to work, CPM.SYS has to be the first file on the floppy.&lt;br /&gt;
&lt;br /&gt;
Command line tools COPYDISK, NEWDISK, FUNCTION, PROTOCOL, and SPEED from CP/M-86 1.1 were replaced with text user interface programs DSKMAINT, FUNCTION, and CONFIG. A new TUI tool called SETUP was instroduced, which allows the configuration of hardware parameters in the kernel and additional functions. Power-On Command Line allows the user to include a command that will be launched on boot; it can only run one command, for running multiple commands, SUBMIT must be used. Memory Disk allows allocating a portion of RAM to store files, which was a key functionality for CP/M-86, since disk access was slowed down by to both hardware limitations and system calls going through several layers (BDOS, CP/M-86 BIOS, IBM PC BIOS).&lt;br /&gt;
&lt;br /&gt;
A later release from August 1983 added fixed disk support, again coming late compared to PC DOS 2.0 released with the IBM PC XT. Also unlike PC DOS 2.0, which was an ambitious release with many new features, CP/M-86 still has no directory support and lacks any Unix compatibility. The HDMAINT utility was added for hard drive formatting, which together with the bigger kernel causes the system not to fit on a single-sided 160k floppy anymore, hence this version is distributed on a double-sided 320k floppy.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 Plus 1.0 and derivatives ===&lt;br /&gt;
&lt;br /&gt;
[[File:Personal CPM 2.0 for Siemens SICOMP PC 16-20.png|thumb|Personal CPM 2.0 for PC 16-20, a derivative of CP/M-86 Plus, running in 86box]]&lt;br /&gt;
&lt;br /&gt;
CP/M-86 Plus is a relatively unknown version of CP/M-86 created sometimes around November 1983 (based on its installation guide date), initially for the Apricot PC. It combines some MP/M-86 features with the more lightweight CP/M-86, in parallel to CP/M 3 (also called CP/M Plus) for Intel 8080 systems. It also includes some calls that are not in MP/M-86 and Concurrent CP/M-86, but are in CP/M 3. Like MP/M, its kernel CPMP.SYS is build with a GENSYS utility, called GENCPM. A notable difference from MP/M is the use of the classical CP/M BIOS, BDOS, CCP architecture of the kernel; a new feature of CP/M-86 Plus is the CCP being optionally outside the kernel as CCP.CMD.&lt;br /&gt;
&lt;br /&gt;
Some sources claim that CP/M-86 Plus was never released&amp;lt;ref&amp;gt;https://computer.fandom.com/wiki/CP/M-86&amp;lt;/ref&amp;gt;, however, others mention it was released for the Apricot PC, and there are screenshots of it running on an Apricot emulator&amp;lt;ref&amp;gt;http://www.seasip.info/Unix/QDAE/screens.html&amp;lt;/ref&amp;gt;. Personal CP/M-86, released for the Apricot PC and for Siemens industrial computers, and DOS Plus are derivatives of CP/M-86 Plus. &lt;br /&gt;
&lt;br /&gt;
Siemens PC16-20 is compatible with IBM PC, hence Personal CP/M-86 2.0 for PC16-20 also runs on PC hardware. Its internal version number 1.2 and BDOS version 4.1 suggest a close relationship to DOS Plus 1.2, and its CCP.CMD can be run on DOS Plus. Unlike proper versions of CP/M-86 for the IBM PC, it seems to lack single-sided floppy support.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
A: No. DOS layer is built into the kernel.&lt;br /&gt;
&lt;br /&gt;
Q: What does LOADCCPM.COM on Concurrent DOS (3.2, 4.1) do?&lt;br /&gt;
&lt;br /&gt;
A: It loads the Concurrent DOS kernel and replaces the running version of DOS with Concurrent DOS. Somehow paradoxically, the boot disks of CDOS 3.2 and 4.1 are CP/M-86 floppies, making LOADCCPM.COM effectively only usable from other Concurrent DOS systems.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1163</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1163"/>
		<updated>2023-02-21T18:45:44Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Expanded detailed description of CP/M-86 Plus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
[[File:CP M-86 version timeline, revision 1.png|thumb|Timeline of CP/M-86 versions up to Concurrent PC DOS 3.2]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Is it possible to reconstruct the original .CON, .MPM and .H86 files (eventually .A86 disassembled source) from built CPM.SYS, MPM.SYS, PCPM.SYS, and DOSPLUS.SYS kernels? How difficult is it? (The CP/M-86 1.1 BIOS linked below was reconstructed this way, disassembled and annotated.)&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 Plus 1.0 for Apricot P || 3.1 || November 1983&amp;lt;sup&amp;gt;Installation guide&amp;lt;/sup&amp;gt; || Likely Concurrent CP/M-86 2.0, partly CP/M-86 1.1&amp;lt;ref group=&amp;quot;note&amp;gt;This is a hybrid version between CP/M-86 and CCP/M, having CCP/M&#039;s multitasking and BDOS, but CP/M-86&#039;s CCP and simple kernel structure&amp;lt;/ref&amp;gt; || Simple multitasking || ? || [https://archive.computerhistory.org/resources/access/text/2016/12/102762495-05-01-acc.pdf Installation guide]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. Minimum RAM required for the system to boot is 32kB, although at least 48kB is needed to fit a non-trivial application like PIP and STAT.&lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
=== Concurrent CP/M-86 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:Concurrent CPM 1.0 command prompt in 86box.png|thumb|Concurrent CPM 1.0 booted in 86box (IBM PC 1982)]]&lt;br /&gt;
&lt;br /&gt;
While CP/M-86 for IBM PC&#039;s only major advantage over PC DOS was easier porting of existing CP/M-80 software, Digital Research also had MP/M-86, an 8086 port of the ambitious multiuser multi-terminal MP/M operating system. The IBM PC was, however, meant to be used by a single user. Digital Research decided to add virtual screens into MP/M-86; the result was released as Concurrent CP/M-86 1.0 a few months after CP/M-86 for IBM PC 1.0.&lt;br /&gt;
&lt;br /&gt;
Concurrent CP/M-86 1.0 has four virtual screens, each one of which can run a CP/M-86 program, enabling users to upgrade their IBM PC hardware to a multitasking OS while keeping their old software. The OS is however limited by both disk space and RAM, since its kernel is 92kB large (compare to CP/M-86 1.1 kernel, which is only 18kB). This makes the system require two 160k floppies to run, the first one for the kernel and help file, the second one for the rest of the system utilities. The maximum memory of the IBM PC is only 256kB, which imposes limitations on how the system is used in practice; with four parallel programs and a ramdisk, one might easily run out of memory.&lt;br /&gt;
&lt;br /&gt;
To make working with a two-floppy system easier, a program named SYSDISK is used specify a &amp;quot;system disk&amp;quot;, which is a primitive analogue of Unix PATH: if a program is not found on the current drive, it is searched on the system disk (B: by default). For example if you replace the system disk 1 in drive A: with WordStar, you can still run system commands present on drive B: without switching the default drive or prefixing the command with B:.&lt;br /&gt;
&lt;br /&gt;
A slightly unexpected incompatibility is found with the shell, which is not CCP used in CP/M-86, but a slighly more complex equivalent from MP/M-86 called Terminal Message Process. Known differences include the absence of a DIRS command, DIR [SYS] being used instead to list system files, and more detailed error messages like &amp;quot;Can&#039;t Find Command&amp;quot;, &amp;quot;Bad File Spec&amp;quot;, or &amp;quot;Bdos Err On X: Select&amp;quot; insteaf of &amp;quot;COMMAND?&amp;quot; and &amp;quot;X:?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.1 and CP/M-86 for IBM PC XT 1.1 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:CPM-86 1.1 for IBM PC boot screen.png|thumb|CP/M-86 1.1 for IBM PC booted on 86box&lt;br /&gt;
File:CPM-86 1.1 SETUP utility.png|thumb|CP/M-86 1.1 SETUP utility main screen on 86box&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With a kernel timestamp of March 1983, CP/M-86 for IBM PC 1.1 is an update to CP/M-86 for IBM PC 1.0, suited for situations where one wants to save RAM at the cost of multitasking. Despite being released around the time of the IBM PC XT, its initial version had no fixed disk support. Overall, it is very similar to CP/M-86 1.0, for example it has the same memory requirements. A change visible at first glance is a colored status bar and a new boot message displayed by the new bootloader, which now loads the CP/M-86 kernel from a file named CPM.SYS. For the bootloader to work, CPM.SYS has to be the first file on the floppy.&lt;br /&gt;
&lt;br /&gt;
Command line tools COPYDISK, NEWDISK, FUNCTION, PROTOCOL, and SPEED from CP/M-86 1.1 were replaced with text user interface programs DSKMAINT, FUNCTION, and CONFIG. A new TUI tool called SETUP was instroduced, which allows the configuration of hardware parameters in the kernel and additional functions. Power-On Command Line allows the user to include a command that will be launched on boot; it can only run one command, for running multiple commands, SUBMIT must be used. Memory Disk allows allocating a portion of RAM to store files, which was a key functionality for CP/M-86, since disk access was slowed down by to both hardware limitations and system calls going through several layers (BDOS, CP/M-86 BIOS, IBM PC BIOS).&lt;br /&gt;
&lt;br /&gt;
A later release from August 1983 added fixed disk support, again coming late compared to PC DOS 2.0 released with the IBM PC XT. Also unlike PC DOS 2.0, which was an ambitious release with many new features, CP/M-86 still has no directory support and lacks any Unix compatibility. The HDMAINT utility was added for hard drive formatting, which together with the bigger kernel causes the system not to fit on a single-sided 160k floppy anymore, hence this version is distributed on a double-sided 320k floppy.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 Plus 1.0 and derivatives ===&lt;br /&gt;
&lt;br /&gt;
[[File:Personal CPM 2.0 for Siemens SICOMP PC 16-20.png|thumb|Personal CPM 2.0 for PC 16-20, a derivative of CP/M-86 Plus, running in 86box]]&lt;br /&gt;
&lt;br /&gt;
CP/M-86 Plus is a relatively unknown version of CP/M-86 created sometimes around November 1983 (based on its installation guide date), initially for the Apricot PC. It combines some MP/M-86 features with the more lightweight CP/M-86, in parallel to CP/M 3 (also called CP/M Plus) for Intel 8080 systems. It also includes some calls that are not in MP/M-86 and Concurrent CP/M-86, but are in CP/M 3. Like MP/M, its kernel CPMP.SYS is build with a GENSYS utility, called GENCPM. A notable difference from MP/M is the use of the classical CP/M BIOS, BDOS, CCP architecture of the kernel; a new feature of CP/M-86 Plus is the CCP being optionally outside the kernel as CCP.CMD.&lt;br /&gt;
&lt;br /&gt;
Some sources claim that CP/M-86 Plus was never released&amp;lt;ref&amp;gt;https://computer.fandom.com/wiki/CP/M-86&amp;lt;/ref&amp;gt;, however, others mention it was released for the Apricot PC, and there are screenshots of it running on an Apricot emulator&amp;lt;ref&amp;gt;http://www.seasip.info/Unix/QDAE/screens.html&amp;lt;/ref&amp;gt;. Personal CP/M-86, released for the Apricot PC and for Siemens industrial computers, and DOS Plus are derivatives of CP/M-86 Plus. &lt;br /&gt;
&lt;br /&gt;
Siemens PC16-20 is compatible with IBM PC, hence Personal CP/M-86 2.0 for PC16-20 also runs on PC hardware. Its internal version number 1.2 and BDOS version 4.1 suggest a close relationship to DOS Plus 1.2, and its CCP.CMD can be run on DOS Plus. Unlike proper versions of CP/M-86 for the IBM PC, it seems to lack single-sided floppy support.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
A: No. DOS layer is built into the kernel.&lt;br /&gt;
&lt;br /&gt;
Q: What does LOADCCPM.COM on Concurrent DOS (3.2, 4.1) do?&lt;br /&gt;
&lt;br /&gt;
A: It loads the Concurrent DOS kernel and replaces the running version of DOS with Concurrent DOS. Somehow paradoxically, the boot disks of CDOS 3.2 and 4.1 are CP/M-86 floppies, making LOADCCPM.COM effectively only usable from other Concurrent DOS systems.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=File:Personal_CPM_2.0_for_Siemens_SICOMP_PC_16-20.png&amp;diff=1162</id>
		<title>File:Personal CPM 2.0 for Siemens SICOMP PC 16-20.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=File:Personal_CPM_2.0_for_Siemens_SICOMP_PC_16-20.png&amp;diff=1162"/>
		<updated>2023-02-21T18:42:50Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Personal CPM 2.0 for PC 16-20, a derivative of CP/M-86 Plus, running in 86box}}&lt;br /&gt;
|date=2023-02-21&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Dr. Shuppet|Dr. Shuppet]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1161</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1161"/>
		<updated>2023-02-20T18:50:02Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added information about CP/M-86 Plus 1.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
[[File:CP M-86 version timeline, revision 1.png|thumb|Timeline of CP/M-86 versions up to Concurrent PC DOS 3.2]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Is it possible to reconstruct the original .CON, .MPM and .H86 files (eventually .A86 disassembled source) from built CPM.SYS, MPM.SYS, PCPM.SYS, and DOSPLUS.SYS kernels? How difficult is it? (The CP/M-86 1.1 BIOS linked below was reconstructed this way, disassembled and annotated.)&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 Plus 1.0 for Apricot P || 3.1 || November 1983&amp;lt;sup&amp;gt;Installation guide&amp;lt;/sup&amp;gt; || Likely Concurrent CP/M-86 2.0, partly CP/M-86 1.1&amp;lt;ref group=&amp;quot;note&amp;gt;This is a hybrid version between CP/M-86 and CCP/M, having CCP/M&#039;s multitasking and BDOS, but CP/M-86&#039;s CCP and simple kernel structure&amp;lt;/ref&amp;gt; || Simple multitasking || ? || [https://archive.computerhistory.org/resources/access/text/2016/12/102762495-05-01-acc.pdf Installation guide]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. Minimum RAM required for the system to boot is 32kB, although at least 48kB is needed to fit a non-trivial application like PIP and STAT.&lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
=== Concurrent CP/M-86 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:Concurrent CPM 1.0 command prompt in 86box.png|thumb|Concurrent CPM 1.0 booted in 86box (IBM PC 1982)]]&lt;br /&gt;
&lt;br /&gt;
While CP/M-86 for IBM PC&#039;s only major advantage over PC DOS was easier porting of existing CP/M-80 software, Digital Research also had MP/M-86, an 8086 port of the ambitious multiuser multi-terminal MP/M operating system. The IBM PC was, however, meant to be used by a single user. Digital Research decided to add virtual screens into MP/M-86; the result was released as Concurrent CP/M-86 1.0 a few months after CP/M-86 for IBM PC 1.0.&lt;br /&gt;
&lt;br /&gt;
Concurrent CP/M-86 1.0 has four virtual screens, each one of which can run a CP/M-86 program, enabling users to upgrade their IBM PC hardware to a multitasking OS while keeping their old software. The OS is however limited by both disk space and RAM, since its kernel is 92kB large (compare to CP/M-86 1.1 kernel, which is only 18kB). This makes the system require two 160k floppies to run, the first one for the kernel and help file, the second one for the rest of the system utilities. The maximum memory of the IBM PC is only 256kB, which imposes limitations on how the system is used in practice; with four parallel programs and a ramdisk, one might easily run out of memory.&lt;br /&gt;
&lt;br /&gt;
To make working with a two-floppy system easier, a program named SYSDISK is used specify a &amp;quot;system disk&amp;quot;, which is a primitive analogue of Unix PATH: if a program is not found on the current drive, it is searched on the system disk (B: by default). For example if you replace the system disk 1 in drive A: with WordStar, you can still run system commands present on drive B: without switching the default drive or prefixing the command with B:.&lt;br /&gt;
&lt;br /&gt;
A slightly unexpected incompatibility is found with the shell, which is not CCP used in CP/M-86, but a slighly more complex equivalent from MP/M-86 called Terminal Message Process. Known differences include the absence of a DIRS command, DIR [SYS] being used instead to list system files, and more detailed error messages like &amp;quot;Can&#039;t Find Command&amp;quot;, &amp;quot;Bad File Spec&amp;quot;, or &amp;quot;Bdos Err On X: Select&amp;quot; insteaf of &amp;quot;COMMAND?&amp;quot; and &amp;quot;X:?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.1 and CP/M-86 for IBM PC XT 1.1 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:CPM-86 1.1 for IBM PC boot screen.png|thumb|CP/M-86 1.1 for IBM PC booted on 86box&lt;br /&gt;
File:CPM-86 1.1 SETUP utility.png|thumb|CP/M-86 1.1 SETUP utility main screen on 86box&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With a kernel timestamp of March 1983, CP/M-86 for IBM PC 1.1 is an update to CP/M-86 for IBM PC 1.0, suited for situations where one wants to save RAM at the cost of multitasking. Despite being released around the time of the IBM PC XT, its initial version had no fixed disk support. Overall, it is very similar to CP/M-86 1.0, for example it has the same memory requirements. A change visible at first glance is a colored status bar and a new boot message displayed by the new bootloader, which now loads the CP/M-86 kernel from a file named CPM.SYS. For the bootloader to work, CPM.SYS has to be the first file on the floppy.&lt;br /&gt;
&lt;br /&gt;
Command line tools COPYDISK, NEWDISK, FUNCTION, PROTOCOL, and SPEED from CP/M-86 1.1 were replaced with text user interface programs DSKMAINT, FUNCTION, and CONFIG. A new TUI tool called SETUP was instroduced, which allows the configuration of hardware parameters in the kernel and additional functions. Power-On Command Line allows the user to include a command that will be launched on boot; it can only run one command, for running multiple commands, SUBMIT must be used. Memory Disk allows allocating a portion of RAM to store files, which was a key functionality for CP/M-86, since disk access was slowed down by to both hardware limitations and system calls going through several layers (BDOS, CP/M-86 BIOS, IBM PC BIOS).&lt;br /&gt;
&lt;br /&gt;
A later release from August 1983 added fixed disk support, again coming late compared to PC DOS 2.0 released with the IBM PC XT. Also unlike PC DOS 2.0, which was an ambitious release with many new features, CP/M-86 still has no directory support and lacks any Unix compatibility. The HDMAINT utility was added for hard drive formatting, which together with the bigger kernel causes the system not to fit on a single-sided 160k floppy anymore, hence this version is distributed on a double-sided 320k floppy.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 Plus 1.0 and derivatives ===&lt;br /&gt;
&lt;br /&gt;
CP/M-86 Plus is a relatively unknown version of CP/M-86 created sometimes around November 1983 (based on its installation guide date), initially for the Apricot PC. It combines some MP/M-86 features with the more lightweight CP/M-86, in parallel to CP/M 3 (also called CP/M Plus) for Intel 8080 systems. It also includes some calls that are not in MP/M-86 and Concurrent CP/M-86, but are in CP/M 3. Like MP/M, its kernel CPMP.SYS is build with a GENSYS utility, called GENCPM. A notable difference from MP/M is the use of the classical CP/M BIOS, BDOS, CCP architecture of the kernel; a new feature of CP/M-86 Plus is the CCP being optionally outside the kernel as CCP.CMD.&lt;br /&gt;
&lt;br /&gt;
Some sources claim that CP/M-86 Plus was never released&amp;lt;ref&amp;gt;https://computer.fandom.com/wiki/CP/M-86&amp;lt;/ref&amp;gt;, however, others mention it was released for the Apricot PC, and there are screenshots of it running on an Apricot emulator&amp;lt;ref&amp;gt;http://www.seasip.info/Unix/QDAE/screens.html&amp;lt;/ref&amp;gt;. Personal CP/M-86, released for the Apricot PC and for Samsung industrial computers, and DOS Plus are derivatives of CP/M-86 Plus.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
A: No. DOS layer is built into the kernel.&lt;br /&gt;
&lt;br /&gt;
Q: What does LOADCCPM.COM on Concurrent DOS (3.2, 4.1) do?&lt;br /&gt;
&lt;br /&gt;
A: It loads the Concurrent DOS kernel and replaces the running version of DOS with Concurrent DOS. Somehow paradoxically, the boot disks of CDOS 3.2 and 4.1 are CP/M-86 floppies, making LOADCCPM.COM effectively only usable from other Concurrent DOS systems.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1160</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1160"/>
		<updated>2023-02-20T17:15:31Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* typo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
[[File:CP M-86 version timeline, revision 1.png|thumb|Timeline of CP/M-86 versions up to Concurrent PC DOS 3.2]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Is it possible to reconstruct the original .CON, .MPM and .H86 files (eventually .A86 disassembled source) from built CPM.SYS, MPM.SYS, PCPM.SYS, and DOSPLUS.SYS kernels? How difficult is it? (The CP/M-86 1.1 BIOS linked below was reconstructed this way, disassembled and annotated.)&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 Plus 1.0 || 3.1 || November 1983&amp;lt;sup&amp;gt;Installation guide&amp;lt;/sup&amp;gt; || Likely Concurrent CP/M-86 2.0, partly CP/M-86 1.1&amp;lt;ref group=&amp;quot;note&amp;gt;This is a hybrid version between CP/M-86 and CCP/M, having CCP/M&#039;s multitasking and BDOS, but CP/M-86&#039;s CCP and simple kernel structure&amp;lt;/ref&amp;gt; || Simple multitasking || ? || [https://archive.computerhistory.org/resources/access/text/2016/12/102762495-05-01-acc.pdf Installation guide]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. Minimum RAM required for the system to boot is 32kB, although at least 48kB is needed to fit a non-trivial application like PIP and STAT.&lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
=== Concurrent CP/M-86 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:Concurrent CPM 1.0 command prompt in 86box.png|thumb|Concurrent CPM 1.0 booted in 86box (IBM PC 1982)]]&lt;br /&gt;
&lt;br /&gt;
While CP/M-86 for IBM PC&#039;s only major advantage over PC DOS was easier porting of existing CP/M-80 software, Digital Research also had MP/M-86, an 8086 port of the ambitious multiuser multi-terminal MP/M operating system. The IBM PC was, however, meant to be used by a single user. Digital Research decided to add virtual screens into MP/M-86; the result was released as Concurrent CP/M-86 1.0 a few months after CP/M-86 for IBM PC 1.0.&lt;br /&gt;
&lt;br /&gt;
Concurrent CP/M-86 1.0 has four virtual screens, each one of which can run a CP/M-86 program, enabling users to upgrade their IBM PC hardware to a multitasking OS while keeping their old software. The OS is however limited by both disk space and RAM, since its kernel is 92kB large (compare to CP/M-86 1.1 kernel, which is only 18kB). This makes the system require two 160k floppies to run, the first one for the kernel and help file, the second one for the rest of the system utilities. The maximum memory of the IBM PC is only 256kB, which imposes limitations on how the system is used in practice; with four parallel programs and a ramdisk, one might easily run out of memory.&lt;br /&gt;
&lt;br /&gt;
To make working with a two-floppy system easier, a program named SYSDISK is used specify a &amp;quot;system disk&amp;quot;, which is a primitive analogue of Unix PATH: if a program is not found on the current drive, it is searched on the system disk (B: by default). For example if you replace the system disk 1 in drive A: with WordStar, you can still run system commands present on drive B: without switching the default drive or prefixing the command with B:.&lt;br /&gt;
&lt;br /&gt;
A slightly unexpected incompatibility is found with the shell, which is not CCP used in CP/M-86, but a slighly more complex equivalent from MP/M-86 called Terminal Message Process. Known differences include the absence of a DIRS command, DIR [SYS] being used instead to list system files, and more detailed error messages like &amp;quot;Can&#039;t Find Command&amp;quot;, &amp;quot;Bad File Spec&amp;quot;, or &amp;quot;Bdos Err On X: Select&amp;quot; insteaf of &amp;quot;COMMAND?&amp;quot; and &amp;quot;X:?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.1 and CP/M-86 for IBM PC XT 1.1 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:CPM-86 1.1 for IBM PC boot screen.png|thumb|CP/M-86 1.1 for IBM PC booted on 86box&lt;br /&gt;
File:CPM-86 1.1 SETUP utility.png|thumb|CP/M-86 1.1 SETUP utility main screen on 86box&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With a kernel timestamp of March 1983, CP/M-86 for IBM PC 1.1 is an update to CP/M-86 for IBM PC 1.0, suited for situations where one wants to save RAM at the cost of multitasking. Despite being released around the time of the IBM PC XT, its initial version had no fixed disk support. Overall, it is very similar to CP/M-86 1.0, for example it has the same memory requirements. A change visible at first glance is a colored status bar and a new boot message displayed by the new bootloader, which now loads the CP/M-86 kernel from a file named CPM.SYS. For the bootloader to work, CPM.SYS has to be the first file on the floppy.&lt;br /&gt;
&lt;br /&gt;
Command line tools COPYDISK, NEWDISK, FUNCTION, PROTOCOL, and SPEED from CP/M-86 1.1 were replaced with text user interface programs DSKMAINT, FUNCTION, and CONFIG. A new TUI tool called SETUP was instroduced, which allows the configuration of hardware parameters in the kernel and additional functions. Power-On Command Line allows the user to include a command that will be launched on boot; it can only run one command, for running multiple commands, SUBMIT must be used. Memory Disk allows allocating a portion of RAM to store files, which was a key functionality for CP/M-86, since disk access was slowed down by to both hardware limitations and system calls going through several layers (BDOS, CP/M-86 BIOS, IBM PC BIOS).&lt;br /&gt;
&lt;br /&gt;
A later release from August 1983 added fixed disk support, again coming late compared to PC DOS 2.0 released with the IBM PC XT. Also unlike PC DOS 2.0, which was an ambitious release with many new features, CP/M-86 still has no directory support and lacks any Unix compatibility. The HDMAINT utility was added for hard drive formatting, which together with the bigger kernel causes the system not to fit on a single-sided 160k floppy anymore, hence this version is distributed on a double-sided 320k floppy.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
A: No. DOS layer is built into the kernel.&lt;br /&gt;
&lt;br /&gt;
Q: What does LOADCCPM.COM on Concurrent DOS (3.2, 4.1) do?&lt;br /&gt;
&lt;br /&gt;
A: It loads the Concurrent DOS kernel and replaces the running version of DOS with Concurrent DOS. Somehow paradoxically, the boot disks of CDOS 3.2 and 4.1 are CP/M-86 floppies, making LOADCCPM.COM effectively only usable from other Concurrent DOS systems.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1159</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1159"/>
		<updated>2023-02-17T16:00:49Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Mentioned HDMAINT for CP/M-86 for IBM PC XT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
[[File:CP M-86 version timeline, revision 1.png|thumb|Timeline of CP/M-86 versions up to Concurrent PC DOS 3.2]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Is it possible to reconstruct the original .CON, .MPM and .H86 files (eventually .A86 disassembled source) from built CPM.SYS, MPM.SYS, PCPM.SYS, and DOSPLUS.SYS kernels? How difficult is it? (The CP/M-86 1.1 BIOS linked below was reconstructed this way, disassembled and annotated.)&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 Plus 1.0 || 3.1 || November 1983&amp;lt;sup&amp;gt;Installation guide&amp;lt;/sup&amp;gt; || Likely Concurrent CP/M-86 2.0, partly CP/M-86 1.1&amp;lt;ref group=&amp;quot;note&amp;gt;This is a hybrid version between CP/M-86 and CCP/M, having CCP/M&#039;s multitasking and BDOS, but CP/M-86&#039;s CCP and simple kernel structure&amp;lt;/ref&amp;gt; || Simple multitasking || ? || [https://archive.computerhistory.org/resources/access/text/2016/12/102762495-05-01-acc.pdf Installation guide]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. Minimum RAM required for the system to boot is 32kB, although at least 48kB is needed to fit a non-trivial application like PIP and STAT.&lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
=== Concurrent CP/M-86 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:Concurrent CPM 1.0 command prompt in 86box.png|thumb|Concurrent CPM 1.0 booted in 86box (IBM PC 1982)]]&lt;br /&gt;
&lt;br /&gt;
While CP/M-86 for IBM PC&#039;s only major advantage over PC DOS was easier porting of existing CP/M-80 software, Digital Research also had MP/M-86, an 8086 port of the ambitious multiuser multi-terminal MP/M operating system. The IBM PC was, however, meant to be used by a single user. Digital Research decided to add virtual screens into MP/M-86; the result was released as Concurrent CP/M-86 1.0 a few months after CP/M-86 for IBM PC 1.0.&lt;br /&gt;
&lt;br /&gt;
Concurrent CP/M-86 1.0 has four virtual screens, each one of which can run a CP/M-86 program, enabling users to upgrade their IBM PC hardware to a multitasking OS while keeping their old software. The OS is however limited by both disk space and RAM, since its kernel is 92kB large (compare to CP/M-86 1.1 kernel, which is only 18kB). This makes the system require two 160k floppies to run, the first one for the kernel and help file, the second one for the rest of the system utilities. The maximum memory of the IBM PC is only 256kB, which imposes limitations on how the system is used in practice; with four parallel programs and a ramdisk, one might easily run out of memory.&lt;br /&gt;
&lt;br /&gt;
To make working with a two-floppy system easier, a program named SYSDISK is used specify a &amp;quot;system disk&amp;quot;, which is a primitive analogue of Unix PATH: if a program is not found on the current drive, it is searched on the system disk (B: by default). For example if you replace the system disk 1 in drive A: with WordStar, you can still run system commands present on drive B: without switching the default drive or prefixing the command with B:.&lt;br /&gt;
&lt;br /&gt;
A slightly unexpected incompatibility is found with the shell, which is not CCP used in CP/M-86, but a slighly more complex equivalent from MP/M-86 called Terminal Message Process. Known differences include the absence of a DIRS command, DIR [SYS] being used instead to list system files, and more detailed error messages like &amp;quot;Can&#039;t Find Command&amp;quot;, &amp;quot;Bad File Spec&amp;quot;, or &amp;quot;Bdos Err On X: Select&amp;quot; insteaf of &amp;quot;COMMAND?&amp;quot; and &amp;quot;X:?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.1 and CP/M-86 for IBM PC XT 1.1 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:CPM-86 1.1 for IBM PC boot screen.png|thumb|CP/M-86 1.1 for IBM PC booted on 86box&lt;br /&gt;
File:CPM-86 1.1 SETUP utility.png|thumb|CP/M-86 1.1 SETUP utility main screen on 86box&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With a kernel timestamp of March 1983, CP/M-86 for IBM PC 1.1 is an update to CP/M-86 for IBM PC 1.0, suited for situations where one wants to save RAM at the cost of multitasking. Despite being released around the time of the IBM PC XT, its initial version had no fixed disk support. Overall, it is very similar to CP/M-86 1.0, for example it has the same memory requirements. A change visible at first glance is a colored status bar and a new boot message displayed by the new bootloader, which now loads the CP/M-86 kernel from a file named CPM.SYS. For the bootloader to work, CPM.SYS has to be the first file on the floppy.&lt;br /&gt;
&lt;br /&gt;
Command line tools COPYDISK, NEWDISK, FUNCTION, PROTOCOL, and SPEED from CP/M-86 1.1 were replaced with text user interface programs DSKMAINT, FUNCTION, and CONFIG. A new TUI tool called SETUP was instroduced, which allows the configuration of hardware parameters in the kernel and additional functions. Power-On Command Line allows the user to include a command that will be launched on boot; it can only run one command, for running multiple commands, SUBMIT must be used. Memory Disk allows allocating a portion of RAM to store files, which was a key functionality for CP/M-86, since disk access was slowed down by to both hardware limitations and system calls going through several layers (BDOS, CP/M-86 BIOS, IBM PC BIOS).&lt;br /&gt;
&lt;br /&gt;
A later release from August 1983 added fixed disk support, again coming late compared to PC DOS 2.0 released with the IBM PC XT. Also unlike PC DOS 2.0, which was an ambitious release with many new features, CP/M-86 still has no directory support and lacks any Unix compatibility. The HDMAINT utility was added for hard drive formatting, which together with the bigger kernel causes the system not to find on a single-sided 160k floppy anymore, hence this version is distributed on a double-sided 320k floppy.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
A: No. DOS layer is built into the kernel.&lt;br /&gt;
&lt;br /&gt;
Q: What does LOADCCPM.COM on Concurrent DOS (3.2, 4.1) do?&lt;br /&gt;
&lt;br /&gt;
A: It loads the Concurrent DOS kernel and replaces the running version of DOS with Concurrent DOS. Somehow paradoxically, the boot disks of CDOS 3.2 and 4.1 are CP/M-86 floppies, making LOADCCPM.COM effectively only usable from other Concurrent DOS systems.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1158</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1158"/>
		<updated>2023-02-17T15:57:26Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added detailed information about CP/M-86 1.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
[[File:CP M-86 version timeline, revision 1.png|thumb|Timeline of CP/M-86 versions up to Concurrent PC DOS 3.2]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Is it possible to reconstruct the original .CON, .MPM and .H86 files (eventually .A86 disassembled source) from built CPM.SYS, MPM.SYS, PCPM.SYS, and DOSPLUS.SYS kernels? How difficult is it? (The CP/M-86 1.1 BIOS linked below was reconstructed this way, disassembled and annotated.)&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 Plus 1.0 || 3.1 || November 1983&amp;lt;sup&amp;gt;Installation guide&amp;lt;/sup&amp;gt; || Likely Concurrent CP/M-86 2.0, partly CP/M-86 1.1&amp;lt;ref group=&amp;quot;note&amp;gt;This is a hybrid version between CP/M-86 and CCP/M, having CCP/M&#039;s multitasking and BDOS, but CP/M-86&#039;s CCP and simple kernel structure&amp;lt;/ref&amp;gt; || Simple multitasking || ? || [https://archive.computerhistory.org/resources/access/text/2016/12/102762495-05-01-acc.pdf Installation guide]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. Minimum RAM required for the system to boot is 32kB, although at least 48kB is needed to fit a non-trivial application like PIP and STAT.&lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
=== Concurrent CP/M-86 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:Concurrent CPM 1.0 command prompt in 86box.png|thumb|Concurrent CPM 1.0 booted in 86box (IBM PC 1982)]]&lt;br /&gt;
&lt;br /&gt;
While CP/M-86 for IBM PC&#039;s only major advantage over PC DOS was easier porting of existing CP/M-80 software, Digital Research also had MP/M-86, an 8086 port of the ambitious multiuser multi-terminal MP/M operating system. The IBM PC was, however, meant to be used by a single user. Digital Research decided to add virtual screens into MP/M-86; the result was released as Concurrent CP/M-86 1.0 a few months after CP/M-86 for IBM PC 1.0.&lt;br /&gt;
&lt;br /&gt;
Concurrent CP/M-86 1.0 has four virtual screens, each one of which can run a CP/M-86 program, enabling users to upgrade their IBM PC hardware to a multitasking OS while keeping their old software. The OS is however limited by both disk space and RAM, since its kernel is 92kB large (compare to CP/M-86 1.1 kernel, which is only 18kB). This makes the system require two 160k floppies to run, the first one for the kernel and help file, the second one for the rest of the system utilities. The maximum memory of the IBM PC is only 256kB, which imposes limitations on how the system is used in practice; with four parallel programs and a ramdisk, one might easily run out of memory.&lt;br /&gt;
&lt;br /&gt;
To make working with a two-floppy system easier, a program named SYSDISK is used specify a &amp;quot;system disk&amp;quot;, which is a primitive analogue of Unix PATH: if a program is not found on the current drive, it is searched on the system disk (B: by default). For example if you replace the system disk 1 in drive A: with WordStar, you can still run system commands present on drive B: without switching the default drive or prefixing the command with B:.&lt;br /&gt;
&lt;br /&gt;
A slightly unexpected incompatibility is found with the shell, which is not CCP used in CP/M-86, but a slighly more complex equivalent from MP/M-86 called Terminal Message Process. Known differences include the absence of a DIRS command, DIR [SYS] being used instead to list system files, and more detailed error messages like &amp;quot;Can&#039;t Find Command&amp;quot;, &amp;quot;Bad File Spec&amp;quot;, or &amp;quot;Bdos Err On X: Select&amp;quot; insteaf of &amp;quot;COMMAND?&amp;quot; and &amp;quot;X:?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.1 and CP/M-86 for IBM PC XT 1.1 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:CPM-86 1.1 for IBM PC boot screen.png|thumb|CP/M-86 1.1 for IBM PC booted on 86box&lt;br /&gt;
File:CPM-86 1.1 SETUP utility.png|thumb|CP/M-86 1.1 SETUP utility main screen on 86box&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With a kernel timestamp of March 1983, CP/M-86 for IBM PC 1.1 is an update to CP/M-86 for IBM PC 1.0, suited for situations where one wants to save RAM at the cost of multitasking. Despite being released around the time of the IBM PC XT, its initial version had no fixed disk support. Overall, it is very similar to CP/M-86 1.0, for example it has the same memory requirements. A change visible at first glance is a colored status bar and a new boot message displayed by the new bootloader, which now loads the CP/M-86 kernel from a file named CPM.SYS. For the bootloader to work, CPM.SYS has to be the first file on the floppy.&lt;br /&gt;
&lt;br /&gt;
Command line tools COPYDISK, NEWDISK, FUNCTION, PROTOCOL, and SPEED from CP/M-86 1.1 were replaced with text user interface programs DSKMAINT, FUNCTION, and CONFIG. A new TUI tool called SETUP was instroduced, which allows the configuration of hardware parameters in the kernel and additional functions. Power-On Command Line allows the user to include a command that will be launched on boot; it can only run one command, for running multiple commands, SUBMIT must be used. Memory Disk allows allocating a portion of RAM to store files, which was a key functionality for CP/M-86, since disk access was slowed down by to both hardware limitations and system calls going through several layers (BDOS, CP/M-86 BIOS, IBM PC BIOS).&lt;br /&gt;
&lt;br /&gt;
A later release from August 1983 added fixed disk support, again coming late compared to PC DOS 2.0 released with the IBM PC XT. Also unlike PC DOS 2.0, which was an ambitious release with many new features, CP/M-86 still has no directory support and lacks any Unix compatibility.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
A: No. DOS layer is built into the kernel.&lt;br /&gt;
&lt;br /&gt;
Q: What does LOADCCPM.COM on Concurrent DOS (3.2, 4.1) do?&lt;br /&gt;
&lt;br /&gt;
A: It loads the Concurrent DOS kernel and replaces the running version of DOS with Concurrent DOS. Somehow paradoxically, the boot disks of CDOS 3.2 and 4.1 are CP/M-86 floppies, making LOADCCPM.COM effectively only usable from other Concurrent DOS systems.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=File:CPM-86_1.1_for_IBM_PC_boot_screen.png&amp;diff=1157</id>
		<title>File:CPM-86 1.1 for IBM PC boot screen.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=File:CPM-86_1.1_for_IBM_PC_boot_screen.png&amp;diff=1157"/>
		<updated>2023-02-17T15:56:06Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=CP/M-86 1.1 for IBM PC booted on 86box}}&lt;br /&gt;
|date=2023-02-17&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Dr. Shuppet|Dr. Shuppet]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=File:CPM-86_1.1_SETUP_utility.png&amp;diff=1156</id>
		<title>File:CPM-86 1.1 SETUP utility.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=File:CPM-86_1.1_SETUP_utility.png&amp;diff=1156"/>
		<updated>2023-02-17T15:56:06Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=CP/M-86 1.1 SETUP utility main screen on 86box}}&lt;br /&gt;
|date=2023-02-17&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Dr. Shuppet|Dr. Shuppet]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1042</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1042"/>
		<updated>2023-02-12T12:06:18Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added detailed information about Concurrent CP/M-86 1.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
[[File:CP M-86 version timeline, revision 1.png|thumb|Timeline of CP/M-86 versions up to Concurrent PC DOS 3.2]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Is it possible to reconstruct the original .CON, .MPM and .H86 files (eventually .A86 disassembled source) from built CPM.SYS, MPM.SYS, PCPM.SYS, and DOSPLUS.SYS kernels? How difficult is it? (The CP/M-86 1.1 BIOS linked below was reconstructed this way, disassembled and annotated.)&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 Plus 1.0 || 3.1 || November 1983&amp;lt;sup&amp;gt;Installation guide&amp;lt;/sup&amp;gt; || Likely Concurrent CP/M-86 2.0, partly CP/M-86 1.1&amp;lt;ref group=&amp;quot;note&amp;gt;This is a hybrid version between CP/M-86 and CCP/M, having CCP/M&#039;s multitasking and BDOS, but CP/M-86&#039;s CCP and simple kernel structure&amp;lt;/ref&amp;gt; || Simple multitasking || ? || [https://archive.computerhistory.org/resources/access/text/2016/12/102762495-05-01-acc.pdf Installation guide]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M.&lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
=== Concurrent CP/M-86 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:Concurrent CPM 1.0 command prompt in 86box.png|thumb|Concurrent CPM 1.0 booted in 86box (IBM PC 1982)]]&lt;br /&gt;
&lt;br /&gt;
While CP/M-86 for IBM PC&#039;s only major advantage over PC DOS was easier porting of existing CP/M-80 software, Digital Research also had MP/M-86, an 8086 port of the ambitious multiuser multi-terminal MP/M operating system. The IBM PC was, however, meant to be used by a single user. Digital Research decided to add virtual screens into MP/M-86; the result was released as Concurrent CP/M-86 1.0 a few months after CP/M-86 for IBM PC 1.0.&lt;br /&gt;
&lt;br /&gt;
Concurrent CP/M-86 1.0 has four virtual screens, each one of which can run a CP/M-86 program, enabling users to upgrade their IBM PC hardware to a multitasking OS while keeping their old software. The OS is however limited by both disk space and RAM, since its kernel is 92kB large (compare to CP/M-86 1.1 kernel, which is only 18kB). This makes the system require two 160k floppies to run, the first one for the kernel and help file, the second one for the rest of the system utilities. The maximum memory of the IBM PC is only 256kB, which imposes limitations on how the system is used in practice; with four parallel programs and a ramdisk, one might easily run out of memory.&lt;br /&gt;
&lt;br /&gt;
To make working with a two-floppy system easier, a program named SYSDISK is used specify a &amp;quot;system disk&amp;quot;, which is a primitive analogue of Unix PATH: if a program is not found on the current drive, it is searched on the system disk (B: by default). For example if you replace the system disk 1 in drive A: with WordStar, you can still run system commands present on drive B: without switching the default drive or prefixing the command with B:.&lt;br /&gt;
&lt;br /&gt;
A slightly unexpected incompatibility is found with the shell, which is not CCP used in CP/M-86, but a slighly more complex equivalent from MP/M-86 called Terminal Message Process. Known differences include the absence of a DIRS command, DIR [SYS] being used instead to list system files, and more detailed error messages like &amp;quot;Can&#039;t Find Command&amp;quot;, &amp;quot;Bad File Spec&amp;quot;, or &amp;quot;Bdos Err On X: Select&amp;quot; insteaf of &amp;quot;COMMAND?&amp;quot; and &amp;quot;X:?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
A: No. DOS layer is built into the kernel.&lt;br /&gt;
&lt;br /&gt;
Q: What does LOADCCPM.COM on Concurrent DOS (3.2, 4.1) do?&lt;br /&gt;
&lt;br /&gt;
A: It loads the Concurrent DOS kernel and replaces the running version of DOS with Concurrent DOS. Somehow paradoxically, the boot disks of CDOS 3.2 and 4.1 are CP/M-86 floppies, making LOADCCPM.COM effectively only usable from other Concurrent DOS systems.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=File:Concurrent_CPM_1.0_command_prompt_in_86box.png&amp;diff=1041</id>
		<title>File:Concurrent CPM 1.0 command prompt in 86box.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=File:Concurrent_CPM_1.0_command_prompt_in_86box.png&amp;diff=1041"/>
		<updated>2023-02-12T11:29:27Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Concurrent CPM 1.0 booted in 86box (IBM PC 1982)}}&lt;br /&gt;
|date=2023-02-12&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Dr. Shuppet|Dr. Shuppet]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1040</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1040"/>
		<updated>2023-02-11T21:27:02Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added timeline diagram */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
[[File:CP M-86 version timeline, revision 1.png|thumb|Timeline of CP/M-86 versions up to Concurrent PC DOS 3.2]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Is it possible to reconstruct the original .CON, .MPM and .H86 files (eventually .A86 disassembled source) from built CPM.SYS, MPM.SYS, PCPM.SYS, and DOSPLUS.SYS kernels? How difficult is it? (The CP/M-86 1.1 BIOS linked below was reconstructed this way, disassembled and annotated.)&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 Plus 1.0 || 3.1 || November 1983&amp;lt;sup&amp;gt;Installation guide&amp;lt;/sup&amp;gt; || Likely Concurrent CP/M-86 2.0, partly CP/M-86 1.1&amp;lt;ref group=&amp;quot;note&amp;gt;This is a hybrid version between CP/M-86 and CCP/M, having CCP/M&#039;s multitasking and BDOS, but CP/M-86&#039;s CCP and simple kernel structure&amp;lt;/ref&amp;gt; || Simple multitasking || ? || [https://archive.computerhistory.org/resources/access/text/2016/12/102762495-05-01-acc.pdf Installation guide]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
A: No. DOS layer is built into the kernel.&lt;br /&gt;
&lt;br /&gt;
Q: What does LOADCCPM.COM on Concurrent DOS (3.2, 4.1) do?&lt;br /&gt;
&lt;br /&gt;
A: It loads the Concurrent DOS kernel and replaces the running version of DOS with Concurrent DOS. Somehow paradoxically, the boot disks of CDOS 3.2 and 4.1 are CP/M-86 floppies, making LOADCCPM.COM effectively only usable from other Concurrent DOS systems.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=File:CP_M-86_version_timeline,_revision_1.png&amp;diff=1039</id>
		<title>File:CP M-86 version timeline, revision 1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=File:CP_M-86_version_timeline,_revision_1.png&amp;diff=1039"/>
		<updated>2023-02-11T21:26:31Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Timeline of CP/M-86 versions up to Concurrent PC DOS 3.2}}&lt;br /&gt;
|date=2023-02-11&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Dr. Shuppet|Dr. Shuppet]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1038</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1038"/>
		<updated>2023-02-11T21:21:36Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added lingering question about kernel source file reconstruction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Is it possible to reconstruct the original .CON, .MPM and .H86 files (eventually .A86 disassembled source) from built CPM.SYS, MPM.SYS, PCPM.SYS, and DOSPLUS.SYS kernels? How difficult is it? (The CP/M-86 1.1 BIOS linked below was reconstructed this way, disassembled and annotated.)&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 Plus 1.0 || 3.1 || November 1983&amp;lt;sup&amp;gt;Installation guide&amp;lt;/sup&amp;gt; || Likely Concurrent CP/M-86 2.0, partly CP/M-86 1.1&amp;lt;ref group=&amp;quot;note&amp;gt;This is a hybrid version between CP/M-86 and CCP/M, having CCP/M&#039;s multitasking and BDOS, but CP/M-86&#039;s CCP and simple kernel structure&amp;lt;/ref&amp;gt; || Simple multitasking || ? || [https://archive.computerhistory.org/resources/access/text/2016/12/102762495-05-01-acc.pdf Installation guide]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
A: No. DOS layer is built into the kernel.&lt;br /&gt;
&lt;br /&gt;
Q: What does LOADCCPM.COM on Concurrent DOS (3.2, 4.1) do?&lt;br /&gt;
&lt;br /&gt;
A: It loads the Concurrent DOS kernel and replaces the running version of DOS with Concurrent DOS. Somehow paradoxically, the boot disks of CDOS 3.2 and 4.1 are CP/M-86 floppies, making LOADCCPM.COM effectively only usable from other Concurrent DOS systems.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1037</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1037"/>
		<updated>2023-02-11T20:34:47Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Answered question about LOADCCPM.COM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 Plus 1.0 || 3.1 || November 1983&amp;lt;sup&amp;gt;Installation guide&amp;lt;/sup&amp;gt; || Likely Concurrent CP/M-86 2.0, partly CP/M-86 1.1&amp;lt;ref group=&amp;quot;note&amp;gt;This is a hybrid version between CP/M-86 and CCP/M, having CCP/M&#039;s multitasking and BDOS, but CP/M-86&#039;s CCP and simple kernel structure&amp;lt;/ref&amp;gt; || Simple multitasking || ? || [https://archive.computerhistory.org/resources/access/text/2016/12/102762495-05-01-acc.pdf Installation guide]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
A: No. DOS layer is built into the kernel.&lt;br /&gt;
&lt;br /&gt;
Q: What does LOADCCPM.COM on Concurrent DOS (3.2, 4.1) do?&lt;br /&gt;
&lt;br /&gt;
A: It loads the Concurrent DOS kernel and replaces the running version of DOS with Concurrent DOS. Somehow paradoxically, the boot disks of CDOS 3.2 and 4.1 are CP/M-86 floppies, making LOADCCPM.COM effectively only usable from other Concurrent DOS systems.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1036</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1036"/>
		<updated>2023-02-11T17:28:00Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Fixed table row order */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
* What does LOADCCPM.COM on Concurrent DOS (3.0, 4.0, 6.0) do? Does it load the DOS compatibility layer somehow? (That would be strange, since it itself has a .COM extension, maybe it is a .CMD file in disguise?) Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 Plus 1.0 || 3.1 || November 1983&amp;lt;sup&amp;gt;Installation guide&amp;lt;/sup&amp;gt; || Likely Concurrent CP/M-86 2.0, partly CP/M-86 1.1&amp;lt;ref group=&amp;quot;note&amp;gt;This is a hybrid version between CP/M-86 and CCP/M, having CCP/M&#039;s multitasking and BDOS, but CP/M-86&#039;s CCP and simple kernel structure&amp;lt;/ref&amp;gt; || Simple multitasking || ? || [https://archive.computerhistory.org/resources/access/text/2016/12/102762495-05-01-acc.pdf Installation guide]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1035</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1035"/>
		<updated>2023-02-11T17:23:55Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Updated information about CP/M-86 Plus 1.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
* What does LOADCCPM.COM on Concurrent DOS (3.0, 4.0, 6.0) do? Does it load the DOS compatibility layer somehow? (That would be strange, since it itself has a .COM extension, maybe it is a .CMD file in disguise?) Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 Plus 1.0 || 3.1 || November 1983&amp;lt;sup&amp;gt;Installation guide&amp;lt;/sup&amp;gt; || Likely Concurrent CP/M-86 2.0, partly CP/M-86 1.1&amp;lt;ref group=&amp;quot;note&amp;gt;This is a hybrid version between CP/M-86 and CCP/M, having CCP/M&#039;s multitasking and BDOS, but CP/M-86&#039;s CCP and simple kernel structure&amp;lt;/ref&amp;gt; || Simple multitasking || ? || [https://archive.computerhistory.org/resources/access/text/2016/12/102762495-05-01-acc.pdf Installation guide]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1034</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1034"/>
		<updated>2023-02-11T17:12:06Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added CP/M Plus 1.0 to table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
* What does LOADCCPM.COM on Concurrent DOS (3.0, 4.0, 6.0) do? Does it load the DOS compatibility layer somehow? (That would be strange, since it itself has a .COM extension, maybe it is a .CMD file in disguise?) Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 Plus 1.0 || 3.1 || November 1983&amp;lt;sup&amp;gt;Installation guide&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1, partly Concurrent CP/M-86 || Simple multitasking || ? || [https://archive.computerhistory.org/resources/access/text/2016/12/102762495-05-01-acc.pdf Installation guide]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1033</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1033"/>
		<updated>2023-02-11T10:32:13Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Corrected information about BDOS versions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, most MP/M-based versions use 3.x and 4.x, Concurrent DOS 6.x uses 6.x.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
* What does LOADCCPM.COM on Concurrent DOS (3.0, 4.0, 6.0) do? Does it load the DOS compatibility layer somehow? (That would be strange, since it itself has a .COM extension, maybe it is a .CMD file in disguise?) Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1032</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1032"/>
		<updated>2023-02-11T09:18:06Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Fixed information about Concurrent PC DOS 3.2 features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
* What does LOADCCPM.COM on Concurrent DOS (3.0, 4.0, 6.0) do? Does it load the DOS compatibility layer somehow? (That would be strange, since it itself has a .COM extension, maybe it is a .CMD file in disguise?) Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windowing, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, windowing, DOS-like shell, DOS application support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1031</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1031"/>
		<updated>2023-02-11T08:06:11Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added Concurrent PC DOS 3.2 into the table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
* What does LOADCCPM.COM on Concurrent DOS (3.0, 4.0, 6.0) do? Does it load the DOS compatibility layer somehow? (That would be strange, since it itself has a .COM extension, maybe it is a .CMD file in disguise?) Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windows, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 || 3.2 || 1984-08-30 || Concurrent CP/M-86 3.1 for IBM PC || Multitasking, virtual screens, DOS-like shell, DOS application  support || All above, PC DOS 2.0 single-side (180k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c397c692-c398-cb9c-c2a6-5b11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent PC DOS 3.2 Maintenance Release  || 3.2 || 1984-10-19 || Concurrent PC DOS 3.2 || Same as above || Same as above || [https://winworldpc.com/download/c3a3e280-b0c5-a11a-c2a6-5c11c3a4c2ac 320k/360k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1030</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1030"/>
		<updated>2023-02-11T07:36:36Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Updated questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CCP/M distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
* What does LOADCCPM.COM on Concurrent DOS (3.0, 4.0, 6.0) do? Does it load the DOS compatibility layer somehow? (That would be strange, since it itself has a .COM extension, maybe it is a .CMD file in disguise?) Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windows, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
Q: Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
&lt;br /&gt;
A: No. The bootloader will load the kernel, which hangs after starting XIOS.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1029</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1029"/>
		<updated>2023-02-10T21:42:44Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added windows to CCP/M 3.0 feature list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CP/M-86 distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
* Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
* What does LOADCCPM.COM on Concurrent DOS (3.0, 4.0, 6.0) do? Does it load the DOS compatibility layer somehow? (That would be strange, since it itself has a .COM extension, maybe it is a .CMD file in disguise?) Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, windows, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1028</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1028"/>
		<updated>2023-02-10T20:07:14Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added Concurrent CP/M-86 3.1 into table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CP/M-86 distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
* Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
* What does LOADCCPM.COM on Concurrent DOS (3.0, 4.0, 6.0) do? Does it load the DOS compatibility layer somehow? (That would be strange, since it itself has a .COM extension, maybe it is a .CMD file in disguise?) Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for IBM PC || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 3.1 for IBM PC || 3.1 || 1984-01-01 || Concurrent CP/M-86 2.0 for IBM PC || Multitasking, virtual screens, DOS application support add-on || Same as above || [https://winworldpc.com/download/c380c388-c3bc-70c3-98c2-b211c3a5c28f 320k floppy 1 (WinWorld)], [http://www.cpm.z80.de/download/ccpmv31.zip source code], [https://winworldpc.com/download/c2bb1e5d-c383-c398-c2b2-11c3a5c28f13 manual (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1027</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1027"/>
		<updated>2023-02-09T22:24:37Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added more lingering questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CP/M-86 distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Does the Concurrent DOS 6.0 P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
* Can Concurrent DOS 6.0 be run from CP/M-86 media? (Manual mentions it, but the system seems to have no CP/M media support outside of CPM.EXE compatibility program.)&lt;br /&gt;
* What does LOADCCPM.COM on Concurrent DOS (3.0, 4.0, 6.0) do? Does it load the DOS compatibility layer somehow? (That would be strange, since it itself has a .COM extension, maybe it is a .CMD file in disguise?) Can Concurrent DOS 6.0 function without DOS layer loaded?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1026</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1026"/>
		<updated>2023-02-09T20:29:29Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Updated questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CP/M-86 distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
* Does the Concurrent DOS P_CLI (Supervisor Command Line Interpreter call) interpreter accept DOS or CP/M-86 commands?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there appears to be (needs confirmation) no Terminal Message Process in the kernel; CDOS.COM, the CDOS variant of COMMAND.COM, is used as the command line interpreter.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1025</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1025"/>
		<updated>2023-02-09T20:06:42Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Expanded note about second 1.1 floppy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CP/M-86 distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The files are mentioned in the release notes, they are not specific to the IBM PC, the example BIOS shown is not for IBM PC. Given the unclear versioning of the files, proof was not yet shown of that it can&#039;t be from CP/M-86 1.0.&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there is no &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1024</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1024"/>
		<updated>2023-02-09T19:59:50Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Moved link to second floppy of 1.1 to IBM PC release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CP/M-86 distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppy 1 + GSX (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip floppy 2 (files only)]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Might be for 1.0&amp;lt;/ref&amp;gt;, [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppy (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there is no &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1023</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1023"/>
		<updated>2023-02-09T19:55:47Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Updated links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CP/M-86 distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code], [https://winworldpc.com/download/c2b03d37-3bc3-98c2-b211-c3a5c28f1352 manuals (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k 1st floppy (WinWorld)], [http://www.cpm.z80.de/download/c8611src.zip second floppy (files only)], [http://www.cpm.z80.de/download/cpm86src.zip BDOS and CCP source code], [https://manualzz.com/doc/19847205/cp-m-86-operating--system-release--1.1-release--notes release notes]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there is no &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1022</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1022"/>
		<updated>2023-02-09T19:42:40Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Updated questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How were resources used to generate the CCPM.SYS kernel distributed? The typical CP/M-86 distribution includes everything to develop programs in assembler (ASM86, GENCMD, DDT86), but not GENCCPM and the .CON files. Generating a kernel is needed to include Resident System Processes, was that reserved to hardware manufacturers only?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== Answered questions ==&lt;br /&gt;
&lt;br /&gt;
Q: How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
A: Power-On Command Line stores a command at a fixed position between the bootstrap loader and the filesystem, from which it is then read by the kernel and executed at boot. CCP/M doesn&#039;t have this feature, instead there is a startup file for each virtual console that runs the command specified in it on boot. The files are named $0$.SUP, ..., $3$.SUP on CCP/M 1.0&amp;lt;ref name=&amp;quot;ccpm10user&amp;quot;&amp;gt;http://www.bitsavers.org/pdf/digitalResearch/concurrent/Concurrent_CPM-86_Users_Guide_Aug82.pdf&amp;lt;/ref&amp;gt; and STARTUP.0, .. STARTUP.3 on newer versions&amp;lt;ref name=&amp;quot;ccpm31user&amp;quot;&amp;gt;https://oldcomputers.dyndns.org/public/pub/manuals/ccpm86ug.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
A: Concurrent DOS implements the FAT filesystem and directory support system calls as a part of BDOS 4.0. Unlike earlier versions of CCP/M, there is no &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1021</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1021"/>
		<updated>2023-02-09T15:08:28Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Removed information about CCP/M 1.0 being based on CP/M-86 1.1, since the former preceeded the later */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
* How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1020</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1020"/>
		<updated>2023-02-09T15:05:10Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Reordered version in table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
* How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || August 1982&amp;lt;sup&amp;gt;User&#039;s Guide&amp;lt;/sup&amp;gt; || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; (kernel), CP/M-86 for IBM PC 1.1&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Based on DDT86 being version 1.2, just like in CP/M-86 1.1, not 1.1 like in CP/M-86 1.0&amp;lt;/ref&amp;gt; (userland) || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || March 1983&amp;lt;sup&amp;gt;Kernel timestamp&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || As above || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || August 1983&amp;lt;sup&amp;gt;BDOS source date&amp;lt;/sup&amp;gt; || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1019</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1019"/>
		<updated>2023-02-08T20:21:56Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added link to CCP/M 2.0 IBM PC source and updated its line in the table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
* How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || 1982 || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || 1982 || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; (kernel), CP/M-86 for IBM PC 1.1&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Based on DDT86 being version 1.2, just like in CP/M-86 1.1, not 1.1 like in CP/M-86 1.0&amp;lt;/ref&amp;gt; (userland) || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || 1983 || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 || 3.1&amp;lt;ref&amp;gt;VCMODE source code&amp;lt;/ref&amp;gt; || 1983-04-30&amp;lt;sup&amp;gt;XIOS source date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || [http://www.cpm.z80.de/download/ccpm8620.zip Source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || Likely 3.1 || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 2.0 || Multitasking, virtual screens || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1018</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1018"/>
		<updated>2023-02-08T16:46:06Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added mention of LMCMD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
* How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || 1982 || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || 1982 || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; (kernel), CP/M-86 for IBM PC 1.1&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Based on DDT86 being version 1.2, just like in CP/M-86 1.1, not 1.1 like in CP/M-86 1.0&amp;lt;/ref&amp;gt; (userland) || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || 1983 || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 || ? || Presumably 1983 || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || Not available&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Disks on WinWorld are mislabeled, they contain a custom build of CP/M-86 1.1 for modern PC hardware&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || ? || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables wit h the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs. CP/M-86 manual also metion a LMCMD program for creating .CMD file from Intel 8086 relocatable object files (which are likely produced by Intel tools like the PL/M compiler&amp;lt;sup&amp;gt;citation needed&amp;lt;/sup&amp;gt;), but the IBM PC distribution doesn&#039;t ship it.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1017</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1017"/>
		<updated>2023-02-08T16:41:39Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added Concurrent CP/M-86 2.0 to table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
* How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || 1982 || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || 1982 || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; (kernel), CP/M-86 for IBM PC 1.1&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Based on DDT86 being version 1.2, just like in CP/M-86 1.1, not 1.1 like in CP/M-86 1.0&amp;lt;/ref&amp;gt; (userland) || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || 1983 || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 || ? || Presumably 1983 || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || ? || Not available&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Disks on WinWorld are mislabeled, they contain a custom build of CP/M-86 1.1 for modern PC hardware&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 2.0 for Texas Instruments Professional Computer || ? || 1983-04-30&amp;lt;sup&amp;gt;XIOS build date&amp;lt;/sup&amp;gt; || Presumably Concurrent CP/M-86 1.0 || Multitasking, virtual screens || IBM PC CP/M double-side (320k) floppy disks,  &amp;quot;Winchester&amp;quot; fixed disk || [https://winworldpc.com/download/fc7cbf87-8998-11e9-ab10-fa163e9022f0 320k floppies (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables with the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1016</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1016"/>
		<updated>2023-02-08T16:24:25Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added reference for BDOS 4.x having directory support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support)&amp;lt;ref name=&amp;quot;bdosapi&amp;quot;&amp;gt;https://www.seasip.info/Cpm/bdos.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
* How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || 1982 || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || 1982 || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; (kernel), CP/M-86 for IBM PC 1.1&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Based on DDT86 being version 1.2, just like in CP/M-86 1.1, not 1.1 like in CP/M-86 1.0&amp;lt;/ref&amp;gt; (userland) || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || 1983 || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables with the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1015</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1015"/>
		<updated>2023-02-08T16:23:10Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added paragraph about BDOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
The most important fact about each version is BDOS, which is the part of the CP/M kernel that interfaces with userspace applications. The BDOS version can be easily deduced via the function 12 system call, however, it doesn&#039;t say everything about the API, since Digital Research didn&#039;t always update the BDOS number when adding new calls. Original CP/M-86 uses BDOS 2.2, earlier MP/M-based versions use 3.x (adding multitasking support)&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot;&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt;, while later MP/M-based versions use 4.x (adding directory support).&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
* How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || 1982 || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref name=&amp;quot;ccpm10prog&amp;quot; /&amp;gt; || 1982 || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; (kernel), CP/M-86 for IBM PC 1.1&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Based on DDT86 being version 1.2, just like in CP/M-86 1.1, not 1.1 like in CP/M-86 1.0&amp;lt;/ref&amp;gt; (userland) || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || 1983 || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables with the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1014</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1014"/>
		<updated>2023-02-08T15:52:56Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added information about CP/M-86 executable format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
* How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || 1982 || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || 1982 || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; (kernel), CP/M-86 for IBM PC 1.1&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Based on DDT86 being version 1.2, just like in CP/M-86 1.1, not 1.1 like in CP/M-86 1.0&amp;lt;/ref&amp;gt; (userland) || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || 1983 || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M. &lt;br /&gt;
&lt;br /&gt;
Unlike DOS, which ships with IBM BASIC as the built-in programming tool, CP/M-86 included ASM86, an 8086 version of the CP/M-80 assembler ASM. The assembler produces .H86 files with machine code, which can be transformed into relocatable executables with the GENCMD utility; this is an improvement upon both CP/M-80 and DOS, both of which use memory images (raw binaries) for programs.&lt;br /&gt;
&lt;br /&gt;
CPM-86 1.0 for IBM PC is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1013</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1013"/>
		<updated>2023-02-08T15:36:35Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added configuration and installation for CP/M-86 1.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
* How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || 1982 || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || 1982 || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; (kernel), CP/M-86 for IBM PC 1.1&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Based on DDT86 being version 1.2, just like in CP/M-86 1.1, not 1.1 like in CP/M-86 1.0&amp;lt;/ref&amp;gt; (userland) || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || 1983 || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M.&lt;br /&gt;
&lt;br /&gt;
It is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation). All configuration is done by command line tools, there is no text user interface.&lt;br /&gt;
&lt;br /&gt;
To create a system floppy, the floppy formatting utility NEWDISK has to be run with the paramter $S ($DS for a double sided disk). This will copy both the bootloader and the bootstrap kernel onto the disk, similarly to what the SYSGEN utility does for CP/M-80.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1012</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1012"/>
		<updated>2023-02-07T21:51:14Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Split based on for CCP/M 1.0 into kernel and userland */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
* How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || 1982 || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || 1982 || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media&amp;lt;/ref&amp;gt; (kernel), CP/M-86 for IBM PC 1.1&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Based on DDT86 being version 1.2, just like in CP/M-86 1.1, not 1.1 like in CP/M-86 1.0&amp;lt;/ref&amp;gt; (userland) || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || 1983 || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M.&lt;br /&gt;
&lt;br /&gt;
It is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1011</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1011"/>
		<updated>2023-02-07T21:43:15Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added lingering questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Lingering questions ==&lt;br /&gt;
&lt;br /&gt;
* How does Power-On Command Line work? Concurrent CP/M-86 doesn&#039;t seem to have a way to edit this in SETUP.CMD, unlike CP/M-86. CCP/M 3.1 HELP for SYSDISK mentions creating a &amp;quot;startup file&amp;quot; to set system disk on boot, how is this related to Power-On Command Line?&lt;br /&gt;
* How is Concurrent DOS implemented? Is it somehow on top of Concurrent CP/M-86 and auto launched on start, or is it baked deeper into the kernel?&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || 1982 || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || 1982 || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media &amp;lt;/ref&amp;gt;, CP/M-86 for IBM PC 1.1&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Based on DDT86 being version 1.2, just like in CP/M-86 1.1, not 1.1 like in CP/M-86 1.0&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || 1983 || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M.&lt;br /&gt;
&lt;br /&gt;
It is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1010</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1010"/>
		<updated>2023-02-07T18:44:59Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || 1982 || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || 1982 || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media &amp;lt;/ref&amp;gt;, CP/M-86 for IBM PC 1.1&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Based on DDT86 being version 1.2, just like in CP/M-86 1.1, not 1.1 like in CP/M-86 1.0&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || 1983 || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M.&lt;br /&gt;
&lt;br /&gt;
It is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1009</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1009"/>
		<updated>2023-02-07T17:50:40Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added MP/M version for CCP/M 1.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || 1982 || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || 1982 || MP/M-86 2.0&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake; version 2.0 is derived from a string in the media &amp;lt;/ref&amp;gt;, CP/M-86 for IBM PC 1.1&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Based on DDT86 being versio 1.2, just like in CP/M-86 1.1, not 1.1 like in CP/M-86 1.0&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || 1983 || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M.&lt;br /&gt;
&lt;br /&gt;
It is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1008</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1008"/>
		<updated>2023-02-07T17:41:57Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added mention of virtual screens for CCP/M-86 1.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || 1982 || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || 1982 || MP/M-86&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake&amp;lt;/ref&amp;gt;, CP/M-86 for IBM PC 1.1&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Based on DDT86 being versio 1.2, just like in CP/M-86 1.1, not 1.1 like in CP/M-86 1.0&amp;lt;/ref&amp;gt; || Multitasking, virtual screens || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || 1983 || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M.&lt;br /&gt;
&lt;br /&gt;
It is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1007</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1007"/>
		<updated>2023-02-07T17:41:07Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added information about Concurrent CP/M-86 1.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || 1982 || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| Concurrent CP/M-86 1.0 || 3.0&amp;lt;ref&amp;gt;Concurrent CP/M-86 1.0 Programmers&#039; Guide&amp;lt;/ref&amp;gt; || 1982 || MP/M-86&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;The Programmers&#039; Guide mentions &amp;quot;MP/M-86 version number&amp;quot; on page 204 for function 163, which is labeled &amp;quot;Return CCP/M Version Number&amp;quot; at page 214, indicating MP/M-86 was left there from previous version by mistake&amp;lt;/ref&amp;gt;, CP/M-86 for IBM PC 1.1&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Based on DDT86 being versio 1.2, just like in CP/M-86 1.1, not 1.1 like in CP/M-86 1.0&amp;lt;/ref&amp;gt; || Multitasking || As above || [https://winworldpc.com/download/c2ae43c3-9cc3-b1c3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c2b035c5-a150-c398-c2b2-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || 1983 || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M.&lt;br /&gt;
&lt;br /&gt;
It is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1006</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1006"/>
		<updated>2023-02-07T16:29:17Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Tidied up table and added CP/M-86 1.1 for PC XT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || - || IBM PC CP/M single-side (160k) and double-side (320k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.1 || 2.2 || 1982 || CP/M-86 for IBM PC 1.0 || - || As above || [http://www.cpm.z80.de/download/cpm86pc.zip 160k floppies (including later GSX)]&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC and IBM PC XT 1.1 || 2.2 || 1983 || CP/M-86 for IBM PC 1.1 || - || IBM PC CP/M single-side (120k) and double-side (320k) floppy disks, IBM XT (and later) fixed disk || [https://winworldpc.com/download/c5be5fc3-8ae2-80a1-c398-c2b211c3a5ef 320k floppies (WinWorld)], [http://www.cpm.z80.de/download/cpm86src.zip kernel source code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M.&lt;br /&gt;
&lt;br /&gt;
It is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1005</id>
		<title>CP/M-86 Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=CP/M-86_Timeline&amp;diff=1005"/>
		<updated>2023-02-07T15:16:30Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: /* Added section about IBM CP/M-86 1.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Preservation and Documentation]]&lt;br /&gt;
This is a project aiming to document the timeline of various versions of the &#039;&#039;&#039;CP/M-86&#039;&#039;&#039; operating system, focusing primarily on those released for the IBM PC.&lt;br /&gt;
&lt;br /&gt;
The various names of the operating system include CP/M-86, CP/M-86 Plus, MP/M-86, Concurrent CP/M-86, Personal CP/M-86, Concurrent DOS, DOS Plus, Concurrent PC DOS (not to be confused with IBM PC DOS), Concurrent DOS 286, Concurrent DOS 386, Concurrent DOS XT, Multiuser DOS (not to be confused with Microsoft&#039;s [[Multitasking DOS 4]]), and FlexOS.&lt;br /&gt;
&lt;br /&gt;
== What to document ==&lt;br /&gt;
&lt;br /&gt;
For each version, the following information is collected into a table:&lt;br /&gt;
&lt;br /&gt;
* Date of release, or at least the year if unknown&lt;br /&gt;
* Release name and version&lt;br /&gt;
* Following patches to the release, if any (e.g. CP/M-86 1.1 for IBM PC XT)&lt;br /&gt;
* BDOS version, as reported by function 12 (MRTVNO)&lt;br /&gt;
* The version&#039;s predecessor, if applicable and interesting&lt;br /&gt;
* Specific API differences, if applicable&lt;br /&gt;
* Present features, especially DOS filesystem support, DOS application support, and multitasking&lt;br /&gt;
* Supported media types (e.g. fixed disk, 160k floppies, ...)&lt;br /&gt;
* Links to preserved copies: source, binaries, and floppy images, both official and unofficial&lt;br /&gt;
* Links to manuals (User&#039;s Guide, System Guide, Programmer&#039;s Guide), DRI manuals are good sources of information&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;CP/M-86 history documentation project&#039;&#039; channel on [[Discord]] is the chat associated with the project, you can join it if you are interested in helping out.&lt;br /&gt;
&lt;br /&gt;
== Timeline table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CP/M-86 Timeline Table&lt;br /&gt;
|-&lt;br /&gt;
! Version name !! BDOS version !! Release date !! Based on !! Features !! Supported media types !! Links&lt;br /&gt;
|-&lt;br /&gt;
| CP/M-86 for IBM PC 1.0 || 2.2 || 1982-04-05&amp;lt;ref&amp;gt;https://books.google.cz/books?id=w_OhaFDePS4C&amp;amp;pg=RA2-PA43&amp;amp;redir_esc=y#v=onepage&amp;amp;q&amp;amp;f=false&amp;lt;/ref&amp;gt; || Presumably CP/M 2.2 || DOS FS: No; DOS EXE: No; Multitasking: No || IBM PC CP/M single-side (120k) and double-side (360k) floppy disks || [https://winworldpc.com/download/c5a106c2-a0c2-8fc3-98c2-b211c3a5c28f 160k floppies (WinWorld)], [https://winworldpc.com/download/c3bfc2bc-c593-4fc5-9272-11c3a5c28f13 Manual (WinWorld)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed information ==&lt;br /&gt;
&lt;br /&gt;
Here you can find detailed information about the most important versions of CP/M-86, which doesn&#039;t fit into the table above.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-86 for IBM PC 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPM-86 1.0 for IBM PC.png|thumb|CP/M-86 1.0 for IBM PC booted on 86box]]&lt;br /&gt;
&lt;br /&gt;
Officially named CP/M-86 for the IBM Personal Computer Version 1.0, this is the first version of CP/M-86 for the IBM PC. It was delayed around eight months after the IBM PC release in August 1981, giving it a late start against IBM PC DOS 1.0, itself a clone of CP/M.&lt;br /&gt;
&lt;br /&gt;
It is an adaptation of the earlier CP/M-86 codebase developed from 1979 to 1981; the dates of 15 December 1981 and 28 December 1981 can be found on the install media. Unlike later versions, the kernel is not contained in a file named CPM.SYS, instead it is loaded by a bootstrap loader from an unknown location after the boot sector and the directory entry table (needs investigation).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
	<entry>
		<id>https://wiki.restless.systems/index.php?title=File:CPM-86_1.0_for_IBM_PC.png&amp;diff=1004</id>
		<title>File:CPM-86 1.0 for IBM PC.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.restless.systems/index.php?title=File:CPM-86_1.0_for_IBM_PC.png&amp;diff=1004"/>
		<updated>2023-02-07T15:16:12Z</updated>

		<summary type="html">&lt;p&gt;Dr. Shuppet: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=CP/M-86 1.0 for IBM PC booted on 86box}}&lt;br /&gt;
|date=2023-02-07&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Dr. Shuppet|Dr. Shuppet]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>Dr. Shuppet</name></author>
	</entry>
</feed>