Write up on Tech Geek HISTORY: CP/M (Control Program for Microcomputers)

arch_scr

Introduction

CP/M was a text-based operating system created by American programmer Gary Kindal of Digital Research14. Its initials stood for “Control Program/Monitor” at first, but Digital Research changed it to the more friendly “Control Program for Microcomputers” later.

As the price of microcomputers dropped rapidly in the mid-late 1970s, CP/M, paired with the Z80 CPU became a de-facto standard platform that was popular among small business computers in the late 1970s and early 1980s.

The CP/M family of operating systems is available for both 8- and 16-bit machines and achieved a tremendous degree of success in the years before it was supplanted by the MS-DOS family from Microsoft, which includes the IBM PC-DOS.

Content of the Problem

However, the recent variants, such as Concurrent DOS 386, offer a viable alternative in many situations. However, MS-DOS seems likely to continue to be the dominant single-user operating system, until around 1990 when OS/2 will take over. OS/2 offers multitasking and more sophisticated networking and graphics support. CP/M and Derivatives The first real operating system for microcomputers was CP/M (Control Program for Microcomputers), which was for a long time the dominant operating system with over two million legitimate installations and probably nearer three million including pirates. It is of decreasing importance to PC support staff, as most machines which use it are now being retired, and it is mainly of historical interest, and included in the notes for reference. CP/M was originally written as a spare time project by Gary Kildall as a replacement for paper tape loading of engineering development system software. When Intel Corporation declined to use the system, Kildall licensed the system to Lawrence Livermore Labs, who used it to control nodes in an early network system. It was then picked up by IMSAI, manufacturers of the second microcomputer, and sold as IMDOS, then Cromemco used it.

In 1982, Microsoft Chairman Bill Gates claimed that SoftCard customers represented the largest single install base for CP/M machines. Interestingly, around that same time, a new operating system based on CP/M—Microsoft’s MS-DOS—was rapidly gaining market share.

MS-DOS Borrowed a Lot from CP/M

When IBM began developing its Personal Computer (the IBM PC 5150), the firm first tried to secure a license to CP/M, but Digital Research didn’t like the proposed terms of the deal. So IBM turned to Microsoft, which licensed a product called 86-DOS from Seattle Computer Products (SCP).  Some months later, Microsoft purchased 86-DOS outright for $50,000.

Significance of the Study

CP/M is a monitor control Program providing a disc and file handling operating system to stand alone microcomputers. It controls the computer input and output functions. It organizes the files held on disc and reports on the data storage. Finally, it enables you to load and execute programs from disc.  CP/M was designed in 1976 for use on a floppy disc-based microcomputer using an 8080 microprocessor. It will only run the 8080,8085 and Z80 microprocessors, it was once the most popular operating systems in the world.

The system was under the control of a monitor holding firmware.

480Z the monitor is called ROS, the Resident Operating System; in the 380Z-D the monitor is called COS, the Central Operating System. CP/M was used to control disc operations on the two different Research Machines Systems.  CP/M communicated with either ROS or COS.

The term BIOS was created by:

The Basic Input/Output System the heart of the CP/M, basic disc file operation was to read & write files allocating and reallocating disc space.

The Language was based on Machine Code “Assembly Language.”

CP/M Family CP/M was, however, completed by MAA in 1974.

A file was a single set of data (or information) records that a user gathered and stored on any permanent storage medium. All the work that one did on the microcomputer system was based on disc files.

 It included a single- user file system designed to eliminate data IQSS in all but the most unlikely situations, and used recoverable directory information to determine storage allocation rather than a traditional linked-list organization. The simplicity and reliability of the file system was an important kgr-to the success of CP/M: file access to relatively slow floppy disks was im- mediate, and disks could be channeled without losing files or mixing data records. And because CP/M is a Spartan system, today’s increased storage-media transfer rates simply improve overall response.

CP/M was split into five distinct areas, only one of which is machine dependent. The BIOS is the Basic Input Output System, which contains all hardware dependent code to interface with the floppy disk controller, console, etc. The BDOS is the Basic Disk Operating System, which contains the file management system kernel, and is machine independent. The CCP is the Console Command Processor, which is loaded at warm starts to interpret the command line typed by the user at the console. The CCP can be overlaid by application programs. The TPA (Transient Program Area) is where programs are loaded and executed. Transient programs can overlay the CCP, since its functions are not needed by running programs, and they can also overlay the BDOS, provided they do not require its file system services. The Base Page area contains interrupt vectors, certain key variables and vectors to the BDOS and BIOS. Notice that CP/M itself resides at the top end of memory and extends downwards.

CP/M Plus (CP/M 3.0) CP/M Plus brings the bank selection and file system features of MP/M II (see below) to the single-user environment. This version of CP/M is able to manage additional banks of memory in “which it can store the disk directory and track buffers to achieve significantly faster disk accesses (tests indicate up to seven times improvement in accessing indexed files). CP/M Plus also supports a real time clock, permitting data and time stamping of files, as well as password protection, although this consumes disk directory entries. CP/M Plus supports customizable extensions to the operating system called Resident System Extensions (RSX). This allows additional functions to be added to the operating system and called from user programs in the same way as regular system calls. An example of an RSX is the GSX (Graphics System Extension) ANSI standard graphics driver.

