CP/M
CP/M (Control Program for Microcomputers) was a mass-market operating system created for Intel 8080/85 based microcomputers by Gary Kildall of Digital Research, Inc. Digital Research sold a version that supported the Intel 8080 Development System. CP/M was the first operating system for microcomputers.
Author Sir Harold Evans wrote that Microsoft DOS inventor Tim Paterson relied heavily on an existing OS called CP/M created by programmer Gary Kildall, supporting the claim that Microsoft's first OS was stolen. Microsoft used DOS to make billions in sales and pave the way for the Windows operating system.
Without CP/M there would have been no DOS (Disk Operating System) and likely leaving Microsoft as only a briefly existing company in the footnotes of the personal computer. Bill Gates seems to owe everything to the tragic creator of CP/M, Gary Kildall.
Kindall maintained that QDOS, and subsequently MS-DOS, had been directly copied from CP/M and thus infringed on his copyright. Kindall died July 11, 1994 receiving no compensation from Gates or Microsoft for DOS.
Contents
CP/M for the Microcomputer
Carbonite Page: This page is an archived entry and should not be modified. Information on this page may be out of date, however, still useful. An example is data for legacy systems or outdated technologies that are still being used by some, such as Vacuum Tube bogey values, analog broadcast television frequencies or MS-DOS 6.22 commands. Although outdated, this information will not change or evolve any further. Certain archived pages on the D.U.C.K. Wiki have been imported from our older ANSI BBS system and other storage mediums previously used. These pages are kept unmodified for archival purposes. |
CP/M, sold by Digital Research, Inc. of Pacific Grove, California, is very different from other software. For one thing it isn't written for any particular system. There are versions currently available for most of the popular small computers.
CP/M is also different in that it carries a substantial cost. It sells for $100 direct from Digital Research, and a version for the TRS-80 is priced at $150 from FMG Corporation. Lifeboat Associates of New York offers versions for many computers. Their price is $145.
While large corporations are accustomed to spending hundreds or thousands of dollars on software, small computer users have come to expect quite a bit for software in the above $100 category. They get it in CP/M. It is a major piece of software that not only provides the user with an expanded, more powerful operating system, it also serves as the foundation for many other programs. Language processors for BASIC, FORTRAN, and COBOL as well as application programs like word processors, data bases, and payroll software have been written for CP/M. These programs use the general purpose software routines incorporated in CP/M to reduce the amount of work that must be done to get a program written, debugged, and on the market. Tailoring applications software to CP/M rather than a particular computer also expands the population of potential purchasers. To the user, having CP/M means being less dependent on the manufacturer of the computer for applications software since most programs written for CP/M can be run on any computer that has CP/M.
CP/M requires a disk system and a substantial amount of memory to be used most effectively. CP/M is thus not part of a typical small system for home use, but an increasing number of businesses are buying disk based systems and CP/M. Such a combination, while priced well above the cost of entry level systems, is very competitive with the minicomputer alternatives that do the same jobs in a business environment. The manuals for CP/M are several hundred pages long. CP/M is composed of several subcomponents that do a particular job:
- Console Command Processor
- Basic Disk Operating System
- Editor
- Peripheral Interface Program
- Dynamic Debugging Tool
Console Command Processor
CCP is part of the real world interface for the system. It is what the user talks to, and it in turn directs some of the activities of other subcomponents. CCP also has built-in routines to handle input and output from peripherals like printers and a CRT.
Basic Disk Operating System
BDOS handles the work of creating files on disks and of transferring data to and from disk storage. BDOS is a very sophisticated piece of software.
Editor
ED is used to create and modify a variety of files. The commands used by ED are a little difficult to learn. For example, +5D means delete the next five characters, +5C means move the cursor over five characters without changing anything, and +5K means kill or delete the next five lines. Once the codes for the commands are learned, however, the editor is a very powerful tool that can be used in writing and editing programs and text.
Peripheral Interface Program
PIP performs several jobs that are often grouped under the term utility. In general the term refers to relatively routine, unglamorous, but necessary, jobs. In CPM the utility work is shared somewhat by PIP and CCP. PIP does some of the input/output management and it also makes it possible to rearrange already existing files. Many programmers use a modular approach which involves breaking a large program into several logically related subroutines. That approach is made easier by PIP which can take several small files containing subroutines and combine them into a large single file.
Dynamic Debugging Tool
DDT is actually a powerful tool for writing and debugging assembly language programs. Assembly language will be covered in a later chapter. CP/M contains an assembler that can be used to write and run programs written in 8080 assembly language as well as a very good BASIC interpreter. CP/M is quite a package.
CP/M Commands
Commands for File Information and Display
DIR {fileref} STAT d:{ DSK: } STAT fileref TYPE fileref PIP dev:= fileref [options] DUMP fileref Display files on a drive Display disk information Display file information Display file at console Send file to serial device Display file in hex
Commands for File Alteration
ED fileref {d:} ERA fileref REN newref=oldref STAT fileref $attribute LOAD fileref SAVE size fileref PIP PIP destination =source[oplions] PIP d:= fileref [options] Start editing session Erase files Rename existing file Alter file attribute Convert .HEX to .COM file Copy storage to .COM file Start PIP session Transfer single file Transfer multiple files
Commands for Serial Devices
PIP dev:= fileref [options] STAT DEV: STAT VAL: STAT logical= physical Send file to serial device Display device assignments Display STAT operands Make device assignments
Commands for Building Programs
DDT {fileref} LOAD fileref SAVE size fileref Start debugging session Convert .HEX to .COM file Copy storage to .COM file
Commands for System Information
STAT DEV: STAT USR: STAT VAL: Display device assignments Display user-code status Display STAT operands
Commands for System Control
STAT d:=R/0 STAT logical=physical SUBMIT {d:}filename {parameters...} USER code XSUB Make drive read-only Make device assignments Run command list in file Set active user code (0-15) Supply input from file
Commands for System Generation _,
MOVCPM size flag SYSGEN Build relocated CP/M Copy CP/M image to disk