fbpx
Wikipedia

CP/M

CP/M,[3] originally standing for Control Program/Monitor[4] and later Control Program for Microcomputers,[5][6][7] is a mass-market operating system created in 1974 for Intel 8080/85-based microcomputers by Gary Kildall of Digital Research, Inc. Initially confined to single-tasking on 8-bit processors and no more than 64 kilobytes of memory, later versions of CP/M added multi-user variations and were migrated to 16-bit processors.

CP/M
A screenshot of CP/M-86
DeveloperDigital Research, Inc., Gary Kildall
Written inPL/M, Assembly language
Working stateHistorical
Source modelOriginally closed source, now open source[1]
Initial release1974; 49 years ago (1974)
Latest release3.1 / 1983; 40 years ago (1983)[2]
Available inEnglish
Update methodRe-installation
Package managerNone
PlatformsIntel 8080, Intel 8085, Zilog Z80, Zilog Z8000, Intel 8086, Motorola 68000
Kernel typeMonolithic kernel
Influenced byRT-11, OS/8
Default
user interface
Command-line interface (CCP.COM)
LicenseOriginally proprietary, now BSD-like
Succeeded byMP/M, CP/M-86
Official websiteDigital Research CP/M page

The combination of CP/M and S-100 bus computers became an early standard in the microcomputer industry. This computer platform was widely used in business through the late 1970s and into the mid-1980s.[8] CP/M increased the market size for both hardware and software by greatly reducing the amount of programming required to install an application on a new manufacturer's computer.[9][10] An important driver of software innovation was the advent of (comparatively) low-cost microcomputers running CP/M, as independent programmers and hackers bought them and shared their creations in user groups.[11] CP/M was eventually displaced by DOS following the 1981 introduction of the IBM PC.

History

 
CP/M advertisement in the 29 November 1982 issue of InfoWorld magazine

Early history

Gary Kildall originally developed CP/M during 1974,[5][6] as an operating system to run on an Intel Intellec-8 development system, equipped with a Shugart Associates 8-inch floppy-disk drive interfaced via a custom floppy-disk controller.[12] It was written in Kildall's own PL/M (Programming Language for Microcomputers).[13] Various aspects of CP/M were influenced by the TOPS-10 operating system of the DECsystem-10 mainframe computer, which Kildall had used as a development environment.[14][15][16] An early outside licensee of CP/M was Gnat Computers, an early microcomputer developer out of San Diego, California. In 1977, the company was granted the license to use CP/M 1.0 for any micro they desired for $90. Within the year, demand for CP/M was so high that Digital Research was able to increase the license to tens of thousands of dollars.[17]

Under Kildall's direction, the development of CP/M 2.0 was mostly carried out by John Pierce in 1978. Kathryn Strutynski, a friend of Kildall from Naval Postgraduate School (NPS) times, became the fourth employee of Digital Research Inc. in early 1979. She started by debugging CP/M 2.0, and later became influential as key developer for CP/M 2.2 and CP/M Plus. Other early developers of the CP/M base included Robert "Bob" Silberstein and David "Dave" K. Brown.[18][19]

CP/M originally stood for "Control Program/Monitor",[3] a name which implies a resident monitor—a primitive precursor to the operating system. However, during the conversion of CP/M to a commercial product, trademark registration documents filed in November 1977 gave the product's name as "Control Program for Microcomputers".[6] The CP/M name follows a prevailing naming scheme of the time, as in Kildall's PL/M language, and Prime Computer's PL/P (Programming Language for Prime), both suggesting IBM's PL/I; and IBM's CP/CMS operating system, which Kildall had used when working at the NPS. This renaming of CP/M was part of a larger effort by Kildall and his wife with business partner, Dorothy McEwen[4] to convert Kildall's personal project of CP/M and the Intel-contracted PL/M compiler into a commercial enterprise. The Kildalls intended to establish the Digital Research brand and its product lines as synonymous with "microcomputer" in the consumer's mind, similar to what IBM and Microsoft together later successfully accomplished in making "personal computer" synonymous with their product offerings. Intergalactic Digital Research, Inc. was later renamed via a corporation change-of-name filing to Digital Research, Inc.[4]

Initial success

 
Apple CP/M Card with manual

