[
]
Basic Disk Operating System
The Basic Disk Operating System,[ or BDOS,][ 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
The Basic Input Output System or BIOS,[ 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
Disk density is a capacity designation on magnetic storage, usually floppy disks. Each designation describes a set of characteristics that can affect the areal density of a disk or the efficiency of the encoded data. Such characteristics include ...
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
WordStar, one of the first widely used word processors, and dBase
dBase (also stylized dBASE) was one of the first database management systems for microcomputers and the most successful in its day. The dBase system includes the core database engine, a query system, a forms engine, and a programming language ...
, 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
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
, Borland
Borland Software Corporation was a computer technology company founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn. Its main business was the development and sale of software development and software deployment product ...
's Turbo Pascal, FORTRAN and even PL/I[) 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.][ The source code for BASIC programs was easily accessible, and most forms of copy protection were ineffective on the operating system.][ A Kaypro II owner, for example, would obtain software on Xerox 820 format, then copy it to and run it from Kaypro-format disks.
The lack of standardized graphics support limited video games, but various character and text-based games were ported, such as '' Telengard'',][ '' Gorillas'',][ '' Hamurabi'', '']Lunar Lander
A lunar lander or Moon lander is a spacecraft designed to land on the surface of the Moon. As of 2021, the Apollo Lunar Module is the only lunar lander to have ever been used in human spaceflight, completing six lunar landings from 1969 to 19 ...
'', along with early interactive fiction
''
Interactive fiction, often abbreviated IF, is software simulating environments in which players use text commands to control characters and influence the environment. Works in this form can be understood as literary narratives, either in the ...
including the '' Zork'' series and '' Colossal Cave Adventure''. Text adventure specialist Infocom
Infocom was an American software company based in Cambridge, Massachusetts, that produced numerous works of interactive fiction. They also produced a business application, a relational database called ''Cornerstone (software), Cornerstone''.
...
was one of the few publishers to consistently release their games in CP/M format. Lifeboat Associates
Lifeboat Associates was a New York City company that was one of the largest microcomputer software distributors in the late 1970s and early 1980s. Lifeboat acted as an independent software broker marketing software to major hardware vendors such ...
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
An outliner (or outline processor) is a specialized type of text editor (word processor) used to create and edit outlines, which are text files which have a tree structure, for organization. Textual information is contained in discrete sections ca ...
KAMAS.
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.[
]
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.[
CP/M 3, however, added support for dynamically loadable ''Resident System Extensions'' (RSX).][ A so-called ''null command file'' could be used to allow CCP to load an RSX without a transient program.][ Similar solutions like RSMs (for ''Resident System Modules'') were also retrofitted to CP/M 2.2 systems by third-parties.][
]
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.[ ''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".][ ]JRT Pascal
JRT Pascal (Jim Russell Tyson) is an implementation of the Pascal programming language. It was available in the early 1980s on the CP/M operating system.
History
At the end of the 1970s, the most popular Pascal implementation for microcomputers ...
, for example, provided versions on 5.25-inch disk for North Star, Osborne, Apple, Heath hard sector
Hard sectoring in a magnetic or optical data storage device is a form of sectoring which uses a physical mark or hole in the recording medium to reference sector locations.
In older 8- and 5-inch floppy disks, hard sectoring was implemented by pu ...
and soft sector
Floppy disk format and density refer to the logical and physical layout of data stored on a floppy disk. Since their introduction, there have been many popular and rare floppy disk types, densities, and formats used in computing, leading to much c ...
, and Superbrain, and one 8-inch version.[ 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.][
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.][ 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][ 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
Osborne may refer to:
* Osborne (name)
Places Australia
* Osborne, South Australia (disambiguation), places associated with the suburb in the Adelaide metropolitan area
* Osborne, New South Wales, a rural community in the Riverina region
Can ...
, IBM PC
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a team ...
, 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
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a team ...
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
Year 1571 ( MDLXXI) was a common year starting on Monday (link will display the full calendar) of the Julian calendar.
Events
January–June
* January 11 – The Austrian nobility are granted freedom of religion.
* January 23 &nd ...
or 1581
1581 ( MDLXXXI) was a common year starting on Sunday (link will display the full calendar) in the Julian calendar, and a common year starting on Thursday (link will display full calendar) of the Proleptic Gregorian calendar.
Events
Ja ...
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,[ ran CP/M 2.2. The ]Commodore 128
The Commodore 128, also known as the C128, C-128, C= 128,The "C=" represents the graphical part of the logo. is the last 8-bit home computer that was commercially released by Commodore Business Machines (CBM). Introduced in January 1985 at the ...
, Bondwell-2
The Bondwell-2 was an early laptop personal computer running the CP/M operating system. Introduced by Bondwell in 1985, it came with a Zilog Z80 CPU clocked at 4 MHz, 64 kB RAM and 4 kB ROM. It had a 3.5" floppy disk drive, highly unusual for ...
laptop, Micromint/Ciarcia SB-180,[ ]MSX
MSX is a standardized home computer architecture, announced by Microsoft and ASCII Corporation on June 16, 1983. It was initially conceived by Microsoft as a product for the Eastern sector, and jointly marketed by Kazuhiko Nishi, then vice-p ...
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
Applied Engineering, headquartered in Carrollton, TX, was a leading third-party hardware vendor for the Apple II series of computers from the early 1980s until the mid-1990s.
History
{{original research, section, date=September 2018
In its day ...
'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). The Amstrad PCW
The Amstrad PCW series is a range of personal computers produced by British company Amstrad from 1985 to 1998, and also sold under licence in Europe as the "Joyce" by the German electronics company Schneider in the early years of the series' life. ...
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.[
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
A File Control Block (FCB) is a file system structure in which the state of an open file is maintained. A FCB is managed by the operating system, but it resides in the memory of the program that uses the file, not in operating system memory. This ...
(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
Sub is a common abbreviation of words beginning with the prefix "sub-". Sub or SUB may also refer to
Places
* Juanda International Airport, Surabaya, Indonesia, IATA code SUB
Computing and technology
* , an HTML tag for subscript
* SUB designate ...
, hexadecimal
In mathematics and computing, the hexadecimal (also base-16 or simply hex) numeral system is a positional numeral system that represents numbers using a radix (base) of 16. Unlike the decimal system representing numbers using 10 symbols, hexa ...
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.[
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
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
ASCII art is a graphic design technique that uses computers for presentation and consists of pictures pieced together from the 95 printable (from a total of 128) characters defined by the ASCII Standard from 1963 and ASCII compliant chara ...
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
A number of CP/M-80 derivatives existed in the former Eastern Bloc under various names, including SCP (), SCP/M, CP/A,[ 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.][ There were also CP/M-86 derivatives named SCP1700, CP/K and ]K8918-OS
CP/M-86 was a version of the CP/M operating system that Digital Research (DR) made for the Intel 8086 and Intel 8088. The system commands are the same as in CP/M-80. Executable files used the relocatable .CMD file format. Digital Research also ...
.[ They were produced by the East German VEB Robotron and others.][
]
Legacy
A number of behaviors exhibited by Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
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.[ The wildcard matching characters used by Windows (? and *) are based on those of CP/M,][ 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.[ The control character ]^Z
marking the end of some text files can also be attributed to CP/M.[ 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
A text file (sometimes spelled textfile; an old alternative name is flatfile) is a kind of computer file that is structured as a sequence of lines of electronic text. A text file exists stored as data within a computer file system. In operat ...
or .COM
The domain name .com is a top-level domain (TLD) in the Domain Name System (DNS) of the Internet. Added at the beginning of 1985, its name is derived from the word ''commercial'', indicating its original intended purpose for domains registere ...
are still used to identify file types on many operating systems.
In 1997 and 1998, Caldera
A caldera ( ) is a large cauldron-like hollow that forms shortly after the emptying of a magma chamber in a volcano eruption. When large volumes of magma are erupted over a short time, structural support for the rock above the magma chamber is ...
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.[ After Olmstead's death on 12 September 2001,][ the distribution license was refreshed and expanded by Lineo, who had meanwhile become the owner of those Digital Research assets, on 19 October 2001.][
In October 2014, to mark the 40th anniversary of the first presentation of CP/M, the ]Computer History Museum
The Computer History Museum (CHM) is a museum of computer history, located in Mountain View, California. The museum presents stories and artifacts of Silicon Valley and the information age, and explores the computing revolution and its impact on ...
released early source code versions of CP/M.[
, 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
* Amstrad CP/M Plus character set
* CPMulator
CPMulator is a program to emulate the CP/M operating system under x86 DOS. The program was developed in 1984 by Keystone Software Development. The company was owned and operated by Jay Sprenkle.
The NEC V20 processor released that year was gua ...
* CP/NET and CP/NOS
* Cromemco DOS, an operating system independently derived from CP/M
* Eagle Computer
* IMDOS
IMDOS was a modified version of the CP/M operating system for Intel 8080 processors, used by IMS Associates, Inc. (IMS) for their IMSAI 8080 personal computer. Since MITS would not license their operating system to other manufacturers, IMS approac ...
* List of machines running CP/M
* MP/M
* MP/NET and MP/NOS
* Multiuser DOS
* Pascal/MT+
* SpeedStart CP/M
* 86-DOS
86-DOS (known internally as QDOS, for Quick and Dirty Operating System) is a discontinued operating system developed and marketed by Seattle Computer Products (SCP) for its Intel 8086-based computer kit.
86-DOS shared a few of its commands wit ...
References
Further reading
*
*
*
*
*
*
* (NB. This PBS series includes the details of IBM's choice of Microsoft DOS over Digital Research's CP/M for the IBM PC)
*
External links
The Unofficial CP/M Web site (founded by Tim Olmstead)
- Includes source code
- includes ZCPR materials
- John C. Elliott's technical information site
CP/M Internals
- CP/M internals
MaxFrame's Digital Research CP/M page
*
* ftp://ftp.uni-bayreuth.de/pub/pc/caldera/cpm2.2/
{{DEFAULTSORT:Cp M
CP/M,
CP/M variants
Microcomputer software
Disk operating systems
Digital Research operating systems
Discontinued operating systems
Floppy disk-based operating systems
Free software operating systems
History of computing
1974 software
Formerly proprietary software