Talk:CP/M

Graphics
I am not sure if this (from the "History" section) is correct: "There were no operating system support for graphics (images) with 8-bit versions of CP/M. While graphics-capable S100 systems existed from the commercialization of the S100 bus, CP/M did not provide any standardized graphics support until the release of CP/M 3.0 with GEM graphics extensions. Owing to the small memory available, graphics was never a common feature associated with 8-bit CP/M operating systems.". On the (8-bit) Amstrad PCW8256, there was something called GSX (Graphics Systems eXtension?), a library providing graphical drawing functions. I thought this was part of CP/M, but I am not sure, and did not find anything on the net about it. Ahy1 12:45, 23 April 2006 (UTC)


 * You are quite right. Graphical Environment Manager has a chapter on GSX. Though, I'm not sure about the actualy timeframe. See also http://www.seasip.demon.co.uk/Cpm/gsx.html. --Frodet 15:16, 23 April 2006 (UTC)


 * Well, CP/M 3.0 was still an 8-bit OS, so was CP/M Plus, as such the above statement that CP/M lacked graphic screen output only holds true for CP/M 2.2 and earlier. And even then this limitation only strictly applies to the OS core, a lot of manufacturers added their own interfaces to CP/M for system calls to their proprietary graphic routines (robotron and their PC1715 as well as A5105 come to mind). There is probably a need to distinguish between quasi-graphics using ASCII codes >127d and full graphics, allowing to access the video hardware through high-level routines for pixel set, circle, line draw, colours etc pp. Of the latter I know that the robotron A5105 was capable of, however, since the commando economy and the political system that made robotron possible in the first place, vanished in 1990, nothing I know of, has ever been implemented in application software what would otherwise have been a full-graphics capable CP/M 2.2 clone. --schubi42 1;55, 28 September 2011 (IST) — Preceding unsigned comment added by 109.78.127.110 (talk) 00:57, 28 September 2011 (UTC)


 * Contrary to popular belief, GSX was VERY widespread back in the day, almost every CP/M installation came with it. There was an article in a German computer magazine referring to its widespread use, and of its role in portability of graphics code. All the CP/M systems I've seen back in the day had GSX. 2003:C8:BF07:4293:A587:A8A0:E76A:80CB (talk) 10:10, 5 May 2024 (UTC)
 * I missed out on this "GSX" - none of the machines I used (Osborne, Kaypro, Ibex, Megatel Quark) had GSX. How useful would graphics even be with only 64 K of CPU address space? --Wtshymanski (talk) 02:33, 15 May 2024 (UTC)

Open-source Release unmentioned...
I notice that nobody has mentioned the fact that CP/M was released as Open Source software under a BSD-like licence in October 2001...


 * Was it? The FAQ says the source has been released, but alterations and commercial redistrubtution is denied. // Liftarn (talk)

File names and extensions
This is nitpicking, but the current article says "File names consisted of up to 8 characters, a period, then up to three characters as a file name extension." If I recall correctly, the name was eight characters (padded by spaces, not NUL terminated), and each file also had a three character extension (to the name). There was a convention that commands allowed you to write the name and extension together, separated by a period, but the period wasn't part of the name. In a way this was more like the Mac's hidden type and creator codes. Nowadays the period has literally become part of the name, and (alas) the information about the kind of information in a file has become conflated with what it's called. RPTB1 (talk) 15:18, 10 January 2008 (UTC)
 * Well, the directory on disk did not store the "." character in the file name but aside from that, there was practically no way to access a file without using the ., if the file had an extension. Andy Johnson-Laird in the "Programmer's CP/M Handbook" confirms that the file name stored on disk was 8+3 characters and that unused characters are filled with spaces, not NUL. I don't have a live cP/M system handy to test this but as I recall but if you wanted to run (or copy or move or delete) WS.COM, you could type WS or WS.COM but not WSCOM - so in that sense the period was a part of the file name even if it was not stored in the disk directory. --Wtshymanski (talk) 18:00, 10 January 2008 (UTC)
 * Yes, that's how I recall it, and how I see it.   D b f i r s   20:48, 2 March 2010 (UTC)

