CP/M

From Free Knowledge Base- The DUCK Project: information for everyone
Jump to: navigation, search

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.

CP/M for the Microcomputer

 

Archivedhansolocarbonite140.png
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