CP/M and Derivatives The RMAC macro assembler and SID debugger are supplied as standard with CP/M Plus, since it is customized in a different way. CP/M Plus is rather more user-friendly than 2.2, in that the user no longer needs to type control-C when changing disks, and the system also provides input-output redirection, though in a less sophisticated manner than UNIX.

 By the mid-1970s CP/M added a new philosophy to operating system design. CP/M had been implemented on several computer systems, each having a different hardware ‘interface. To accommodate these va & hard- ware environments, CP/M was de- composed into two parts: the .in- variant disk operating system written in PL/M, and a small variant portion written in assembly language.

This separation allowed computer suppliers and end users to adapt their own physical 110 drive to the standard CP/M product. Hard disk technology added yet another factor. CP/M customers re- quired support for disk drives ranging from single 5-inch floppy disks to high-capacity Winchester disk drives. In response, CP/M was totally ~designed in 1979 to become table- driven. All disk dependent parameters were moved from the invariant disk operating system to tables in the variant portion, to be filled in by the system implementer. CP/M is now a multifunction program whose exact operation is defined externally through tables and I/O subroutines. The widespread use of CP/M is directly attributed to this generality: CP/M becomes a special- purpose operating system when it is field-programmed to match an operating environment. Through the efforts of system implementers who provide this field-programming, CP/M was used worldwide in close to 200,000 installations with over 3000 different hardware configurations.

MP/M As single-user CP/M became widely accepted, Digital Research began to develop a new operating system for real-time processing. The design called for a real-time nucleus to support cooperating sequential processes, including a CP/M-compatible file manager with terminal-handling capabilities.

This operating system, called MP/M (Multiprogramming Monitor for Microcomputers), is a further refinement of the process model found in Intel’s RMX and National’s Starplex. As a side effect, the combination of MP/M’s real-time nucleus with the terminal handler and the CP/M file system produces a traditional timesharing system with multiprogramming and multiterminal features.

Timesharing allows programs to execute in increments of processor: time in a “lock-step” fashion. In a timesharing context, a printer pro- gram, often called a spooler, might have the task of printing a series of disk files which result from program output. The spooler starts with a disk-file name and, by using increments of processor time allocated by the real-time nucleus, writes each line from the file to the printer. Upon completion, the spooler obtains another disk-file name and repeats :he process. A disk file to the spooler and, while the file was being printed, the function edited another file in preparation for compilation. The spooler and editor share processor time to complete their respective tasks.

 In general, many such processes share processor time and system resources. MP7M process communication is performed through queues (or waiting lines) managed by the nucleus. The spooler, for example, reads file names from an input queue posted by another process (which reads spooler command lines from the console). When the spooler is busy printing a file, additional file names may enter the input queue in a first-in first-out order. Process synchronization through queuing mechanisms is common- place, but MP/M treats queues in a unique manner, simplifying their use and decreasing queue management overhead. Queues are treated as files: they are named symbolically so that a queue can be added dynamically. Like files, queues have queue control blocks that are created, opened, deleted, written, and read. In fact, the set of queue operations closely

A matches the file functions of CP/M so that MP/M provides a familiar programming environment. The implementation of queues is transparent to an operator or system programmer, but it is important to MP/M’s effective operation on limit- ed-resource computers. Queues are implemented through three different data structures, depending upon the message length. So-called “counting semaphores” count the occurrence of an event with message length zero, and are implemented as 16-bit tallies. Single-byte messages are processed using a circular buffer. Similarly, queues containing addresses are processed using circular buffers. In all other cases, Mf /M uses a general linked list, which requires additional space and processing time. It is this sensitivity to the capabilities of limited -resource computers that makes MP/M effective: while real- time operating systems often incur 25 to 40% overhead, MP/M has been streamlined to increase available compute time by 7% over single-user CP/M. Like CP/M, MP/M is separated in- to variant and invariant portions. The file-system interface is identical to that of CP/M, with the addition of user defined functions to handle non- CP/M operations (such as control of the real-time clock). Field-reconfiguration of MP/M allows a variety of device protocols including CP/M- style busy-wait loops, polled devices, and intempt-driven peripherals. In fact, the variety of interface possibilities makes the MP/M implementer a true system-software designer, since a fine-tuned MP/M system may operate considerably faster than its initial implementation. What are. the refinements found in MP/M? First, it is a state-of-the-art operating system based on current process-synchronization technology and microprocessor real-time system design philosophies. Process communication is conceptually simple and requires minimal overhead. Finally, it is the only operating system of its type that can be field- tailored to match almost any computer configuration.

Leave a Comment

Your email address will not be published. Required fields are marked *