By September 1981, Digital Research had sold more than 260000 CP/M licenses; InfoWorld stated that the actual market was likely larger because of sublicenses. Many different companies produced CP/M-based computers for many different markets; the magazine stated that "CP/M is well on its way to establishing itself as the small-computer operating system".[20] The companies chose to support CP/M because of its large library of software. The Xerox 820 ran the operating system because "where there are literally thousands of programs written for it, it would be unwise not to take advantage of it", Xerox said.[21] (Xerox included a Howard W. Sams CP/M manual as compensation for Digital Research's documentation, which InfoWorld in 1982 described as atrocious.[22]) By 1984, Columbia University used the same source code to build Kermit binaries for more than a dozen different CP/M systems, plus a generic version.[23] The operating system was described as a "software bus",[24][25] allowing multiple programs to interact with different hardware in a standardized way.[26] Programs written for CP/M were typically portable among different machines, usually requiring only the specification of the escape sequences for control of the screen and printer. This portability made CP/M popular, and much more software was written for CP/M than for operating systems that ran on only one brand of hardware. One restriction on portability was that certain programs used the extended instruction set of the Z80 processor and would not operate on an 8080 or 8085 processor. Another was graphics routines, especially in games and graphics programs, which were generally machine-specific as they used direct hardware access for speed, bypassing the OS and BIOS (this was also a common problem in early DOS machines).[citation needed]

Bill Gates claimed that the Apple II series with a Z-80 SoftCard was the single most-popular CP/M hardware platform.[27] Many different brands of machines ran the operating system, some notable examples being the Altair 8800, the IMSAI 8080, the Osborne 1 and Kaypro luggables, and MSX computers. 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. CP/M 3 was also used on the NIAT, a custom handheld computer designed for A.C. Nielsen's internal use with 1 MB of SSD memory.

Multi-user

In 1979, a multi-user compatible derivative of CP/M was released. MP/M allowed multiple users to connect to a single computer, using multiple terminals to provide each user with a screen and keyboard. Later versions ran on 16-bit processors.

CP/M Plus

 
CP/M Plus (CP/M 3) System Guide

The last 8-bit version of CP/M was version 3, often called CP/M Plus, released in 1983.[18] Its BDOS was designed by Brown.[18] It incorporated the bank switching memory management of MP/M in a single-user single-task operating system compatible with CP/M 2.2 applications. CP/M 3 could therefore use more than 64 KB of memory on an 8080 or Z80 processor. The system could be configured to support date stamping of files.[18] The operating system distribution software also included a relocating assembler and linker.[2] CP/M 3 was available for the last generation of 8-bit computers, notably the Amstrad PCW, the Amstrad CPC, the ZX Spectrum +3, the Commodore 128, MSX machines and the Radio Shack TRS-80 Model 4.[28]

16-bit versions

 
DEC PRO-CP/M-80 floppy-disk distribution for the Z80-A co-processor in a DEC Professional 3xx series

There were versions of CP/M for some 16-bit CPUs as well.

The first version in the 16-bit family was CP/M-86 for the Intel 8086 in November 1981.[29] Kathryn Strutynski was the project manager for the evolving CP/M-86 line of operating systems.[18][19] At this point, the original 8-bit CP/M became known by the retronym CP/M-80 to avoid confusion.[29]

CP/M-86 was expected to be the standard operating system of the new IBM PCs, but DRI and IBM were unable to negotiate development and licensing terms. IBM turned to Microsoft instead, and Microsoft delivered PC DOS based on 86-DOS. Although CP/M-86 became an option for the IBM PC after DRI threatened legal action, it never overtook Microsoft's system. Most customers were repelled by the significantly greater price IBM charged for CP/M-86 over PC DOS (US$240 and US$40, respectively).[30]

When Digital Equipment Corporation (DEC) put out the Rainbow 100 to compete with IBM, it came with CP/M-80 using a Z80 chip, CP/M-86 or MS-DOS using an 8088 microprocessor, or CP/M-86/80 using both. The Z80 and 8088 CPUs ran concurrently.[31][32] A benefit of the Rainbow was that it could continue to run 8-bit CP/M software, preserving a user's possibly sizable investment as they moved into the 16-bit world of MS-DOS.[31] A similar dual-processor adaption for the CompuPro System 816 [sr] was named CP/M 8-16. The CP/M-86 adaptation for the 8085/8088-based Zenith Z-100 also supported running programs for both of its CPUs.

Soon following CP/M-86, another 16-bit version of CP/M was CP/M-68K for the Motorola 68000. The original version of CP/M-68K in 1982 was written in Pascal/MT+68k, but it was ported to C later on. CP/M-68K, already running on the Motorola EXORmacs systems, was initially to be used in the Atari ST computer, but Atari decided to go with a newer disk operating system called GEMDOS. CP/M-68K was also used on the SORD M68 and M68MX computers.[33]

In 1982, there was also a port from CP/M-68K to the 16-bit Zilog Z8000 for the Olivetti M20, written in C, named CP/M-8000.[34][35]

These 16-bit versions of CP/M required application programs to be re-compiled for the new CPUs. Some programs written in assembly language could be automatically translated for a new processor. One tool for this was Digital Research's XLT86, which translated .ASM source code for the Intel 8080 processor into .A86 source code for the Intel 8086. The translator would also optimize the output for code size and take care of calling conventions, so that CP/M-80 and MP/M-80 programs could be ported to the CP/M-86 and MP/M-86 platforms automatically. XLT86 itself was written in PL/I-80 and was available for CP/M-80 platforms as well as for VAX/VMS.[36]

Displacement by MS-DOS

Many expected that CP/M would be the standard operating system for 16-bit computers.[37] In 1980 IBM approached Digital Research, at Bill Gates' suggestion,[38] to license a forthcoming version of CP/M for its new product, the IBM Personal Computer. Upon the failure to obtain a signed non-disclosure agreement, the talks failed, and IBM instead contracted with Microsoft to provide an operating system.[39] The resulting product, MS-DOS, soon began outselling CP/M.

Many of the basic concepts and mechanisms of early versions of MS-DOS resembled those of CP/M. Internals like file-handling data structures were identical, and both referred to disk drives with a letter (A:, B:, etc.). MS-DOS's main innovation was its FAT file system. This similarity made it easier to port popular CP/M software like WordStar and dBase. However, CP/M's concept of separate user areas for files on the same disk was never ported to MS-DOS. Since MS-DOS had access to more memory (as few IBM PCs were sold with less than 64 KB of memory, while CP/M could run in 16 KB if necessary), more commands were built into the command-line shell, making MS-DOS somewhat faster and easier to use on floppy-based computers.

Although one of the first peripherals for the IBM PC was a SoftCard-like expansion card that let it run 8-bit CP/M software,[40] InfoWorld stated in 1984 that efforts to introduce CP/M to the home market had been largely unsuccessful and most CP/M software was too expensive for home users.[41] In 1986 the magazine stated that Kaypro had stopped production of 8-bit CP/M-based models to concentrate on sales of MS-DOS compatible systems, long after most other vendors had ceased production of new equipment and software for CP/M.[42] CP/M rapidly lost market share as the microcomputing market moved to the IBM-compatible platform, and it never regained its former popularity. Byte magazine, at the time one of the leading industry magazines for microcomputers, essentially ceased covering CP/M products within a few years of the introduction of the IBM PC. For example, in 1983 there were still a few advertisements for S-100 boards and articles on CP/M software, but by 1987 these were no longer found in the magazine.

Later versions of CP/M-86 made significant strides in performance and usability and were made compatible with MS-DOS. To reflect this compatibility the name was changed, and CP/M-86 became DOS Plus, which in turn became DR-DOS.

ZCPR

ZCPR[43] (the Z80 Command Processor Replacement) was introduced on 2 February 1982 as a drop-in replacement for the standard Digital Research console command processor (CCP) and was initially written by a group of computer hobbyists who called themselves "The CCP Group". They were Frank Wancho, Keith Petersen (the archivist behind Simtel at the time), Ron Fowler, Charlie Strom, Bob Mathias, and Richard Conn. Richard was, in fact, the driving force in this group (all of whom maintained contact through email).

ZCPR1 was released on a disk put out by SIG/M (Special Interest Group/Microcomputers), a part of the Amateur Computer Club of New Jersey.

ZCPR2 was released on 14 February 1983. It was released as a set of ten disks from SIG/M. ZCPR2 was upgraded to 2.3, and also was released in 8080 code, permitting the use of ZCPR2 on 8080 and 8085 systems.

ZCPR3[44] was released on 14 July 1984, as a set of nine disks from SIG/M. The code for ZCPR3 could also be compiled (with reduced features) for the 8080 and would run on systems that did not have the requisite Z80 microprocessor. Features of ZCPR as of version 3 included shells, aliases, I/O redirection, flow control, named directories, search paths, custom menus, passwords, and online help. In January 1987, Richard Conn stopped developing ZCPR, and Echelon asked Jay Sage (who already had a privately enhanced ZCPR 3.1) to continue work on it. Thus, ZCPR 3.3 was developed and released. ZCPR 3.3 no longer supported the 8080 series of microprocessors, and added the most features of any upgrade in the ZCPR line. ZCPR 3.3 also included a full complement of utilities with considerably extended capabilities. While enthusiastically supported by the CP/M user base of the time, ZCPR alone was insufficient to slow the demise of CP/M.

Hardware model

 
Sanco 8001 computer, running under CP/M 2.2 (1982)
 
CP/M cartridge for the Commodore 64

A minimal 8-bit CP/M system would contain the following components:

  • A computer terminal using the ASCII character set
  • An Intel 8080 (and later the 8085) or Zilog Z80 microprocessor
    • The NEC V20 and V30 processors support an 8080-emulation mode that can run 8-bit CP/M on a PC DOS/MS-DOS computer so equipped, though any PC can also run the 16-bit CP/M-86.[45][46]
  • At least 16 kilobytes of RAM, beginning at address 0
  • A means to bootstrap the first sector of the diskette
  • At least one floppy-disk drive

The only hardware system that CP/M, as sold by Digital Research, would support was the Intel 8080 Development System. Manufacturers of CP/M-compatible systems customized portions of the operating system for their own combination of installed memory, disk drives, and console devices. CP/M would also run on systems based on the Zilog Z80 processor since the Z80 was compatible with 8080 code. While the Digital Research distributed core of CP/M (BDOS, CCP, core transient commands) did not use any of the Z80-specific instructions, many Z80-based systems used Z80 code in the system-specific BIOS, and many applications were dedicated to Z80-based CP/M machines.

Digital Research subsequently partnered with Zilog and American Microsystems to produce Personal CP/M, a ROM-based version of the operating system aimed at lower-cost systems that could potentially be equipped without disk drives.[47] First featured in the Sharp MZ-800, a cassette-based system with optional disk drives,[48] Personal CP/M was described as having been "rewritten to take advantage of the enhanced Z-80 instruction set" as opposed to preserving portability with the 8080. American Microsystems announced a Z80-compatible microprocessor, the S83, featuring 8 KB of in-package ROM for the operating system and BIOS, together with comprehensive logic for interfacing with 64-kilobit dynamic RAM devices.[49]

On most machines the bootstrap was a minimal bootloader in ROM combined with some means of minimal bank switching or a means of injecting code on the bus (since the 8080 needs to see boot code at Address 0 for start-up, while CP/M needs RAM there); for others, this bootstrap had to be entered into memory using front-panel controls each time the system was started.

CP/M used the 7-bit ASCII set. The other 128 characters made possible by the 8-bit byte were not standardized. For example, one Kaypro used them for Greek characters, and Osborne machines used the 8th bit set to indicate an underlined character. WordStar used the 8th bit as an end-of-word marker. International CP/M systems most commonly used the ISO 646 norm for localized character sets, replacing certain ASCII characters with localized characters rather than adding them beyond the 7-bit boundary.

Components

In the 8-bit versions, while running, the CP/M operating system loaded into memory had three components:[3]

  • Basic Input/Output System (BIOS),
  • Basic Disk Operating System (BDOS),
  • Console Command Processor (CCP).

The BIOS and BDOS were memory-resident, while the CCP was memory-resident unless overwritten by an application, in which case it was automatically reloaded after the application finished running. A number of transient commands for standard utilities were also provided. The transient commands resided in files with the extension .COM on disk.

The BIOS directly controlled hardware components other than the CPU and main memory. It contained functions such as character input and output and the reading and writing of disk sectors. The BDOS implemented the CP/M file system and some input/output abstractions (such as redirection) on top of the BIOS. The CCP took user commands and either executed them directly (internal commands such as DIR to show a directory or ERA to delete a file) or loaded and started an executable file of the given name (transient commands such as PIP.COM to copy files or STAT.COM to show various file and system information). Third-party applications for CP/M were also essentially transient commands.

The BDOS, CCP and standard transient commands were the same in all installations of a particular revision of CP/M, but the BIOS portion was always adapted to the particular hardware.

Adding memory to a computer, for example, meant that the CP/M system had to be reinstalled to allow transient programs to use the additional memory space. A utility program (MOVCPM) was provided with system distribution that allowed relocating the object code to different memory areas. The utility program adjusted the addresses in absolute jump and subroutine call instructions to new addresses required by the new location of the operating system in processor memory. This newly patched version could then be saved on a new disk, allowing application programs to access the additional memory made available by moving the system components. Once installed, the operating system (BIOS, BDOS and CCP) was stored in reserved areas at the beginning of any disk which would be used to boot the system. On start-up, the bootloader (usually contained in a ROM firmware chip) would load the operating system from the disk in drive A:.

By modern standards CP/M was primitive, owing to the extreme constraints on program size. With version 1.0 there was no provision for detecting a changed disk. If a user changed disks without manually rereading the disk directory the system would write on the new disk using the old disk's directory information, ruining the data stored on the disk. From version 1.1 or 1.2 onwards, changing a disk then trying to write to it before its directory was read would cause a fatal error to be signalled. This avoided overwriting the disk but required a reboot and loss of the data that was to be stored on disk.

The majority of the complexity in CP/M was isolated in the BDOS, and to a lesser extent, the CCP and transient commands. This meant that by porting the limited number of simple routines in the BIOS to a particular hardware platform, the entire OS would work. This significantly reduced the development time needed to support new machines, and was one of the main reasons for CP/M's widespread use. Today this sort of abstraction is common to most OSs (a hardware abstraction layer), but at the time of CP/M's birth, OSs were typically intended to run on only one machine platform, and multilayer designs were considered unnecessary.

Console Command Processor

 
Screenshot showing a CP/M 3.0 directory listing using the DIR command on a Commodore 128 home computer

The Console Command Processor, or CCP, accepted input from the keyboard and conveyed results to the terminal. CP/M itself would work with either a printing terminal or a video terminal. All CP/M commands had to be typed in on the command line. The console would most often display the A> prompt, to indicate the current default disk drive. When used with a video terminal, this would usually be followed by a blinking cursor supplied by the terminal. The CCP would await input from the user. A CCP internal command, of the form drive letter followed by a colon, could be used to select the default drive. For example, typing B: and pressing enter at the command prompt would change the default drive to B, and the command prompt would then become B> to indicate this change.

CP/M's command-line interface was patterned after the operating systems from Digital Equipment, such as RT-11 for the PDP-11 and OS/8 for the PDP-8.[citation needed] Commands took the form of a keyword followed by a list of parameters separated by spaces or special characters. Similar to a Unix shell builtin, if an internal command was recognized, it was carried out by the CCP itself. Otherwise it would attempt to find an executable file on the currently logged disk drive and (in later versions) user area, load it, and pass it any additional parameters from the command line. These were referred to as "transient" programs. On completion, CP/M would reload the part of the CCP that had been overwritten by application programs — this allowed transient programs a larger memory space.

The commands themselves could sometimes be obscure. For instance, the command to duplicate files was named PIP (Peripheral-Interchange-Program), the name of the old DEC utility used for that purpose. The format of parameters given to a program was not standardized, so that there was no single option character that differentiated options from file names. Different programs could and did use different characters.

The CP/M Console Command Processor includes DIR, ERA, REN, SAVE, TYPE, and USER as built-in commands.[50] Transient commands in CP/M include ASM, DDT, DUMP, ED, LOAD, MOVCPM [pl], PIP, STAT, SUBMIT, and SYSGEN.[50]

CP/M Plus (CP/M Version 3) includes DIR (display list of files from a directory except those marked with the SYS attribute), DIRSYS / DIRS (list files marked with the SYS attribute in the directory), ERASE / ERA (delete a file), RENAME / REN (rename a file), TYPE / TYP (display contents of an ASCII character file), and USER / USE (change user number) as built-in commands:[51] CP/M 3 allows the user to abbreviate the built-in commands.[52] Transient commands in CP/M 3 include COPYSYS, DATE, DEVICE, DUMP, ED, GET, HELP, HEXCOM, INITDIR, LINK, MAC, PIP, PUT, RMAC, SET, SETDEF, SHOW, SID, SUBMIT, and XREF.[52]

Basic Disk Operating System

The Basic Disk Operating System,[13][12] or BDOS,[13][12] provided access to such operations as opening a file, output to the console, or printing. Application programs would load processor registers with a function code for the operation, and addresses for parameters or memory buffers, and call a fixed address in memory. Since the address was the same independent of the amount of memory in the system, application programs would run the same way for any type or configuration of hardware.

Basic Input Output System

 
CP/M advertisement in the 11 December 1978 issue of InfoWorld magazine

The Basic Input Output System or BIOS,[13][12] provided the lowest level functions required by the operating system.

These included reading or writing single characters to the system console and reading or writing a sector of data from the disk. The BDOS handled some of the buffering of data from the diskette, but before CP/M 3.0 it assumed a disk sector size fixed at 128 bytes, as used on single-density 8-inch floppy disks. Since most 5.25-inch disk formats used larger sectors, the blocking and deblocking and the management of a disk buffer area was handled by model-specific code in the BIOS.

Customization was required because hardware choices were not constrained by compatibility with any one popular standard. For example, some manufacturers used a separate computer terminal, while others designed a built-in integrated video display system. Serial ports for printers and modems could use different types of UART chips, and port addresses were not fixed. Some machines used memory-mapped I/O instead of the 8080 I/O address space. All of these variations in the hardware were concealed from other modules of the system by use of the BIOS, which used standard entry points for the services required to run CP/M such as character I/O or accessing a disk block. Since support for serial communication to a modem was very rudimentary in the BIOS or may have been absent altogether, it was common practice for CP/M programs that used modems to have a user-installed overlay containing all the code required to access a particular machine's serial port.

Applications

 
Distribution 5+14-inch diskettes and packaging for the last version (version 4) of WordStar word processing program released for 8-bit CP/M

WordStar, one of the first widely used word processors, and dBase, an early and popular database program for microcomputers, were originally written for CP/M. Two early outliners, KAMAS (Knowledge and Mind Amplification System) and its cut-down successor Out-Think (without programming facilities and retooled for 8080/V20 compatibility) were also written for CP/M, though later rewritten for MS-DOS. Turbo Pascal, the ancestor of Borland Delphi, and Multiplan, the ancestor of Microsoft Excel, also debuted on CP/M before MS-DOS versions became available. VisiCalc, the first-ever spreadsheet program, was made available for CP/M. Another company, Sorcim, created its SuperCalc spreadsheet for CP/M, which would go on to become the market leader and de facto standard on CP/M. Supercalc would go on to be a competitor in the spreadsheet market in the MS-DOS world. AutoCAD, a CAD application from Autodesk debuted on CP/M. A host of compilers and interpreters for popular programming languages of the time (such as BASIC, Borland's Turbo Pascal, FORTRAN and even PL/I[53]) were available, among them several of the earliest Microsoft products.

CP/M software often came with installers that adapted it to a wide variety of computers.[54] The source code for BASIC programs was easily accessible, and most forms of copy protection were ineffective on the operating system.[55] A Kaypro II owner, for example, would obtain software on Xerox 820 format, then copy it to and run it from Kaypro-format disks.[56]

The lack of standardized graphics support limited video games, but various character and text-based games were ported, such as Telengard,[57] Gorillas,[58] Hamurabi, Lunar Lander, along with early interactive fiction including the Zork series and Colossal Cave Adventure. Text adventure specialist Infocom was one of the few publishers to consistently release their games in CP/M format. Lifeboat Associates started collecting and distributing user-written "free" software. One of the first was XMODEM, which allowed reliable file transfers via modem and phone line. Another program native to CP/M was the outline processor KAMAS.[citation needed]

Transient Program Area

The read/write memory between address 0100 hexadecimal and the lowest address of the BDOS was the Transient Program Area (TPA) available for CP/M application programs. Although all Z80 and 8080 processors could address 64 kilobytes of memory, the amount available for application programs could vary, depending on the design of the particular computer. Some computers used large parts of the address space for such things as BIOS ROMs, or video display memory. As a result, some systems had more TPA memory available than others. Bank switching was a common technique that allowed systems to have a large TPA while switching out ROM or video memory space as needed. CP/M 3.0 allowed parts of the BDOS to be in bank-switched memory as well.

Debugging application

CP/M came with a Dynamic Debugging Tool, nicknamed DDT (after the insecticide, i.e. a bug-killer), which allowed memory and program modules to be examined and manipulated, and allowed a program to be executed one step at a time.[59][60][61]

Resident programs

CP/M originally did not support the equivalent of terminate and stay resident (TSR) programs as under DOS. Programmers could write software that could intercept certain operating system calls and extend or alter their functionality. Using this capability, programmers developed and sold auxiliary desk accessory programs, such as SmartKey, a keyboard utility to assign any string of bytes to any key.[62] CP/M 3, however, added support for dynamically loadable Resident System Extensions (RSX).[51][18] A so-called null command file could be used to allow CCP to load an RSX without a transient program.[51][18] Similar solutions like RSMs (for Resident System Modules) were also retrofitted to CP/M 2.2 systems by third-parties.[63][64][65]

Software installation

Although CP/M provided some hardware abstraction to standardize the interface to disk I/O or console I/O, application programs still typically required installation to make use of all the features of such equipment as printers and terminals. Often these were controlled by escape sequences which had to be altered for different devices. For example, the escape sequence to select bold face on a printer would have differed among manufacturers, and sometimes among models within a manufacturer's range. This procedure was not defined by the operating system; a user would typically run an installation program that would either allow selection from a range of devices, or else allow feature-by-feature editing of the escape sequences required to access a function. This had to be repeated for each application program, since there was no central operating system service provided for these devices.

The initialization codes for each model of printer had to be written into the application. To use a program such as Wordstar with more than one printer (say, a fast dot-matrix printer or a slower but presentation-quality daisy wheel printer), a separate version of Wordstar had to be prepared, and one had to load the Wordstar version that corresponded to the printer selected (and exiting and reloading to change printers).

Disk formats

IBM System/34 and IBM 3740's single-density, single-sided format is CP/M's standard 8-inch floppy-disk format. No standard 5.25-inch CP/M disk format exists, with Kaypro, Morrow Designs, Osborne, and others each using their own.[66][22][67] InfoWorld estimated in September 1981 that "about two dozen formats were popular enough that software creators had to consider them to reach the broadest possible market".[20] JRT Pascal, for example, provided versions on 5.25-inch disk for North Star, Osborne, Apple, Heath hard sector and soft sector, and Superbrain, and one 8-inch version.[68] Ellis Computing also offered its software for both Heath formats, and 16 other 5.25-inch formats including two different TRS-80 CP/M modifications.[69]

Certain disk formats were more popular than others. Most software was available in the Xerox 820 format, and other computers such as the Kaypro II were compatible with it.[56][70] No single manufacturer, however, prevailed in the 5.25-inch era of CP/M use, and disk formats were often not portable between hardware manufacturers. A software manufacturer had to prepare a separate version of the program for each brand of hardware on which it was to run. With some manufacturers (Kaypro is an example), there was not even standardization across the company's different models. Because of this situation, disk format translation programs, which allowed a machine to read many different formats, became popular and reduced the confusion, as did programs like Kermit, which allowed transfer of data and programs from one machine to another using the serial ports that most CP/M machines had.

Various formats were used depending on the characteristics of particular systems and to some degree the choices of the designers. CP/M supported options to control the size of reserved and directory areas on the disk, and the mapping between logical disk sectors (as seen by CP/M programs) and physical sectors as allocated on the disk. There were many ways to customize these parameters for every system[71] but once they had been set, no standardized way existed for a system to load parameters from a disk formatted on another system.

The degree of portability between different CP/M machines depended on the type of disk drive and controller used since many different floppy types existed in the CP/M era in both 8-inch and 5.25-inch format. Disks could be hard or soft sectored, single or double density, single or double sided, 35 track, 40 track, 77 track, or 80 track, and the sector layout, size and interleave could vary widely as well. Although translation programs could allow the user to read disk types from different machines, the drive type and controller were also factors. By 1982, soft-sector, single-sided, 40-track 5.25-inch disks had become the most popular format to distribute CP/M software on as they were used by the most common consumer-level machines of that time, such as the Apple II, TRS-80, Osborne 1, Kaypro II, and IBM PC. A translation program allowed the user to read any disks on his machine that had a similar format—for example, the Kaypro II could read TRS-80, Osborne, IBM PC, and Epson disks. Other disk types such as 80 track or hard sectored were completely impossible to read. The first half of double-sided disks (like those of the Epson QX-10) could be read because CP/M accessed disk tracks sequentially with track 0 being the first (outermost) track of side 1 and track 79 (on a 40-track disk) being the last (innermost) track of side 2. Apple II users were unable to use anything but Apple's GCR format and so had to obtain CP/M software on Apple format disks or else transfer it via serial link.

The fragmented CP/M market, requiring distributors either to stock multiple formats of disks or to invest in multiformat duplication equipment, compared with the more standardized IBM PC disk formats, was a contributing factor to the rapid obsolescence of CP/M after 1981.

One of the last notable CP/M-capable machines to appear was the Commodore 128 in 1985, which had a Z80 for CP/M support in addition to its native mode using a 6502-derivative CPU. Using CP/M required either a 1571 or 1581 disk drive which could read soft-sector 40-track MFM-format disks.

The first computer to use a 3.5-inch floppy drive, the Sony SMC-70,[72] ran CP/M 2.2. The Commodore 128, Bondwell-2 laptop, Micromint/Ciarcia SB-180,[73] MSX and TRS-80 Model 4 (running Montezuma CP/M 2.2) also supported the use of CP/M with 3.5-inch floppy disks. CP/AM, Applied Engineering's version of CP/M for the Apple II, also supported 3.5-inch disks (as well RAM disks on RAM cards compatible with the Apple II Memory Expansion Card).[74] The Amstrad PCW ran CP/M using 3-inch floppy drives at first, and later switched to the 3.5 inch drives.

File system

File names were specified as a string of up to eight characters, followed by a period, followed by a file name extension of up to three characters ("8.3" filename format). The extension usually identified the type of the file. For example, .COM indicated an executable program file, and .TXT indicated a file containing ASCII text. Characters in filenames entered at the command prompt were converted to upper case, but this was not enforced by the operating system. Programs (MBASIC is a notable example) were able to create filenames containing lower-case letters, which then could not easily be referenced at the command line.

Each disk drive was identified by a drive letter, for example, drive A and drive B. To refer to a file on a specific drive, the drive letter was prefixed to the file name, separated by a colon, e.g., A:FILE.TXT. With no drive letter prefixed, access was to files on the current default drive.[75]

File size was specified as the number of 128-byte records (directly corresponding to disk sectors on 8-inch drives) occupied by a file on the disk. There was no generally supported way of specifying byte-exact file sizes. The current size of a file was maintained in the file's File Control Block (FCB) by the operating system. Since many application programs (such as text editors) prefer to deal with files as sequences of characters rather than as sequences of records, by convention text files were terminated with a control-Z character (ASCII SUB, hexadecimal 1A). Determining the end of a text file therefore involved examining the last record of the file to locate the terminating control-Z. This also meant that inserting a control-Z character into the middle of a file usually had the effect of truncating the text contents of the file.

With the advent of larger removable and fixed disk drives, disk de-blocking formulas were employed which resulted in more disk blocks per logical file allocation block. While this allowed for larger file sizes, it also meant that the smallest file which could be allocated increased in size from 1 KB (on single-density drives) to 2 KB (on double-density drives) and so on, up to 32 KB for a file containing only a single byte. This made for inefficient use of disk space if the disk contained a large number of small files.

File modification time stamps were not supported in releases up to CP/M 2.2, but were an optional feature in MP/M and CP/M 3.0.[18]

CP/M 2.2 had no subdirectories in the file structure, but provided 16 numbered user areas to organize files on a disk. To change user one had to simply type "User X" at the command prompt, X being the user number. Security was non-existent and considered unnecessary on a personal computer. The user area concept was to make the single-user version of CP/M somewhat compatible with multi-user MP/M systems. A common patch for the CP/M and derivative operating systems was to make one user area accessible to the user independent of the currently set user area. A USER command allowed the user area to be changed to any area from 0 to 15. User 0 was the default. If one changed to another user, such as USER 1, the material saved on the disk for this user would only be available to USER 1; USER 2 would not be able to see it or access it. However, files stored in the USER 0 area were accessible to all other users; their location was specified with a prefatory path, since the files of USER 0 were only visible to someone logged in as USER 0. The user area feature arguably had little utility on small floppy disks, but it was useful for organizing files on machines with hard drives. The intent of the feature was to ease use of the same computer for different tasks. For example, a secretary could do data entry, then, after switching USER areas, another employee could use the machine to do billing without their files intermixing.

Graphics

 
MBASIC text output displayed on a monochrome monitor typical for that time

Although graphics-capable S-100 systems existed from the commercialization of the S-100 bus, CP/M did not provide any standardized graphics support until 1982 with GSX (Graphics System Extension). Owing to the small amount of available memory, graphics was never a common feature associated with 8-bit CP/M operating systems. Most systems could only display rudimentary ASCII art charts and diagrams in text mode or by using a custom character set. Some computers in the Kaypro line and the TRS-80 Model 4 had video hardware supporting block graphics characters, and these were accessible to assembler programmers and BASIC programmers using the CHR$ command. The Model 4 could display 640 by 240 pixel graphics with an optional high resolution board.

Derivatives

 
CP/M derivate SCP running on an East German robotron PC 1715
 
CP/J version 2.21 running on an Elwro 804 Junior

A number of CP/M-80 derivatives existed in the former Eastern Bloc under various names, including SCP (Single User Control Program [de]), SCP/M, CP/A,[76] CP/J, CP/KC, CP/KSOB, CP/L, CP/Z, MICRODOS, BCU880, ZOAZ, OS/M, TOS/M, ZSDOS, M/OS, COS-PSA, DOS-PSA, CSOC, CSOS, CZ-CPM and others.[77][78] There were also CP/M-86 derivatives named SCP1700, CP/K and K8918-OS.[78] They were produced by the East German VEB Robotron and others.[78][77][76]

Legacy

A number of behaviors exhibited by Microsoft Windows are a result of backward compatibility with MS-DOS, which in turn attempted some backward compatibility with CP/M. The drive letter and 8.3 filename conventions in MS-DOS (and early Windows versions) were originally adopted from CP/M.[79] The wildcard matching characters used by Windows (? and *) are based on those of CP/M,[80] as are the reserved filenames used to redirect output to a printer ("PRN:"), and the console ("CON:"). The drive names A and B were used to designate the two floppy disk drives that CP/M systems typically used; when hard drives appeared, they were designated C, which survived into MS-DOS as the C:\> command prompt.[81] The control character ^Z marking the end of some text files can also be attributed to CP/M.[82] Various commands in DOS were modelled after CP/M commands; some of them even carried the same name, like DIR, REN/RENAME, or TYPE (and ERA/ERASE in DR-DOS). File extensions like .TXT or .COM are still used to identify file types on many operating systems.

In 1997 and 1998, Caldera released some CP/M 2.2 binaries and source code under an open source license, also allowing the redistribution and modification of further collected Digital Research files related to the CP/M and MP/M families through Tim Olmstead's "The Unofficial CP/M Web site" since 1997.[83][84][85] After Olmstead's death on 12 September 2001,[86] the distribution license was refreshed and expanded by Lineo, who had meanwhile become the owner of those Digital Research assets, on 19 October 2001.[87][88][1][89] In October 2014, to mark the 40th anniversary of the first presentation of CP/M, the Computer History Museum released early source code versions of CP/M.[90]

As of 2018, there are a number of active vintage, hobby and retro-computer people and groups, and some small commercial businesses, still developing and supporting computer platforms that use CP/M (mostly 2.2) as the host operating system.

See also

References

  1. ^ a b Gasperson, Tina (2001-11-26). "CP/M collection is back online with an Open Source licence - Walk down memory lane". The Register. from the original on 2017-09-01.
  2. ^ a b Mann, Stephen (1983-08-15). "CP/M Plus, a third, updated version of CP/M". InfoWorld. Vol. 5, no. 33. p. 49. ISSN 0199-6649.
  3. ^ a b c Sandberg-Diment, Erik (1983-05-03). "Personal Computers: The Operating System in the middle". The New York Times.
  4. ^ a b c Markoff, John (1994-07-13). "Gary Kildall, 52, Crucial Player In Computer Development, Dies". The New York Times.
  5. ^ a b Shustek, Len (2016-08-02). "In His Own Words: Gary Kildall". Remarkable People. Computer History Museum. from the original on 2016-12-17.
  6. ^ a b c Kildall, Gary Arlen (2016-08-02) [1993]. Kildall, Scott; Kildall, Kristin (eds.). Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry (Manuscript, part 1). Kildall Family. from the original on 2016-11-17. Retrieved 2016-11-17.
  7. ^ Newton, Harry (2000). Newton's Telecom Dictionary. New York, New York, USA: CMP Books. pp. 228. ISBN 1-57820-053-9.
  8. ^ . old-computers.com. Archived from the original on 2016-01-03. Retrieved 2022-04-21.
  9. ^ Cole, Maggie (1981-05-25). "Gary Kildall and the Digital Research Success Story". InfoWorld. Vol. 3, no. 10. Palo Alto, California, USA. pp. 52–53. ISSN 0199-6649.
  10. ^ Freiberger, Paul (1982-07-05). "History of microcomputing, part 3: software genesis". InfoWorld. Vol. 4, no. 26. Palo Alto, California, USA. p. 41. ISSN 0199-6649.
  11. ^ Waite, Mitchell; Lafore, Robert W.; Volpe, Jerry (1982). The Official Book for the Commodore 128. p. 110. ISBN 978-0-67222456-0.
  12. ^ a b c d Kildall, Gary Arlen (January 1980). "The History of CP/M, The Evolution Of An Industry: One Person's Viewpoint". Dr. Dobb's Journal. Vol. 5, no. 1 #41. pp. 6–7. from the original on 2016-11-24. Retrieved 2013-06-03.
  13. ^ a b c d Kildall, Gary Arlen (June 1975), CP/M 1.1 or 1.2 BIOS and BDOS for Lawrence Livermore Laboratories
  14. ^ Johnson, Herbert R. (2009-01-04). "CP/M and Digital Research Inc. (DRI) History". www.retrotechnology.com. from the original on 2008-08-20. Retrieved 2009-01-28.
  15. ^ Warren, Jim (April 1976). "First word on a floppy-disk operating system". Dr. Dobb's Journal. Vol. 1, no. 4. Menlo Park, California, USA. p. 5. Subtitle: Command language & facilities similar to DECSYSTEM-10.
  16. ^ Digital Research (1978). CP/M. Pacific Grove, California, USA: Digital Research. OCLC 221485970.
  17. ^ Freiberger, Paul; Michael Swaine (2000). Fire in the Valley: The Making of the Personal Computer. McGraw-Hill. p. 175. ISBN 0071358927 – via the Internet Archive.
  18. ^ a b c d e f g h Brown, David K.; Strutynski, Kathryn; Wharton, John Harrison (1983-05-14). "Tweaking more performance from an operating system - Hashing, caching, and memory blocking are just a few of the techniques used to punch up performance in the latest version of CP/M". System Design/Software. Computer Design - The Magazine of Computer Based Systems. Vol. 22, no. 6. Littleton, Massachusetts, USA: PennWell Publications / PennWell Publishing Company. pp. 193–194, 196, 198, 200, 202, 204. ISSN 0010-4566. OCLC 1564597. CODEN CMPDA. ark:/13960/t3hz07m4t. Retrieved 2021-08-14. (7 pages)
  19. ^ a b "Kathryn Betty Strutynski". Monterey Herald (Obituary). 2010-06-19. from the original on 2021-08-14. Retrieved 2021-08-10 – via Legacy.com.
  20. ^ a b Hogan, Thom (1981-09-14). "State of Microcomputing / Some Horses Running Neck and Neck". pp. 10–12. Retrieved 2019-04-08.
  21. ^ Wise, Deborah (1982-05-10). "Mainframe makers court third-party vendors for micro software". InfoWorld. Vol. 4, no. 18. pp. 21–22. from the original on 2015-03-18. Retrieved 2015-01-25.
  22. ^ a b Meyer, Edwin W. (1982-06-14). "The Xerox 820, a CP/M-operated system from Xerox". InfoWorld. Vol. 4, no. 23. pp. 101–104. Retrieved 2019-03-30.
  23. ^ da Cruz, Frank (1984-04-27). "New release of KERMIT for CP/M-80". Info-Kermit Digest (Mailing list). Kermit Project, Columbia University. Archived from the original on 2021-04-17. Retrieved 2016-02-23.
  24. ^ Clarke, A.; Eaton, J. M.; David, D. Powys Lybbe (1983-10-26). CP/M - the Software Bus: A Programmer's Companion. Sigma Press. ISBN 978-0905104188.
  25. ^ Johnson, Herbert R. (2014-07-30). "CP/M and Digital Research Inc. (DRI) History".
  26. ^ Swaine, Michael (1997-04-01). "Gary Kildall and Collegial Entrepreneurship". Dr. Dobb's Journal. from the original on 2007-01-24. Retrieved 2006-11-20.
  27. ^ Bunnell, David (February 1982). "The Man Behind The Machine? / A PC Exclusive Interview With Software Guru Bill Gates". PC Magazine. Vol. 1, no. 1. pp. 16–23 [20]. from the original on 2013-05-09. Retrieved 2012-02-17.
  28. ^ "Radio Shack Computer Catalog RSC-12 page 28". www.radioshackcomputercatalogs.com. Tandy/Radio Shack. from the original on 2016-10-13. Retrieved 2016-07-06.
  29. ^ a b "Digital Research Has CP/M-86 for IBM Displaywriter" (PDF). Digital Research News - for Digital Research Users Everywhere. Pacific Grove, California, USA: Digital Research, Inc. 1 (1): 2, 5, 7. November 1981. Fourth Quarter. (PDF) from the original on 2021-04-17. Retrieved 2020-01-18.
  30. ^ Maher, Jimmy (2017-07-31). "The complete history of the IBM PC, part two: The DOS empire strikes". Ars Technica. p. 3. Retrieved 2019-09-08.
  31. ^ a b Kildall, Gary Arlen (1982-09-16). "Running 8-bit software on dual-processor computers" (PDF). Electronic Design: 157. (PDF) from the original on 2017-08-19. Retrieved 2017-08-19.
  32. ^ Snyder, John J. (June 1983). "A DEC on Every Desk?". BYTE. Vol. 8, no. 6. pp. 104–106. from the original on 2015-01-02. Retrieved 2015-02-05.
  33. ^ . Archived from the original on 2016-03-06. Retrieved 2012-09-17.
  34. ^ Thomas, Rebecca A.; Yates, Jean L. (1981-05-11). "Books, Boards and Software for The New 16-Bit Processors". InfoWorld - The Newspaper for the Microcomputing Community. Vol. 3, no. 9. Popular Computing, Inc. pp. 42–43. ISSN 0199-6649. Retrieved 2020-01-24.
  35. ^ Olmstead, Tim; Chaudry, Gabriele "Gaby". "Digital Research Source Code". from the original on 2016-02-05.
  36. ^ Digital Research (1981): XLT86 - 8080 to 8086 Assembly Language Translator - User's Guide 2016-11-18 at the Wayback Machine Digital Research Inc, Pacific Grove
  37. ^ Pournelle, Jerry (March 1984). "New Machines, Networks, and Sundry Software". BYTE. Vol. 9, no. 3. p. 46. from the original on 2015-02-02. Retrieved 2013-10-22.
  38. ^ Isaacson, Walter (2014). The Innovators: How a Group of Inventors, Hackers, Geniuses, and Geeks Created the Digital Revolution. Simon & Schuster. p. 358. ISBN 978-1-47670869-0.
  39. ^ Bellis, Mary. "Inventors of the Modern Computer Series - The History of the MS-DOS Operating Systems, Microsoft, Tim Paterson, and Gary Kildall". Retrieved 2010-09-09.
  40. ^ Magid, Lawrence J. (February 1982). "Baby Blue". PC Magazine. Vol. 1, no. 1. p. 49. from the original on 2015-03-18. Retrieved 2015-01-04.
  41. ^ Mace, Scott (1984-06-11). "CP/M Eludes Home Market". InfoWorld. Vol. 6, no. 24. p. 46.
  42. ^ Groth, Nancy (1986-02-10). "Kaypro is retreating on CP/M". InfoWorld. Vol. 8, no. 6. p. 6.
  43. ^ "ZCPR - oldcomputers.ddns.org".
  44. ^ . 1987-11-30. Archived from the original on 2019-12-23. Retrieved 2019-11-18.
  45. ^ "CP/M emulators for DOS". www.retroarchive.org/cpm. Luis Basto. from the original on 2016-07-09. Retrieved 2016-07-06.
  46. ^ Davis, Randy (December 1985 – January 1986). Written at Greenville, Texas, USA. "The New NEC Microprocessors - 8080, 8086, Or 8088?" (PDF). Micro Cornucopia. No. 27. Bend, Oregon, USA: Micro Cornucopia Inc. pp. 4–7. ISSN 0747-587X. (PDF) from the original on 2020-02-11. Retrieved 2020-02-11.
  47. ^ "Plug-in CP/M coming". Personal Computer News. 1984-01-14. p. 7. Retrieved 2022-10-03.
  48. ^ Hetherington, Tony (February 1985). "Sharp MZ-800". Personal Computer World. pp. 144–146, 149–150. Retrieved 2022-10-03.
  49. ^ Coles, Ray (June 1984). "Cheaper, simpler CP/M" (PDF). Practical Computing. p. 43. Retrieved 2022-10-03.
  50. ^ a b "CP/M Operating System Manual" (PDF).
  51. ^ a b c CP/M Plus (CP/M Version 3) Operating System Programmers Guide (PDF) (2 ed.). Digital Research. April 1983 [January 1983]. (PDF) from the original on 2016-11-25. Retrieved 2016-11-25.
  52. ^ a b CP/M Plus (CP/M Version 3) Operating System User's Guide (PDF). Digital Research. 1983.
  53. ^ "PL/I Language Programmer's Guide" (PDF). Digital Research.
  54. ^ Mace, Scott (1984-01-09). "IBM PC clone makers shun total compatibility". InfoWorld. Vol. 6, no. 2&3. pp. 79–81. from the original on 2015-03-16. Retrieved 2015-02-04.
  55. ^ Pournelle, Jerry (June 1983). "Zenith Z-100, Epson QX-10, Software Licensing, and the Software Piracy Problem". BYTE. Vol. 8, no. 6. p. 411. from the original on 2014-06-09. Retrieved 2013-10-20.
  56. ^ a b Derfler, Frank J. (1982-10-18). "Kaypro II—a low-priced, 26-pound portable micro". InfoWorld. p. 59. from the original on 2014-01-01. Retrieved 2013-10-22.
  57. ^ Loguidice, Bill (2012-07-28). . Armchair Arcade. Archived from the original on 2015-07-23. Retrieved 2015-07-22.
  58. ^ Sblendorio, Francesco (2015-12-01). "Gorillas for CP/M". GitHub. from the original on 2016-02-05. Retrieved 2015-07-22.
  59. ^ "Section 4 - CP/M Dynamic Debugging Tool". CP/M 2.2. from the original on 2015-06-17. Retrieved 2014-08-29.
  60. ^ CP/M Dynamic Debugging Tool (DDT) - User's Guide (PDF). Digital Research. 1978 [1976]. (PDF) from the original on 2014-10-28. Retrieved 2014-08-29.
  61. ^ Shael (2010-06-26) [2009-12-09]. "DDT Utility". from the original on 2015-12-08. Retrieved 2014-08-29.
  62. ^ Brand, Stewart (1984). Whole Earth Software Catalog. ISBN 978-0-38519166-1. from the original on 2015-07-04.
  63. ^ Lieber, Eckhard; von Massenbach, Thomas (1987). "CP/M 2 lernt dazu. Modulare Systemerweiterungen auch für das 'alte' CP/M". c't - magazin für computertechnik (part 1) (in German). Vol. 1987, no. 1. Heise Verlag. pp. 124–135.
  64. ^ Lieber, Eckhard; von Massenbach, Thomas (1987). "CP/M 2 lernt dazu. Modulare Systemerweiterungen auch für das 'alte' CP/M". c't - magazin für computertechnik (part 2) (in German). Vol. 1987, no. 2. Heise Verlag. pp. 78–85.
  65. ^ Huck, Alex (2016-10-09). "RSM für CP/M 2.2". Homecompuer DDR (in German). from the original on 2016-11-25. Retrieved 2016-11-25.
  66. ^ Pournelle, Jerry (April 1982). "The Osborne 1, Zeke's New Friends, and Spelling Revisited". BYTE. Vol. 7, no. 4. p. 212. Retrieved 2021-05-24.
  67. ^ Waite, Mitchell; Lafore, Robert W.; Volpe, Jerry (1985). "The CP/M Mode". The Official Book for the Commodore 128 Personal Computer. Howard W. Sams & Co. p. 98. ISBN 0-672-22456-9.
  68. ^ "Now: A Complete CP/M Pascal for Only $29.95!". BYTE (advertisement). Vol. 7, no. 12. December 1982. p. 11. from the original on 2016-07-21. Retrieved 2016-10-01.
  69. ^ "Ellis Computing". BYTE (advertisement). Vol. 8, no. 12. December 1983. p. 69.
  70. ^ Fager, Roger; Bohr, John (September 1983). "The Kaypro II". BYTE. Vol. 8, no. 9. p. 212. from the original on 2014-03-02. Retrieved 2013-10-20.
  71. ^ Johnson-Laird, Andy (1983). "3". The programmer's CP/M handbook. Berkeley, California, USA: Osborne/McGraw-Hill. ISBN 0-88134-103-7.
  72. ^ . Archived from the original on 2013-07-03. Retrieved 2017-10-06.
  73. ^ Ciarcia, Steve (September 1985). "Build the SB-180" (PDF). BYTE Magazine. CMP Media. p. 100. Retrieved 2019-06-18.
  74. ^ CP/AM 5.1 User Manual. Applied Engineering. p. 1. Retrieved 2020-05-22.
  75. ^ "CP/M Builtin Commands". discordia.org.uk. from the original on 2008-04-12. Retrieved 2009-01-28.
  76. ^ a b Pohlers, Volker (2019-04-30). "CP/A". Homecomputer DDR (in German). from the original on 2020-02-21. Retrieved 2020-02-21.
  77. ^ a b Kurth, Rüdiger; Groß, Martin; Hunger, Henry (2019-01-03). "Betriebssysteme". www.robotrontechnik.de (in German). Archived from the original on 2019-04-27. Retrieved 2019-04-27.
  78. ^ a b c Kurth, Rüdiger; Groß, Martin; Hunger, Henry (2019-01-03). "Betriebssystem SCP". www.robotrontechnik.de (in German). Archived from the original on 2019-04-27. Retrieved 2019-04-27.
  79. ^ Chen, Raymond. "Why does MS-DOS use 8.3 filenames instead of, say, 11.2 or 16.16?". The Old New Thing. from the original on 2011-09-22. Retrieved 2010-12-17.
  80. ^ Chen, Raymond. "How did wildcards work in MS-DOS?". The Old New Thing. from the original on 2011-05-08. Retrieved 2010-12-17.
  81. ^ Chen, Raymond. "What's the deal with those reserved filenames like NUL and CON?". The Old New Thing. from the original on 2010-08-02. Retrieved 2010-12-17.
  82. ^ Chen, Raymond. . The Old New Thing. Archived from the original on 2011-02-06. Retrieved 2010-12-17.
  83. ^ Olmstead, Tim (1997-08-10). . Newsgroup: comp.os.cpm. Archived from the original on 2017-09-01. Retrieved 2018-09-09.
  84. ^ Olmstead, Tim (1997-08-29). . Newsgroup: comp.os.cpm. Archived from the original on 2017-09-01. Retrieved 2018-09-09.
  85. ^ "License Agreement". Caldera, Inc. 1997-08-28. Archived from the original on 2018-09-08. Retrieved 2015-07-25. [3] [4]
  86. ^ . 2001-09-12. Archived from the original on 2018-09-09.
  87. ^ Sparks, Bryan Wayne (2001-10-19). Chaudry, Gabriele "Gaby" (ed.). "License agreement for the CP/M material presented on this site". Lineo, Inc. Archived from the original on 2018-09-08. Retrieved 2015-07-25.
  88. ^ Chaudry, Gabriele "Gaby" (ed.). "The Unofficial CP/M Web Site". from the original on 2016-02-03.
  89. ^ Swaine, Michael (2004-06-01). . Dr. Dobb's Journal. Vol. 29, no. 6. CMP Media LLC. pp. 71–73. #361. Archived from the original on 2018-09-09. Retrieved 2018-09-09. [5]
  90. ^ Laws, David (2014-10-01). "Early Digital Research CP/M Source Code". Computer History Museum. from the original on 2015-07-27. Retrieved 2015-07-25.

Further reading

  • Zaks, Rodnay (1980). The CP/M Handbook With MP/M. SYBEX Inc. ISBN 0-89588-048-2.
  • Conn, Richard (1985). ZCPR3 - The Manual. ISBN 0-918432-59-6.
  • . The Computer Journal (54). Archived from the original on 2010-10-29.
  • . Archived from the original on 2008-06-11.
  • Katie, Mustafa A. (2013-08-14). "Intel iPDS-100 Using CP/M-Video".
  • "IEEE Milestone in Electrical Engineering and Computing - CP/M - Microcomputer Operating System, 1974" (PDF). Computer History Museum. 2014-04-25. (PDF) from the original on 2019-04-03. Retrieved 2019-04-03.
  • "Triumph of the Nerds". PBS. (NB. This PBS series includes the details of IBM's choice of Microsoft DOS over Digital Research's CP/M for the IBM PC)
  • "CP/M FAQ". comp.os.cpm. [6]

External links

  • The Unofficial CP/M Web site (founded by Tim Olmstead) - Includes source code
  • Gaby Chaudry's Homepage for CP/M and Computer History - includes ZCPR materials
  • CP/M Main Page - John C. Elliott's technical information site
  • CP/M Internals - CP/M internals
  • CP/M at Curlie
  • ftp://ftp.uni-bayreuth.de/pub/pc/caldera/cpm2.2/[permanent dead link]
  • How to transfer CP/M floppy disks

this, article, about, digital, research, operating, system, similarly, named, microsoft, operating, system, bdos, redirects, here, kernel, bdos, kernel, bdos, operating, system, redirects, here, developer, unrelated, seattle, computer, products, this, article,. This article is about the Digital Research operating system For the similarly named IBM and Microsoft operating system see CP DOS BDOS redirects here For the DOS kernel see BDOS DOS For the MSX DOS kernel see BDOS MSX SCP operating system redirects here For the developer of the unrelated SCP 86 DOS see Seattle Computer Products This article s lead section may be too short to adequately summarize the key points Please consider expanding the lead to provide an accessible overview of all important aspects of the article April 2022 CP M 3 originally standing for Control Program Monitor 4 and later Control Program for Microcomputers 5 6 7 is a mass market operating system created in 1974 for Intel 8080 85 based microcomputers by Gary Kildall of Digital Research Inc Initially confined to single tasking on 8 bit processors and no more than 64 kilobytes of memory later versions of CP M added multi user variations and were migrated to 16 bit processors CP MA screenshot of CP M 86DeveloperDigital Research Inc Gary KildallWritten inPL M Assembly languageWorking stateHistoricalSource modelOriginally closed source now open source 1 Initial release1974 49 years ago 1974 Latest release3 1 1983 40 years ago 1983 2 Available inEnglishUpdate methodRe installationPackage managerNonePlatformsIntel 8080 Intel 8085 Zilog Z80 Zilog Z8000 Intel 8086 Motorola 68000Kernel typeMonolithic kernelInfluenced byRT 11 OS 8Defaultuser interfaceCommand line interface CCP COM LicenseOriginally proprietary now BSD likeSucceeded byMP M CP M 86Official websiteDigital Research CP M pageThe combination of CP M and S 100 bus computers became an early standard in the microcomputer industry This computer platform was widely used in business through the late 1970s and into the mid 1980s 8 CP M increased the market size for both hardware and software by greatly reducing the amount of programming required to install an application on a new manufacturer s computer 9 10 An important driver of software innovation was the advent of comparatively low cost microcomputers running CP M as independent programmers and hackers bought them and shared their creations in user groups 11 CP M was eventually displaced by DOS following the 1981 introduction of the IBM PC Contents 1 History 1 1 Early history 1 2 Initial success 1 3 Multi user 1 4 CP M Plus 1 5 16 bit versions 1 6 Displacement by MS DOS 1 7 ZCPR 2 Hardware model 3 Components 3 1 Console Command Processor 3 2 Basic Disk Operating System 3 3 Basic Input Output System 4 Applications 4 1 Transient Program Area 4 2 Debugging application 4 3 Resident programs 4 4 Software installation 5 Disk formats 5 1 File system 6 Graphics 7 Derivatives 8 Legacy 9 See also 10 References 11 Further reading 12 External linksHistory Edit CP M advertisement in the 29 November 1982 issue of InfoWorld magazine Early history Edit Gary Kildall originally developed CP M during 1974 5 6 as an operating system to run on an Intel Intellec 8 development system equipped with a Shugart Associates 8 inch floppy disk drive interfaced via a custom floppy disk controller 12 It was written in Kildall s own PL M Programming Language for Microcomputers 13 Various aspects of CP M were influenced by the TOPS 10 operating system of the DECsystem 10 mainframe computer which Kildall had used as a development environment 14 15 16 An early outside licensee of CP M was Gnat Computers an early microcomputer developer out of San Diego California In 1977 the company was granted the license to use CP M 1 0 for any micro they desired for 90 Within the year demand for CP M was so high that Digital Research was able to increase the license to tens of thousands of dollars 17 Under Kildall s direction the development of CP M 2 0 was mostly carried out by John Pierce in 1978 Kathryn Strutynski a friend of Kildall from Naval Postgraduate School NPS times became the fourth employee of Digital Research Inc in early 1979 She started by debugging CP M 2 0 and later became influential as key developer for CP M 2 2 and CP M Plus Other early developers of the CP M base included Robert Bob Silberstein and David Dave K Brown 18 19 CP M originally stood for Control Program Monitor 3 a name which implies a resident monitor a primitive precursor to the operating system However during the conversion of CP M to a commercial product trademark registration documents filed in November 1977 gave the product s name as Control Program for Microcomputers 6 The CP M name follows a prevailing naming scheme of the time as in Kildall s PL M language and Prime Computer s PL P Programming Language for Prime both suggesting IBM s PL I and IBM s CP CMS operating system which Kildall had used when working at the NPS This renaming of CP M was part of a larger effort by Kildall and his wife with business partner Dorothy McEwen 4 to convert Kildall s personal project of CP M and the Intel contracted PL M compiler into a commercial enterprise The Kildalls intended to establish the Digital Research brand and its product lines as synonymous with microcomputer in the consumer s mind similar to what IBM and Microsoft together later successfully accomplished in making personal computer synonymous with their product offerings Intergalactic Digital Research Inc was later renamed via a corporation change of name filing to Digital Research Inc 4 Initial success Edit Apple CP M Card with manual By September 1981 Digital Research had sold more than 260000 CP M licenses InfoWorld stated that the actual market was likely larger because of sublicenses Many different companies produced CP M based computers for many different markets the magazine stated that CP M is well on its way to establishing itself as the small computer operating system 20 The companies chose to support CP M because of its large library of software The Xerox 820 ran the operating system because where there are literally thousands of programs written for it it would be unwise not to take advantage of it Xerox said 21 Xerox included a Howard W Sams CP M manual as compensation for Digital Research s documentation which InfoWorld in 1982 described as atrocious 22 By 1984 Columbia University used the same source code to build Kermit binaries for more than a dozen different CP M systems plus a generic version 23 The operating system was described as a software bus 24 25 allowing multiple programs to interact with different hardware in a standardized way 26 Programs written for CP M were typically portable among different machines usually requiring only the specification of the escape sequences for control of the screen and printer This portability made CP M popular and much more software was written for CP M than for operating systems that ran on only one brand of hardware One restriction on portability was that certain programs used the extended instruction set of the Z80 processor and would not operate on an 8080 or 8085 processor Another was graphics routines especially in games and graphics programs which were generally machine specific as they used direct hardware access for speed bypassing the OS and BIOS this was also a common problem in early DOS machines citation needed Bill Gates claimed that the Apple II series with a Z 80 SoftCard was the single most popular CP M hardware platform 27 Many different brands of machines ran the operating system some notable examples being the Altair 8800 the IMSAI 8080 the Osborne 1 and Kaypro luggables and MSX computers 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 CP M 3 was also used on the NIAT a custom handheld computer designed for A C Nielsen s internal use with 1 MB of SSD memory Multi user Edit Main article MP M In 1979 a multi user compatible derivative of CP M was released MP M allowed multiple users to connect to a single computer using multiple terminals to provide each user with a screen and keyboard Later versions ran on 16 bit processors CP M Plus Edit CP M Plus CP M 3 System Guide The last 8 bit version of CP M was version 3 often called CP M Plus released in 1983 18 Its BDOS was designed by Brown 18 It incorporated the bank switching memory management of MP M in a single user single task operating system compatible with CP M 2 2 applications CP M 3 could therefore use more than 64 KB of memory on an 8080 or Z80 processor The system could be configured to support date stamping of files 18 The operating system distribution software also included a relocating assembler and linker 2 CP M 3 was available for the last generation of 8 bit computers notably the Amstrad PCW the Amstrad CPC the ZX Spectrum 3 the Commodore 128 MSX machines and the Radio Shack TRS 80 Model 4 28 16 bit versions Edit DEC PRO CP M 80 floppy disk distribution for the Z80 A co processor in a DEC Professional 3xx series There were versions of CP M for some 16 bit CPUs as well The first version in the 16 bit family was CP M 86 for the Intel 8086 in November 1981 29 Kathryn Strutynski was the project manager for the evolving CP M 86 line of operating systems 18 19 At this point the original 8 bit CP M became known by the retronym CP M 80 to avoid confusion 29 CP M 86 was expected to be the standard operating system of the new IBM PCs but DRI and IBM were unable to negotiate development and licensing terms IBM turned to Microsoft instead and Microsoft delivered PC DOS based on 86 DOS Although CP M 86 became an option for the IBM PC after DRI threatened legal action it never overtook Microsoft s system Most customers were repelled by the significantly greater price IBM charged for CP M 86 over PC DOS US 240 and US 40 respectively 30 When Digital Equipment Corporation DEC put out the Rainbow 100 to compete with IBM it came with CP M 80 using a Z80 chip CP M 86 or MS DOS using an 8088 microprocessor or CP M 86 80 using both The Z80 and 8088 CPUs ran concurrently 31 32 A benefit of the Rainbow was that it could continue to run 8 bit CP M software preserving a user s possibly sizable investment as they moved into the 16 bit world of MS DOS 31 A similar dual processor adaption for the CompuPro System 816 sr was named CP M 8 16 The CP M 86 adaptation for the 8085 8088 based Zenith Z 100 also supported running programs for both of its CPUs Soon following CP M 86 another 16 bit version of CP M was CP M 68K for the Motorola 68000 The original version of CP M 68K in 1982 was written in Pascal MT 68k but it was ported to C later on CP M 68K already running on the Motorola EXORmacs systems was initially to be used in the Atari ST computer but Atari decided to go with a newer disk operating system called GEMDOS CP M 68K was also used on the SORD M68 and M68MX computers 33 In 1982 there was also a port from CP M 68K to the 16 bit Zilog Z8000 for the Olivetti M20 written in C named CP M 8000 34 35 These 16 bit versions of CP M required application programs to be re compiled for the new CPUs Some programs written in assembly language could be automatically translated for a new processor One tool for this was Digital Research s XLT86 which translated ASM source code for the Intel 8080 processor into A86 source code for the Intel 8086 The translator would also optimize the output for code size and take care of calling conventions so that CP M 80 and MP M 80 programs could be ported to the CP M 86 and MP M 86 platforms automatically XLT86 itself was written in PL I 80 and was available for CP M 80 platforms as well as for VAX VMS 36 Displacement by MS DOS Edit Many expected that CP M would be the standard operating system for 16 bit computers 37 In 1980 IBM approached Digital Research at Bill Gates suggestion 38 to license a forthcoming version of CP M for its new product the IBM Personal Computer Upon the failure to obtain a signed non disclosure agreement the talks failed and IBM instead contracted with Microsoft to provide an operating system 39 The resulting product MS DOS soon began outselling CP M Many of the basic concepts and mechanisms of early versions of MS DOS resembled those of CP M Internals like file handling data structures were identical and both referred to disk drives with a letter A B etc MS DOS s main innovation was its FAT file system This similarity made it easier to port popular CP M software like WordStar and dBase However CP M s concept of separate user areas for files on the same disk was never ported to MS DOS Since MS DOS had access to more memory as few IBM PCs were sold with less than 64 KB of memory while CP M could run in 16 KB if necessary more commands were built into the command line shell making MS DOS somewhat faster and easier to use on floppy based computers Although one of the first peripherals for the IBM PC was a SoftCard like expansion card that let it run 8 bit CP M software 40 InfoWorld stated in 1984 that efforts to introduce CP M to the home market had been largely unsuccessful and most CP M software was too expensive for home users 41 In 1986 the magazine stated that Kaypro had stopped production of 8 bit CP M based models to concentrate on sales of MS DOS compatible systems long after most other vendors had ceased production of new equipment and software for CP M 42 CP M rapidly lost market share as the microcomputing market moved to the IBM compatible platform and it never regained its former popularity Byte magazine at the time one of the leading industry magazines for microcomputers essentially ceased covering CP M products within a few years of the introduction of the IBM PC For example in 1983 there were still a few advertisements for S 100 boards and articles on CP M software but by 1987 these were no longer found in the magazine Later versions of CP M 86 made significant strides in performance and usability and were made compatible with MS DOS To reflect this compatibility the name was changed and CP M 86 became DOS Plus which in turn became DR DOS ZCPR Edit ZCPR 43 the Z80 Command Processor Replacement was introduced on 2 February 1982 as a drop in replacement for the standard Digital Research console command processor CCP and was initially written by a group of computer hobbyists who called themselves The CCP Group They were Frank Wancho Keith Petersen the archivist behind Simtel at the time Ron Fowler Charlie Strom Bob Mathias and Richard Conn Richard was in fact the driving force in this group all of whom maintained contact through email ZCPR1 was released on a disk put out by SIG M Special Interest Group Microcomputers a part of the Amateur Computer Club of New Jersey ZCPR2 was released on 14 February 1983 It was released as a set of ten disks from SIG M ZCPR2 was upgraded to 2 3 and also was released in 8080 code permitting the use of ZCPR2 on 8080 and 8085 systems ZCPR3 44 was released on 14 July 1984 as a set of nine disks from SIG M The code for ZCPR3 could also be compiled with reduced features for the 8080 and would run on systems that did not have the requisite Z80 microprocessor Features of ZCPR as of version 3 included shells aliases I O redirection flow control named directories search paths custom menus passwords and online help In January 1987 Richard Conn stopped developing ZCPR and Echelon asked Jay Sage who already had a privately enhanced ZCPR 3 1 to continue work on it Thus ZCPR 3 3 was developed and released ZCPR 3 3 no longer supported the 8080 series of microprocessors and added the most features of any upgrade in the ZCPR line ZCPR 3 3 also included a full complement of utilities with considerably extended capabilities While enthusiastically supported by the CP M user base of the time ZCPR alone was insufficient to slow the demise of CP M Hardware model Edit Sanco 8001 computer running under CP M 2 2 1982 CP M cartridge for the Commodore 64 A minimal 8 bit CP M system would contain the following components A computer terminal using the ASCII character set An Intel 8080 and later the 8085 or Zilog Z80 microprocessor The NEC V20 and V30 processors support an 8080 emulation mode that can run 8 bit CP M on a PC DOS MS DOS computer so equipped though any PC can also run the 16 bit CP M 86 45 46 At least 16 kilobytes of RAM beginning at address 0 A means to bootstrap the first sector of the diskette At least one floppy disk driveThe only hardware system that CP M as sold by Digital Research would support was the Intel 8080 Development System Manufacturers of CP M compatible systems customized portions of the operating system for their own combination of installed memory disk drives and console devices CP M would also run on systems based on the Zilog Z80 processor since the Z80 was compatible with 8080 code While the Digital Research distributed core of CP M BDOS CCP core transient commands did not use any of the Z80 specific instructions many Z80 based systems used Z80 code in the system specific BIOS and many applications were dedicated to Z80 based CP M machines Digital Research subsequently partnered with Zilog and American Microsystems to produce Personal CP M a ROM based version of the operating system aimed at lower cost systems that could potentially be equipped without disk drives 47 First featured in the Sharp MZ 800 a cassette based system with optional disk drives 48 Personal CP M was described as having been rewritten to take advantage of the enhanced Z 80 instruction set as opposed to preserving portability with the 8080 American Microsystems announced a Z80 compatible microprocessor the S83 featuring 8 KB of in package ROM for the operating system and BIOS together with comprehensive logic for interfacing with 64 kilobit dynamic RAM devices 49 On most machines the bootstrap was a minimal bootloader in ROM combined with some means of minimal bank switching or a means of injecting code on the bus since the 8080 needs to see boot code at Address 0 for start up while CP M needs RAM there for others this bootstrap had to be entered into memory using front panel controls each time the system was started CP M used the 7 bit ASCII set The other 128 characters made possible by the 8 bit byte were not standardized For example one Kaypro used them for Greek characters and Osborne machines used the 8th bit set to indicate an underlined character WordStar used the 8th bit as an end of word marker International CP M systems most commonly used the ISO 646 norm for localized character sets replacing certain ASCII characters with localized characters rather than adding them beyond the 7 bit boundary Components EditIn the 8 bit versions while running the CP M operating system loaded into memory had three components 3 Basic Input Output System BIOS Basic Disk Operating System BDOS Console Command Processor CCP The BIOS and BDOS were memory resident while the CCP was memory resident unless overwritten by an application in which case it was automatically reloaded after the application finished running A number of transient commands for standard utilities were also provided The transient commands resided in files with the extension COM on disk The BIOS directly controlled hardware components other than the CPU and main memory It contained functions such as character input and output and the reading and writing of disk sectors The BDOS implemented the CP M file system and some input output abstractions such as redirection on top of the BIOS The CCP took user commands and either executed them directly internal commands such as DIR to show a directory or ERA to delete a file or loaded and started an executable file of the given name transient commands such as PIP COM to copy files or STAT COM to show various file and system information Third party applications for CP M were also essentially transient commands The BDOS CCP and standard transient commands were the same in all installations of a particular revision of CP M but the BIOS portion was always adapted to the particular hardware Adding memory to a computer for example meant that the CP M system had to be reinstalled to allow transient programs to use the additional memory space A utility program MOVCPM was provided with system distribution that allowed relocating the object code to different memory areas The utility program adjusted the addresses in absolute jump and subroutine call instructions to new addresses required by the new location of the operating system in processor memory This newly patched version could then be saved on a new disk allowing application programs to access the additional memory made available by moving the system components Once installed the operating system BIOS BDOS and CCP was stored in reserved areas at the beginning of any disk which would be used to boot the system On start up the bootloader usually contained in a ROM firmware chip would load the operating system from the disk in drive A By modern standards CP M was primitive owing to the extreme constraints on program size With version 1 0 there was no provision for detecting a changed disk If a user changed disks without manually rereading the disk directory the system would write on the new disk using the old disk s directory information ruining the data stored on the disk From version 1 1 or 1 2 onwards changing a disk then trying to write to it before its directory was read would cause a fatal error to be signalled This avoided overwriting the disk but required a reboot and loss of the data that was to be stored on disk The majority of the complexity in CP M was isolated in the BDOS and to a lesser extent the CCP and transient commands This meant that by porting the limited number of simple routines in the BIOS to a particular hardware platform the entire OS would work This significantly reduced the development time needed to support new machines and was one of the main reasons for CP M s widespread use Today this sort of abstraction is common to most OSs a hardware abstraction layer but at the time of CP M s birth OSs were typically intended to run on only one machine platform and multilayer designs were considered unnecessary Console Command Processor Edit Screenshot showing a CP M 3 0 directory listing using the a href Dir command html title Dir command DIR a command on a Commodore 128 home computer The Console Command Processor or CCP accepted input from the keyboard and conveyed results to the terminal CP M itself would work with either a printing terminal or a video terminal All CP M commands had to be typed in on the command line The console would most often display the A gt prompt to indicate the current default disk drive When used with a video terminal this would usually be followed by a blinking cursor supplied by the terminal The CCP would await input from the user A CCP internal command of the form drive letter followed by a colon could be used to select the default drive For example typing B and pressing enter at the command prompt would change the default drive to B and the command prompt would then become B gt to indicate this change CP M s command line interface was patterned after the operating systems from Digital Equipment such as RT 11 for the PDP 11 and OS 8 for the PDP 8 citation needed Commands took the form of a keyword followed by a list of parameters separated by spaces or special characters Similar to a Unix shell builtin if an internal command was recognized it was carried out by the CCP itself Otherwise it would attempt to find an executable file on the currently logged disk drive and in later versions user area load it and pass it any additional parameters from the command line These were referred to as transient programs On completion CP M would reload the part of the CCP that had been overwritten by application programs this allowed transient programs a larger memory space The commands themselves could sometimes be obscure For instance the command to duplicate files was named a href Peripheral Interchange Program html title Peripheral Interchange Program PIP a Peripheral Interchange Program the name of the old DEC utility used for that purpose The format of parameters given to a program was not standardized so that there was no single option character that differentiated options from file names Different programs could and did use different characters The CP M Console Command Processor includes DIR ERA REN SAVE TYPE and USER as built in commands 50 Transient commands in CP M include ASM DDT DUMP ED LOAD MOVCPM pl PIP STAT SUBMIT and SYSGEN 50 CP M Plus CP M Version 3 includes DIR display list of files from a directory except those marked with the SYS attribute DIRSYS DIRS list files marked with the SYS attribute in the directory ERASE ERA delete a file RENAME REN rename a file TYPE TYP display contents of an ASCII character file and USER USE change user number as built in commands 51 CP M 3 allows the user to abbreviate the built in commands 52 Transient commands in CP M 3 include COPYSYS DATE DEVICE DUMP ED GET HELP HEXCOM INITDIR LINK MAC PIP PUT RMAC SET SETDEF SHOW SID SUBMIT and XREF 52 Basic Disk Operating System Edit The Basic Disk Operating System 13 12 or BDOS 13 12 provided access to such operations as opening a file output to the console or printing Application programs would load processor registers with a function code for the operation and addresses for parameters or memory buffers and call a fixed address in memory Since the address was the same independent of the amount of memory in the system application programs would run the same way for any type or configuration of hardware Basic Input Output System Edit CP M advertisement in the 11 December 1978 issue of InfoWorld magazine The Basic Input Output System or BIOS 13 12 provided the lowest level functions required by the operating system These included reading or writing single characters to the system console and reading or writing a sector of data from the disk The BDOS handled some of the buffering of data from the diskette but before CP M 3 0 it assumed a disk sector size fixed at 128 bytes as used on single density 8 inch floppy disks Since most 5 25 inch disk formats used larger sectors the blocking and deblocking and the management of a disk buffer area was handled by model specific code in the BIOS Customization was required because hardware choices were not constrained by compatibility with any one popular standard For example some manufacturers used a separate computer terminal while others designed a built in integrated video display system Serial ports for printers and modems could use different types of UART chips and port addresses were not fixed Some machines used memory mapped I O instead of the 8080 I O address space All of these variations in the hardware were concealed from other modules of the system by use of the BIOS which used standard entry points for the services required to run CP M such as character I O or accessing a disk block Since support for serial communication to a modem was very rudimentary in the BIOS or may have been absent altogether it was common practice for CP M programs that used modems to have a user installed overlay containing all the code required to access a particular machine s serial port Applications Edit Distribution 5 1 4 inch diskettes and packaging for the last version version 4 of WordStar word processing program released for 8 bit CP M WordStar one of the first widely used word processors and dBase an early and popular database program for microcomputers were originally written for CP M Two early outliners KAMAS Knowledge and Mind Amplification System and its cut down successor Out Think without programming facilities and retooled for 8080 V20 compatibility were also written for CP M though later rewritten for MS DOS Turbo Pascal the ancestor of Borland Delphi and Multiplan the ancestor of Microsoft Excel also debuted on CP M before MS DOS versions became available VisiCalc the first ever spreadsheet program was made available for CP M Another company Sorcim created its SuperCalc spreadsheet for CP M which would go on to become the market leader and de facto standard on CP M Supercalc would go on to be a competitor in the spreadsheet market in the MS DOS world AutoCAD a CAD application from Autodesk debuted on CP M A host of compilers and interpreters for popular programming languages of the time such as BASIC Borland s Turbo Pascal FORTRAN and even PL I 53 were available among them several of the earliest Microsoft products CP M software often came with installers that adapted it to a wide variety of computers 54 The source code for BASIC programs was easily accessible and most forms of copy protection were ineffective on the operating system 55 A Kaypro II owner for example would obtain software on Xerox 820 format then copy it to and run it from Kaypro format disks 56 The lack of standardized graphics support limited video games but various character and text based games were ported such as Telengard 57 Gorillas 58 Hamurabi Lunar Lander along with early interactive fiction including the Zork series and Colossal Cave Adventure Text adventure specialist Infocom was one of the few publishers to consistently release their games in CP M format Lifeboat Associates started collecting and distributing user written free software One of the first was XMODEM which allowed reliable file transfers via modem and phone line Another program native to CP M was the outline processor KAMAS citation needed Transient Program Area Edit The read write memory between address 0100 hexadecimal and the lowest address of the BDOS was the Transient Program Area TPA available for CP M application programs Although all Z80 and 8080 processors could address 64 kilobytes of memory the amount available for application programs could vary depending on the design of the particular computer Some computers used large parts of the address space for such things as BIOS ROMs or video display memory As a result some systems had more TPA memory available than others Bank switching was a common technique that allowed systems to have a large TPA while switching out ROM or video memory space as needed CP M 3 0 allowed parts of the BDOS to be in bank switched memory as well Debugging application Edit CP M came with a Dynamic Debugging Tool nicknamed DDT after the insecticide i e a bug killer which allowed memory and program modules to be examined and manipulated and allowed a program to be executed one step at a time 59 60 61 Resident programs Edit CP M originally did not support the equivalent of terminate and stay resident TSR programs as under DOS Programmers could write software that could intercept certain operating system calls and extend or alter their functionality Using this capability programmers developed and sold auxiliary desk accessory programs such as SmartKey a keyboard utility to assign any string of bytes to any key 62 CP M 3 however added support for dynamically loadable Resident System Extensions RSX 51 18 A so called null command file could be used to allow CCP to load an RSX without a transient program 51 18 Similar solutions like RSMs for Resident System Modules were also retrofitted to CP M 2 2 systems by third parties 63 64 65 Software installation Edit Although CP M provided some hardware abstraction to standardize the interface to disk I O or console I O application programs still typically required installation to make use of all the features of such equipment as printers and terminals Often these were controlled by escape sequences which had to be altered for different devices For example the escape sequence to select bold face on a printer would have differed among manufacturers and sometimes among models within a manufacturer s range This procedure was not defined by the operating system a user would typically run an installation program that would either allow selection from a range of devices or else allow feature by feature editing of the escape sequences required to access a function This had to be repeated for each application program since there was no central operating system service provided for these devices The initialization codes for each model of printer had to be written into the application To use a program such as Wordstar with more than one printer say a fast dot matrix printer or a slower but presentation quality daisy wheel printer a separate version of Wordstar had to be prepared and one had to load the Wordstar version that corresponded to the printer selected and exiting and reloading to change printers Disk formats EditIBM System 34 and IBM 3740 s single density single sided format is CP M s standard 8 inch floppy disk format No standard 5 25 inch CP M disk format exists with Kaypro Morrow Designs Osborne and others each using their own 66 22 67 InfoWorld estimated in September 1981 that about two dozen formats were popular enough that software creators had to consider them to reach the broadest possible market 20 JRT Pascal for example provided versions on 5 25 inch disk for North Star Osborne Apple Heath hard sector and soft sector and Superbrain and one 8 inch version 68 Ellis Computing also offered its software for both Heath formats and 16 other 5 25 inch formats including two different TRS 80 CP M modifications 69 Certain disk formats were more popular than others Most software was available in the Xerox 820 format and other computers such as the Kaypro II were compatible with it 56 70 No single manufacturer however prevailed in the 5 25 inch era of CP M use and disk formats were often not portable between hardware manufacturers A software manufacturer had to prepare a separate version of the program for each brand of hardware on which it was to run With some manufacturers Kaypro is an example there was not even standardization across the company s different models Because of this situation disk format translation programs which allowed a machine to read many different formats became popular and reduced the confusion as did programs like Kermit which allowed transfer of data and programs from one machine to another using the serial ports that most CP M machines had Various formats were used depending on the characteristics of particular systems and to some degree the choices of the designers CP M supported options to control the size of reserved and directory areas on the disk and the mapping between logical disk sectors as seen by CP M programs and physical sectors as allocated on the disk There were many ways to customize these parameters for every system 71 but once they had been set no standardized way existed for a system to load parameters from a disk formatted on another system The degree of portability between different CP M machines depended on the type of disk drive and controller used since many different floppy types existed in the CP M era in both 8 inch and 5 25 inch format Disks could be hard or soft sectored single or double density single or double sided 35 track 40 track 77 track or 80 track and the sector layout size and interleave could vary widely as well Although translation programs could allow the user to read disk types from different machines the drive type and controller were also factors By 1982 soft sector single sided 40 track 5 25 inch disks had become the most popular format to distribute CP M software on as they were used by the most common consumer level machines of that time such as the Apple II TRS 80 Osborne 1 Kaypro II and IBM PC A translation program allowed the user to read any disks on his machine that had a similar format for example the Kaypro II could read TRS 80 Osborne IBM PC and Epson disks Other disk types such as 80 track or hard sectored were completely impossible to read The first half of double sided disks like those of the Epson QX 10 could be read because CP M accessed disk tracks sequentially with track 0 being the first outermost track of side 1 and track 79 on a 40 track disk being the last innermost track of side 2 Apple II users were unable to use anything but Apple s GCR format and so had to obtain CP M software on Apple format disks or else transfer it via serial link The fragmented CP M market requiring distributors either to stock multiple formats of disks or to invest in multiformat duplication equipment compared with the more standardized IBM PC disk formats was a contributing factor to the rapid obsolescence of CP M after 1981 One of the last notable CP M capable machines to appear was the Commodore 128 in 1985 which had a Z80 for CP M support in addition to its native mode using a 6502 derivative CPU Using CP M required either a 1571 or 1581 disk drive which could read soft sector 40 track MFM format disks The first computer to use a 3 5 inch floppy drive the Sony SMC 70 72 ran CP M 2 2 The Commodore 128 Bondwell 2 laptop Micromint Ciarcia SB 180 73 MSX and TRS 80 Model 4 running Montezuma CP M 2 2 also supported the use of CP M with 3 5 inch floppy disks CP AM Applied Engineering s version of CP M for the Apple II also supported 3 5 inch disks as well RAM disks on RAM cards compatible with the Apple II Memory Expansion Card 74 The Amstrad PCW ran CP M using 3 inch floppy drives at first and later switched to the 3 5 inch drives File system Edit File names were specified as a string of up to eight characters followed by a period followed by a file name extension of up to three characters 8 3 filename format The extension usually identified the type of the file For example COM indicated an executable program file and TXT indicated a file containing ASCII text Characters in filenames entered at the command prompt were converted to upper case but this was not enforced by the operating system Programs MBASIC is a notable example were able to create filenames containing lower case letters which then could not easily be referenced at the command line Each disk drive was identified by a drive letter for example drive A and drive B To refer to a file on a specific drive the drive letter was prefixed to the file name separated by a colon e g A FILE TXT With no drive letter prefixed access was to files on the current default drive 75 File size was specified as the number of 128 byte records directly corresponding to disk sectors on 8 inch drives occupied by a file on the disk There was no generally supported way of specifying byte exact file sizes The current size of a file was maintained in the file s File Control Block FCB by the operating system Since many application programs such as text editors prefer to deal with files as sequences of characters rather than as sequences of records by convention text files were terminated with a control Z character ASCII SUB hexadecimal 1A Determining the end of a text file therefore involved examining the last record of the file to locate the terminating control Z This also meant that inserting a control Z character into the middle of a file usually had the effect of truncating the text contents of the file With the advent of larger removable and fixed disk drives disk de blocking formulas were employed which resulted in more disk blocks per logical file allocation block While this allowed for larger file sizes it also meant that the smallest file which could be allocated increased in size from 1 KB on single density drives to 2 KB on double density drives and so on up to 32 KB for a file containing only a single byte This made for inefficient use of disk space if the disk contained a large number of small files File modification time stamps were not supported in releases up to CP M 2 2 but were an optional feature in MP M and CP M 3 0 18 CP M 2 2 had no subdirectories in the file structure but provided 16 numbered user areas to organize files on a disk To change user one had to simply type User X at the command prompt X being the user number Security was non existent and considered unnecessary on a personal computer The user area concept was to make the single user version of CP M somewhat compatible with multi user MP M systems A common patch for the CP M and derivative operating systems was to make one user area accessible to the user independent of the currently set user area A USER command allowed the user area to be changed to any area from 0 to 15 User 0 was the default If one changed to another user such as USER 1 the material saved on the disk for this user would only be available to USER 1 USER 2 would not be able to see it or access it However files stored in the USER 0 area were accessible to all other users their location was specified with a prefatory path since the files of USER 0 were only visible to someone logged in as USER 0 The user area feature arguably had little utility on small floppy disks but it was useful for organizing files on machines with hard drives The intent of the feature was to ease use of the same computer for different tasks For example a secretary could do data entry then after switching USER areas another employee could use the machine to do billing without their files intermixing Graphics Edit MBASIC text output displayed on a monochrome monitor typical for that time Although graphics capable S 100 systems existed from the commercialization of the S 100 bus CP M did not provide any standardized graphics support until 1982 with GSX Graphics System Extension Owing to the small amount of available memory graphics was never a common feature associated with 8 bit CP M operating systems Most systems could only display rudimentary ASCII art charts and diagrams in text mode or by using a custom character set Some computers in the Kaypro line and the TRS 80 Model 4 had video hardware supporting block graphics characters and these were accessible to assembler programmers and BASIC programmers using the CHR command The Model 4 could display 640 by 240 pixel graphics with an optional high resolution board Derivatives Edit CP M derivate SCP running on an East German robotron PC 1715 CP J version 2 21 running on an Elwro 804 Junior A number of CP M 80 derivatives existed in the former Eastern Bloc under various names including SCP Single User Control Program de SCP M CP A 76 CP J CP KC CP KSOB CP L CP Z MICRODOS BCU880 ZOAZ OS M TOS M ZSDOS M OS COS PSA DOS PSA CSOC CSOS CZ CPM and others 77 78 There were also CP M 86 derivatives named SCP1700 CP K and K8918 OS 78 They were produced by the East German VEB Robotron and others 78 77 76 Legacy EditA number of behaviors exhibited by Microsoft Windows are a result of backward compatibility with MS DOS which in turn attempted some backward compatibility with CP M The drive letter and 8 3 filename conventions in MS DOS and early Windows versions were originally adopted from CP M 79 The wildcard matching characters used by Windows and are based on those of CP M 80 as are the reserved filenames used to redirect output to a printer PRN and the console CON The drive names A and B were used to designate the two floppy disk drives that CP M systems typically used when hard drives appeared they were designated C which survived into MS DOS as the C gt command prompt 81 The control character Z marking the end of some text files can also be attributed to CP M 82 Various commands in DOS were modelled after CP M commands some of them even carried the same name like DIR REN RENAME or TYPE and ERA ERASE in DR DOS File extensions like a href TXT html class mw redirect title TXT TXT a or a href COM file html title COM file COM a are still used to identify file types on many operating systems In 1997 and 1998 Caldera released some CP M 2 2 binaries and source code under an open source license also allowing the redistribution and modification of further collected Digital Research files related to the CP M and MP M families through Tim Olmstead s The Unofficial CP M Web site since 1997 83 84 85 After Olmstead s death on 12 September 2001 86 the distribution license was refreshed and expanded by Lineo who had meanwhile become the owner of those Digital Research assets on 19 October 2001 87 88 1 89 In October 2014 to mark the 40th anniversary of the first presentation of CP M the Computer History Museum released early source code versions of CP M 90 As of 2018 update there are a number of active vintage hobby and retro computer people and groups and some small commercial businesses still developing and supporting computer platforms that use CP M mostly 2 2 as the host operating system See also EditAmstrad CP M Plus character set CPMulator CP NET and CP NOS Cromemco DOS an operating system independently derived from CP M Eagle Computer IMDOS List of machines running CP M MP M MP NET and MP NOS Multiuser DOS Pascal MT SpeedStart CP M 86 DOSReferences Edit a b Gasperson Tina 2001 11 26 CP M collection is back online with an Open Source licence Walk down memory lane The Register Archived from the original on 2017 09 01 a b Mann Stephen 1983 08 15 CP M Plus a third updated version of CP M InfoWorld Vol 5 no 33 p 49 ISSN 0199 6649 a b c Sandberg Diment Erik 1983 05 03 Personal Computers The Operating System in the middle The New York Times a b c Markoff John 1994 07 13 Gary Kildall 52 Crucial Player In Computer Development Dies The New York Times a b Shustek Len 2016 08 02 In His Own Words Gary Kildall Remarkable People Computer History Museum Archived from the original on 2016 12 17 a b c Kildall Gary Arlen 2016 08 02 1993 Kildall Scott Kildall Kristin eds Computer Connections People Places and Events in the Evolution of the Personal Computer Industry Manuscript part 1 Kildall Family Archived from the original on 2016 11 17 Retrieved 2016 11 17 Newton Harry 2000 Newton s Telecom Dictionary New York New York USA CMP Books pp 228 ISBN 1 57820 053 9 Compupro 8 16 old computers com Archived from the original on 2016 01 03 Retrieved 2022 04 21 Cole Maggie 1981 05 25 Gary Kildall and the Digital Research Success Story InfoWorld Vol 3 no 10 Palo Alto California USA pp 52 53 ISSN 0199 6649 Freiberger Paul 1982 07 05 History of microcomputing part 3 software genesis InfoWorld Vol 4 no 26 Palo Alto California USA p 41 ISSN 0199 6649 Waite Mitchell Lafore Robert W Volpe Jerry 1982 The Official Book for the Commodore 128 p 110 ISBN 978 0 67222456 0 a b c d Kildall Gary Arlen January 1980 The History of CP M The Evolution Of An Industry One Person s Viewpoint Dr Dobb s Journal Vol 5 no 1 41 pp 6 7 Archived from the original on 2016 11 24 Retrieved 2013 06 03 a b c d Kildall Gary Arlen June 1975 CP M 1 1 or 1 2 BIOS and BDOS for Lawrence Livermore Laboratories Johnson Herbert R 2009 01 04 CP M and Digital Research Inc DRI History www retrotechnology com Archived from the original on 2008 08 20 Retrieved 2009 01 28 Warren Jim April 1976 First word on a floppy disk operating system Dr Dobb s Journal Vol 1 no 4 Menlo Park California USA p 5 Subtitle Command language amp facilities similar to DECSYSTEM 10 Digital Research 1978 CP M Pacific Grove California USA Digital Research OCLC 221485970 Freiberger Paul Michael Swaine 2000 Fire in the Valley The Making of the Personal Computer McGraw Hill p 175 ISBN 0071358927 via the Internet Archive a b c d e f g h Brown David K Strutynski Kathryn Wharton John Harrison 1983 05 14 Tweaking more performance from an operating system Hashing caching and memory blocking are just a few of the techniques used to punch up performance in the latest version of CP M System Design Software Computer Design The Magazine of Computer Based Systems Vol 22 no 6 Littleton Massachusetts USA PennWell Publications PennWell Publishing Company pp 193 194 196 198 200 202 204 ISSN 0010 4566 OCLC 1564597 CODEN CMPDA ark 13960 t3hz07m4t Retrieved 2021 08 14 7 pages a b Kathryn Betty Strutynski Monterey Herald Obituary 2010 06 19 Archived from the original on 2021 08 14 Retrieved 2021 08 10 via Legacy com a b Hogan Thom 1981 09 14 State of Microcomputing Some Horses Running Neck and Neck pp 10 12 Retrieved 2019 04 08 Wise Deborah 1982 05 10 Mainframe makers court third party vendors for micro software InfoWorld Vol 4 no 18 pp 21 22 Archived from the original on 2015 03 18 Retrieved 2015 01 25 a b Meyer Edwin W 1982 06 14 The Xerox 820 a CP M operated system from Xerox InfoWorld Vol 4 no 23 pp 101 104 Retrieved 2019 03 30 da Cruz Frank 1984 04 27 New release of KERMIT for CP M 80 Info Kermit Digest Mailing list Kermit Project Columbia University Archived from the original on 2021 04 17 Retrieved 2016 02 23 1 Clarke A Eaton J M David D Powys Lybbe 1983 10 26 CP M the Software Bus A Programmer s Companion Sigma Press ISBN 978 0905104188 Johnson Herbert R 2014 07 30 CP M and Digital Research Inc DRI History Swaine Michael 1997 04 01 Gary Kildall and Collegial Entrepreneurship Dr Dobb s Journal Archived from the original on 2007 01 24 Retrieved 2006 11 20 Bunnell David February 1982 The Man Behind The Machine A PC Exclusive Interview With Software Guru Bill Gates PC Magazine Vol 1 no 1 pp 16 23 20 Archived from the original on 2013 05 09 Retrieved 2012 02 17 Radio Shack Computer Catalog RSC 12 page 28 www radioshackcomputercatalogs com Tandy Radio Shack Archived from the original on 2016 10 13 Retrieved 2016 07 06 a b Digital Research Has CP M 86 for IBM Displaywriter PDF Digital Research News for Digital Research Users Everywhere Pacific Grove California USA Digital Research Inc 1 1 2 5 7 November 1981 Fourth Quarter Archived PDF from the original on 2021 04 17 Retrieved 2020 01 18 Maher Jimmy 2017 07 31 The complete history of the IBM PC part two The DOS empire strikes Ars Technica p 3 Retrieved 2019 09 08 a b Kildall Gary Arlen 1982 09 16 Running 8 bit software on dual processor computers PDF Electronic Design 157 Archived PDF from the original on 2017 08 19 Retrieved 2017 08 19 Snyder John J June 1983 A DEC on Every Desk BYTE Vol 8 no 6 pp 104 106 Archived from the original on 2015 01 02 Retrieved 2015 02 05 M 68 M 68 MX Archived from the original on 2016 03 06 Retrieved 2012 09 17 Thomas Rebecca A Yates Jean L 1981 05 11 Books Boards and Software for The New 16 Bit Processors InfoWorld The Newspaper for the Microcomputing Community Vol 3 no 9 Popular Computing Inc pp 42 43 ISSN 0199 6649 Retrieved 2020 01 24 Olmstead Tim Chaudry Gabriele Gaby Digital Research Source Code Archived from the original on 2016 02 05 Digital Research 1981 XLT86 8080 to 8086 Assembly Language Translator User s Guide Archived 2016 11 18 at the Wayback Machine Digital Research Inc Pacific Grove Pournelle Jerry March 1984 New Machines Networks and Sundry Software BYTE Vol 9 no 3 p 46 Archived from the original on 2015 02 02 Retrieved 2013 10 22 Isaacson Walter 2014 The Innovators How a Group of Inventors Hackers Geniuses and Geeks Created the Digital Revolution Simon amp Schuster p 358 ISBN 978 1 47670869 0 Bellis Mary Inventors of the Modern Computer Series The History of the MS DOS Operating Systems Microsoft Tim Paterson and Gary Kildall Retrieved 2010 09 09 Magid Lawrence J February 1982 Baby Blue PC Magazine Vol 1 no 1 p 49 Archived from the original on 2015 03 18 Retrieved 2015 01 04 Mace Scott 1984 06 11 CP M Eludes Home Market InfoWorld Vol 6 no 24 p 46 Groth Nancy 1986 02 10 Kaypro is retreating on CP M InfoWorld Vol 8 no 6 p 6 ZCPR oldcomputers ddns org The Wonderful World of ZCPR3 1987 11 30 Archived from the original on 2019 12 23 Retrieved 2019 11 18 CP M emulators for DOS www retroarchive org cpm Luis Basto Archived from the original on 2016 07 09 Retrieved 2016 07 06 Davis Randy December 1985 January 1986 Written at Greenville Texas USA The New NEC Microprocessors 8080 8086 Or 8088 PDF Micro Cornucopia No 27 Bend Oregon USA Micro Cornucopia Inc pp 4 7 ISSN 0747 587X Archived PDF from the original on 2020 02 11 Retrieved 2020 02 11 Plug in CP M coming Personal Computer News 1984 01 14 p 7 Retrieved 2022 10 03 Hetherington Tony February 1985 Sharp MZ 800 Personal Computer World pp 144 146 149 150 Retrieved 2022 10 03 Coles Ray June 1984 Cheaper simpler CP M PDF Practical Computing p 43 Retrieved 2022 10 03 a b CP M Operating System Manual PDF a b c CP M Plus CP M Version 3 Operating System Programmers Guide PDF 2 ed Digital Research April 1983 January 1983 Archived PDF from the original on 2016 11 25 Retrieved 2016 11 25 a b CP M Plus CP M Version 3 Operating System User s Guide PDF Digital Research 1983 PL I Language Programmer s Guide PDF Digital Research Mace Scott 1984 01 09 IBM PC clone makers shun total compatibility InfoWorld Vol 6 no 2 amp 3 pp 79 81 Archived from the original on 2015 03 16 Retrieved 2015 02 04 Pournelle Jerry June 1983 Zenith Z 100 Epson QX 10 Software Licensing and the Software Piracy Problem BYTE Vol 8 no 6 p 411 Archived from the original on 2014 06 09 Retrieved 2013 10 20 a b Derfler Frank J 1982 10 18 Kaypro II a low priced 26 pound portable micro InfoWorld p 59 Archived from the original on 2014 01 01 Retrieved 2013 10 22 Loguidice Bill 2012 07 28 More on Avalon Hill Computer Games on Heath Zenith platforms Armchair Arcade Archived from the original on 2015 07 23 Retrieved 2015 07 22 Sblendorio Francesco 2015 12 01 Gorillas for CP M GitHub Archived from the original on 2016 02 05 Retrieved 2015 07 22 Section 4 CP M Dynamic Debugging Tool CP M 2 2 Archived from the original on 2015 06 17 Retrieved 2014 08 29 CP M Dynamic Debugging Tool DDT User s Guide PDF Digital Research 1978 1976 Archived PDF from the original on 2014 10 28 Retrieved 2014 08 29 Shael 2010 06 26 2009 12 09 DDT Utility Archived from the original on 2015 12 08 Retrieved 2014 08 29 Brand Stewart 1984 Whole Earth Software Catalog ISBN 978 0 38519166 1 Archived from the original on 2015 07 04 Lieber Eckhard von Massenbach Thomas 1987 CP M 2 lernt dazu Modulare Systemerweiterungen auch fur das alte CP M c t magazin fur computertechnik part 1 in German Vol 1987 no 1 Heise Verlag pp 124 135 Lieber Eckhard von Massenbach Thomas 1987 CP M 2 lernt dazu Modulare Systemerweiterungen auch fur das alte CP M c t magazin fur computertechnik part 2 in German Vol 1987 no 2 Heise Verlag pp 78 85 Huck Alex 2016 10 09 RSM fur CP M 2 2 Homecompuer DDR in German Archived from the original on 2016 11 25 Retrieved 2016 11 25 Pournelle Jerry April 1982 The Osborne 1 Zeke s New Friends and Spelling Revisited BYTE Vol 7 no 4 p 212 Retrieved 2021 05 24 Waite Mitchell Lafore Robert W Volpe Jerry 1985 The CP M Mode The Official Book for the Commodore 128 Personal Computer Howard W Sams amp Co p 98 ISBN 0 672 22456 9 Now A Complete CP M Pascal for Only 29 95 BYTE advertisement Vol 7 no 12 December 1982 p 11 Archived from the original on 2016 07 21 Retrieved 2016 10 01 Ellis Computing BYTE advertisement Vol 8 no 12 December 1983 p 69 Fager Roger Bohr John September 1983 The Kaypro II BYTE Vol 8 no 9 p 212 Archived from the original on 2014 03 02 Retrieved 2013 10 20 Johnson Laird Andy 1983 3 The programmer s CP M handbook Berkeley California USA Osborne McGraw Hill ISBN 0 88134 103 7 Old computers com The Museum Archived from the original on 2013 07 03 Retrieved 2017 10 06 Ciarcia Steve September 1985 Build the SB 180 PDF BYTE Magazine CMP Media p 100 Retrieved 2019 06 18 CP AM 5 1 User Manual Applied Engineering p 1 Retrieved 2020 05 22 CP M Builtin Commands discordia org uk Archived from the original on 2008 04 12 Retrieved 2009 01 28 a b Pohlers Volker 2019 04 30 CP A Homecomputer DDR in German Archived from the original on 2020 02 21 Retrieved 2020 02 21 a b Kurth Rudiger Gross Martin Hunger Henry 2019 01 03 Betriebssysteme www robotrontechnik de in German Archived from the original on 2019 04 27 Retrieved 2019 04 27 a b c Kurth Rudiger Gross Martin Hunger Henry 2019 01 03 Betriebssystem SCP www robotrontechnik de in German Archived from the original on 2019 04 27 Retrieved 2019 04 27 Chen Raymond Why does MS DOS use 8 3 filenames instead of say 11 2 or 16 16 The Old New Thing Archived from the original on 2011 09 22 Retrieved 2010 12 17 Chen Raymond How did wildcards work in MS DOS The Old New Thing Archived from the original on 2011 05 08 Retrieved 2010 12 17 Chen Raymond What s the deal with those reserved filenames like NUL and CON The Old New Thing Archived from the original on 2010 08 02 Retrieved 2010 12 17 Chen Raymond Why do text files end in Ctrl Z The Old New Thing Archived from the original on 2011 02 06 Retrieved 2010 12 17 Olmstead Tim 1997 08 10 CP M Web site needs a host Newsgroup comp os cpm Archived from the original on 2017 09 01 Retrieved 2018 09 09 Olmstead Tim 1997 08 29 ANNOUNCE Caldera CP M site is now up Newsgroup comp os cpm Archived from the original on 2017 09 01 Retrieved 2018 09 09 2 License Agreement Caldera Inc 1997 08 28 Archived from the original on 2018 09 08 Retrieved 2015 07 25 3 4 Tim Olmstead 2001 09 12 Archived from the original on 2018 09 09 Sparks Bryan Wayne 2001 10 19 Chaudry Gabriele Gaby ed License agreement for the CP M material presented on this site Lineo Inc Archived from the original on 2018 09 08 Retrieved 2015 07 25 Chaudry Gabriele Gaby ed The Unofficial CP M Web Site Archived from the original on 2016 02 03 Swaine Michael 2004 06 01 CP M and DRM Dr Dobb s Journal Vol 29 no 6 CMP Media LLC pp 71 73 361 Archived from the original on 2018 09 09 Retrieved 2018 09 09 5 Laws David 2014 10 01 Early Digital Research CP M Source Code Computer History Museum Archived from the original on 2015 07 27 Retrieved 2015 07 25 Further reading EditZaks Rodnay 1980 The CP M Handbook With MP M SYBEX Inc ISBN 0 89588 048 2 Conn Richard 1985 ZCPR3 The Manual ISBN 0 918432 59 6 Z System Corner Tenth Anniversary of ZCPR The Computer Journal 54 Archived from the original on 2010 10 29 The origin of CP M s name Archived from the original on 2008 06 11 Katie Mustafa A 2013 08 14 Intel iPDS 100 Using CP M Video IEEE Milestone in Electrical Engineering and Computing CP M Microcomputer Operating System 1974 PDF Computer History Museum 2014 04 25 Archived PDF from the original on 2019 04 03 Retrieved 2019 04 03 Triumph of the Nerds PBS NB This PBS series includes the details of IBM s choice of Microsoft DOS over Digital Research s CP M for the IBM PC CP M FAQ comp os cpm 6 External links Edit Wikimedia Commons has media related to CP M The Unofficial CP M Web site founded by Tim Olmstead Includes source code Gaby Chaudry s Homepage for CP M and Computer History includes ZCPR materials CP M Main Page John C Elliott s technical information site CP M Internals CP M internals MaxFrame s Digital Research CP M page CP M at Curlie ftp ftp uni bayreuth de pub pc caldera cpm2 2 permanent dead link How to transfer CP M floppy disks Retrieved from https en wikipedia org w index php title CP M amp oldid 1140175244, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.