Software
Does a comprehensive list of CP/M software titles exist? 2fort5r (talk) 19:03, 22 January 2009 (UTC)

FAT vs Extents
MS DOS file allocation table is a linked list of disk "clusters" (bigger than a sector), stored in 12 (later, 16) bits) in a dedicated region of the disk. CP/M used "extents" which were a listing of allocation blocks in order, repeated in the directory as many times as needed until the entire file was mapped. These are conceptually quite different. I read somewhere that FAT was derived from the file-system used by Microsoft's free-standing disk BASICs - the kind where the BASIC language system *is* the operating system. These apparently used the FAT system, although I expect they weren't necessarily an MS DOS compatible disk format. In any case, saying that FAT is like CP/M's extents is a bit like saying a snowmobile is like a motorcycle. Some similarities, sure, but things are very different where the rubber meets the road.  --Wtshymanski (talk) 15:13, 2 March 2010 (UTC)
 * Perhaps the difference between a scooter and a motorbike? Is it just the linking that distinguishes FATs from extents?  (I'm not an expert in either bikes or filesystems.)    D b f i r s   20:39, 2 March 2010 (UTC)
 * The File Allocation Table article confirms that FAT comes from freestanding disk BASIC. My analogy was meant to indicate a difference in mechanics, not in scale. If you were to do a hex dump of a CP/M directory it would look like and be formatted quite differently from an MS DOS directory and FAT. It's solving the same problem in two very different ways. In any case, FATs didn't exist in CP/M 80 and so could not have been "borrowed" from CP/M for MS DOS. --Wtshymanski (talk) 22:25, 2 March 2010 (UTC)
 * But they're both just lists. I would guess that the FAT linking idea came from the usual BASIC line linking.  I've done a hex dump of a CP/M file table long ago. I can't remember now just what it looked like, but it was certainly simpler.  I was more familiar with DFS & ADFS.  The only patents that Microsoft have for FAT are for their way of implementing long filenames.  I would be surprised if they invented the linked-list file system, but they certainly made it popular.    D b f i r s   23:53, 2 March 2010 (UTC)

Transient Program Area
Im missing any mention of the concept of Transient Program Area size. The architectural differences between CP/M machines meant that some machines (even fully stocked with RAM) could only achieve a small TPA such as 48K, while others could have much larger TPA's almost up to the maximum of 64K. As CP/M machines often contrasted in little else, a smart, memory saving architecture was often a big distinguishing and thus selling point. Mahjongg (talk) 10:57, 27 May 2010 (UTC)

Obscure reference to person or company Echelon
In January 1987, Richard Conn decided to stop developing ZCPR, and Echelon asked Jay Sage (who already had a privately enhanced ZCPR 3.1) to continue work on ZCPR. Thus, ZCPR 3.3 was developed and released. ZCPR33 no longer supported the 8080 series of microprocessors, and added the most features of any upgrade in the ZCPR line.

Nowhere else in the article is "Echelon" mentioned. Who is "Echelon" ? —Preceding unsigned comment added by 91.215.166.4 (talk) 16:48, 19 November 2010 (UTC)
 * It was added with this edit: . According to the ZCPR 3.3 User Manual, Echelon was the company who owned ZCPR. Their address in 1987 was Echelon, Inc., 885 N San Antonio Road, Los Altos, CA 94022 USA. I don't know if this only applies to the 3.3 version or also to previous versions of ZCPR. --Matthiaspaul (talk) 20:01, 16 September 2011 (UTC)

3.1.2 Portability
"Furthermore, it powered the popular Amstrad PCW word-processing system..."

If I remember correctly, although these computers could (and did) run CP/M as well, the word processing software, Locoscript, was an operating system in itself. It did not "sit on top" of CP/M. You booted either Locoscript, or CP/M. Hundovir (talk) 19:23, 16 September 2011 (UTC)
 * Ah yes! See LocoScript. Hundovir (talk) 19:26, 16 September 2011 (UTC)


 * I've edited the article to avoid the implication that LocoScript ran on CP/M. Letdorf (talk) 22:56, 16 September 2011 (UTC).

"The best-selling CP/M-capable system of all time was probably the Amstrad PCW. In the UK, CP/M was also available on Research Machines educational computers (with the CP/M source code published as an educational resource), and for the BBC Micro when equipped with a Z80 co-processor. Furthermore, it was available for the Amstrad CPC series, the Commodore 128, TRS-80, and later models of the ZX Spectrum."

The current wording makes the list of CP/M computers sound comprehensive when of course it is not. --TrueBlueBlooded (talk) 21:00, 11 December 2016 (UTC)

Release date
When is the date that CP/M Plus was released? The cited INfo World article is from 1983, but doesn't say when the software was released; and a November 1982 article also in Info World talks about CP/M Plus as if it was released. --Wtshymanski (talk) 14:39, 17 October 2011 (UTC)
 * Only the announcement was 1982, the release was surely in the first quarter of 1983, the first edition of the CP/M Plus User Manual is from January 1983, and the second edition came in March 1983. An authentic reproduction of the manual can be found here.--93.82.14.214 (talk) 09:00, 18 October 2011 (UTC)
 * Which ones? 8-bit or 16-bit? Were releases for the 8080 and 8086 concurrent? Could you type in the citation for the user manual, which would be a more authoritative source than the Info World articles which seem to be inconsistent and non-specific on the release date. --Wtshymanski (talk) 13:35, 18 October 2011 (UTC)
 * Man, how ignorant are you? Again, read the stuff, we only talk about CP/M Plus, and if it is 8- or 16-bit is clearly described in the mentioned manual and this article! It would be better you first become familiar with the naming conventions of an OS, before you start a useless discussion like that! --93.82.9.10 (talk) 10:08, 19 October 2011 (UTC)
 * Given, that there also was a CP/M-86 Plus and that a lot of people follow a strange habit of abbreviating product names, instead of using the full official names (and even Digital Research changed names and spellings of some products over time), I find your tone highly inappropriate. There's not the slightest reason to be rude. --Matthiaspaul (talk) 14:53, 19 October 2011 (UTC)
 * I'm at least as ignorant as anyone who has the misfortune of trying to use a Wikipedia article to find out anything about CP/M. Not all of us are as cultured, civilized, well-read, and universally loved as you are. --Wtshymanski (talk) 13:17, 19 October 2011 (UTC)

Any help needed for CP/M article?
As someone who used the ORIGINAL CP/M so heavily as to have DISASSEMBLED IT (having written my own disassembler - "Resource" -- get it? Re-Source?). I was forced to transfer my PURCHASED copy by "modem beeping into an audio cassette" and the critical MAIN FILE was corrupt so I had to disassemble the 2nd copy on the disc which was there for relocation purposes.

From seeing the internals, I realize it was written on a TINY machine, using "jump tables" (an array of JMP instruction to various entry points) at the front of each "chunk". This allowed assembling CHANGES to a single part (say, the file system) while not changing anything else, UNLESS the changes exceeded the space laid out for it manually in the memory map.

I later REMOVED all the jump tables and dead space (after a module before the next one started on some well determined boundary) and thus my "version" became somewhat smaller, etc.

I also enhanced the assembler to sort of go back to being able to assemble something much larger than practical, by changing one unused op code to "link" which was a SOURCE TIME link to the next chunk of a huge assembly file (such as CBBS, the world's first microcomputer BBS, was).

I totally understood the memory organization, the use of the customized BIOS, the relocation program, the organization of the file system, etc.

Also, I could swear that its author told me it stood for "Control Program/Microcomputer", but if there are documented sources (which I've not sought) I gladly accept some better documented source than my failing memory.

'''is there anything about my significant experience and not-too-bad writing style that could or should be used to enhance this article? For that matter, is there a place in Wikipedia where people discuss what is appropriate, and to what extent there is interest in picking the brain of someone with as much early history in narrow aspects of microcomputers, as I have?'''

WardXmodem (talk) 17:39, 2 September 2012 (UTC)


 * The best places to discuss the matter are the corresponding talk pages and for more general stuff perhaps Wikipedia talk:WikiProject Computing as well. There's still a lot of information missing regarding CP/M and its relatives. And there are only a few editors with the corresponding knowledge to fill those gaps. So, if you have the time and dedication, I would like to encourage you to share your knowledge. Just go for it. --Matthiaspaul (talk) 19:29, 2 September 2012 (UTC)

March 2017
Good work do you want to improve the article further? —usernamekiran (talk ) 00:11, 25 March 2017 (UTC)
 * I only returned one picture... My experience with CP/M is rather limited (I was born in the MS-DOS era) - first time I used this OS was this year via WinUAE/VICE/C128 emulation. I may provide more OS/application screenshots for the Commons, if needed. I can also add references based on old magazines, but sourcing in this article seems to be good in comparison to other articles about old computers/OSs. Do you have anything particular in mind? Pavlor (talk) 08:53, 25 March 2017 (UTC)

Splitting out ZCPR section into separate article?
Hi, I propose to move the ZCPR section into a separate article, similar to 4DOS, a command line processor replacement for DOS. The article could also discuss Z-System, ZRDOS and Z3DOS.

I do consider the product to be notable enough to deserve a stand-alone article, but as such it would need more references to keep it from being deleted (which is not what I propose). However, since this was a third-party product, it does not really belong into this article about CP/M (and more closely related stuff like the East-bloc "clones"). --Matthiaspaul (talk) 04:05, 17 August 2021 (UTC)
 * I would recommend against splitting out ZCPR as a separate article; CP/M itself is barely notable in the Wikipedia sense, and minor third-party add-ins are not very significant to the outside world. It's not like there were millions of ZCPR users out there. Bt the time ZCPU came along, the IBM PC and MS DOS were the shape of things to come. --Wtshymanski (talk) 00:06, 20 August 2021 (UTC)
 * CP/M barely notable by Wikipedia standards, wot? It may not be important in real life any more today, but there are more than hundred books dedicated to it, not to speak of the many thousand magazine articles about CP/M-related topics, and the endless number of mentionings in all kinds of publications giving an overview on the history of computing / operating systems up to the present.
 * Regarding ZCPR, somewhere I read about more than 60.000 users in 1986. That was quite a high number back then. There were also magazine columns dedicated to it up into the 1990s and at least a couple of books. In my judgement, that's quite a bit above the threshold of notability per WP:GNG.
 * In my opinion, splitting out this topic would allow for a better organization of contents and improved linking to related topics.
 * --Matthiaspaul (talk) 00:37, 20 August 2021 (UTC)
 * Once you get rid of the "Users' Guides to CP/M..." type of book, the number of hits dwindles rapidly. It's a very limited circle of notability - nobody not a bleeding-edge early adopter had ever seen CP/M nor could tell you anything about it. Once we take off the nostalgia goggles, it just kind of disappers in the tall grass.60,000 people barely fills a stadium. --Wtshymanski (talk) 00:56, 20 August 2021 (UTC)
 * I bet there are more people (still alive) that have used CP/M than people that have used an ENIAC computer. CP/M is still relevant because it was a major stepping stone for other operating system to be based on or inspired by it. For the record, as late as 1997, I was still using CP/M inside an emulator on a PC, to cross-compile programs for the Z80 and then the Z180. And I wouldn't be surprised if I wasn't the last one doing that. Dhrm77 (talk) 11:31, 13 September 2023 (UTC)

Displacement by MS-DOS
Some of the text actually mention "I tested" and stuff in first person. This makes the article feel biased. Also, while I'm not an expert, I'm not too sure of the accuracy of the text in the section, because the command interpreter in MS-DOS wasn't cmd.exe, it was command.com. cmd started being used in OS/2 and Windows NT, not before. 2800:150:137:BFF:986D:10FD:2142:9227 (talk) 07:10, 13 September 2023 (UTC)

"DAC (operating system)" listed at Redirects for discussion
The redirect [//en.wikipedia.org/w/index.php?title=DAC_(operating_system)&redirect=no DAC (operating system)] has been listed at redirects for discussion to determine whether its use and function meets the redirect guidelines. Readers of this page are welcome to comment on this redirect at  until a consensus is reached. Shhhnotsoloud (talk) 12:04, 4 February 2024 (UTC)