Misplaced Pages

DOS API

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

The DOS API is an API which originated with 86-DOS and is used in MS-DOS / PC DOS and other DOS -compatible operating systems. Most calls to the DOS API are invoked using software interrupt 21h ( INT 21h). By calling INT 21h with a subfunction number in the AH processor register and other parameters in other registers, various DOS services can be invoked. These include handling keyboard input, video output, disk file access, program execution, memory allocation, and various other activities. In the late 1980s, DOS extenders along with the DOS Protected Mode Interface (DPMI) allow the programs to run in either 16-bit or 32-bit protected mode and still have access to the DOS API.

#32967

91-450: The original DOS API in 86-DOS and MS-DOS 1.0 was designed to be functionally compatible with CP/M . Files were accessed using file control blocks (FCBs). The DOS API was greatly extended in MS-DOS 2.0 with several Unix concepts, including file access using file handles , hierarchical directories and device I/O control. In DOS 3.1, network redirector support was added. In MS-DOS 3.31,

182-629: A 23FD. The resultant FDC is a simple implementation in IBMs' MST hybrid circuits on a few printed circuit cards. The drive, FDC and media were proprietary to IBM and although other manufacturers provided early FDDs prior to 1973 there were no standards for FDCs, drives or media. IBM's 1973 introduction of the 3740 Data Entry System created the basic media standard for the 8-inch single sided floppy disk, IBM's "Type 1" diskette, which coupled with rapidly increasing requirements for inexpensive, removable direct access storage for many small applications caused

273-413: A ROM firmware chip) loads the operating system from the disk in drive A: . By modern standards CP/M is primitive, owing to the extreme constraints on program size. With version 1.0 there is no provision for detecting a changed disk. If a user changes disks without manually rereading the disk directory the system writes on the new disk using the old disk's directory information, ruining the data stored on

364-399: A capacity of 1.2 MB instead of the 1440 KB capacity that was used elsewhere. While the more common 1440 KB format spun at 300 rpm, the 1.2 MB formats instead spun at 360 rpm, thereby closely resembling the geometries of either the 1.2 MB format with 80 tracks, 15 sectors per track, and 512 bytes per sector previously found on 5.25" high-density floppy disks or

455-415: 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 ) were available, among them several of the earliest Microsoft products. CP/M software often came with installers that adapted it to

546-523: A computer's floppy disk drive (FDD). It has evolved from a discrete set of components on one or more circuit boards to a special-purpose integrated circuit (IC or "chip") or a component thereof. An FDC is responsible for reading data presented from the host computer and converting it to the drive's on-disk format using one of a number of encoding schemes, like FM encoding (single density) or MFM encoding (double density), and reading those formats and returning it to its original binary values. Depending on

637-528: A corporation change-of-name filing to Digital Research, Inc. By September 1981, Digital Research had sold more than 250,000 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". The companies chose to support CP/M because of its large library of software. The Xerox 820 ran

728-780: 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: CP/M 3 allows the user to abbreviate the built-in commands. 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 . The Basic Disk Operating System, or BDOS, provides access to such operations as opening

819-464: A directory or ERA to delete a file) or loads and starts 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 are also essentially transient commands. The BDOS, CCP and standard transient commands are the same in all installations of a particular revision of CP/M, but the BIOS portion

910-449: A dozen different CP/M systems, plus two generic versions. The operating system was described as a " software bus ", allowing multiple programs to interact with different hardware in a standardized way. 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

1001-478: A dramatic growth in drive and controller shipments. Prior to the introduction of special purpose integrated circuit versions, most FDCs consisted of at least one printed circuit implemented with 40 or more ICs. Examples of such FDCs include: The first FDC implemented as a special purpose integrated circuit is the Western Digital FD1771 announced on 19 July 1976. The initial design supported

SECTION 10

#1732780505033

1092-429: A file, output to the console, or printing. Application programs 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 is the same independent of the amount of memory in the system, application programs run the same way for any type or configuration of hardware. The Basic Input Output System or BIOS, provides

1183-478: 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 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

1274-516: 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 to convert Kildall's personal project of CP/M and

1365-508: A program was not standardized, so that there is no single option character that differentiated options from file names. Different programs can and do use different characters. The CP/M Console Command Processor includes DIR , ERA , REN , SAVE , TYPE , and USER as built-in commands. Transient commands in CP/M include ASM , DDT , DUMP , ED , LOAD , MOVCPM  [ pl ] , PIP , STAT , SUBMIT , and SYSGEN . CP/M Plus (CP/M Version 3) includes DIR (display list of files from

1456-840: A relocating assembler and linker. 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 . 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. Kathryn Strutynski

1547-481: 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. Floppy-disk controller A floppy-disk controller ( FDC ) is a hardware component that directs and controls reading from and writing to

1638-409: A single format and required additional circuitry but over time, as a family, the design became multi-sourced and evolved to support many formats and minimize external circuitry. The NEC μPD765 was announced in 1978 and in 1979 NEC introduced the μPD72068, which was software compatible with the μPD765, incorporating a Digital PLL . The μPD765 became a quasi-industry standard when it was adopted in

1729-530: A user-installed overlay containing all the code required to access a particular machine's serial port. 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 ,

1820-540: 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 , along with early interactive fiction including

1911-418: Is a disk operating system and its purpose is to organize files on a magnetic storage medium, and to load and run programs stored on a disk. 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 . The combination of CP/M and S-100 bus computers became an early standard in

SECTION 20

#1732780505033

2002-451: Is always adapted to the particular hardware. Adding memory to a computer, for example, means that the CP/M system must be reinstalled to allow transient programs to use the additional memory space. A utility program (MOVCPM) is provided with system distribution that allows relocating the object code to different memory areas. The utility program adjusts the addresses in absolute jump and subroutine call instructions to new addresses required by

2093-517: Is the list of interrupt vectors used by programs to invoke the DOS API functions. The following is the list of functions provided via the DOS API primary software interrupt vector. CP/M CP/M , originally standing for Control Program/Monitor and later Control Program for Microcomputers , is a mass-market operating system created in 1974 for Intel 8080 / 85 -based microcomputers by Gary Kildall of Digital Research, Inc. CP/M

2184-534: 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. The read/write memory between address 0100 hexadecimal and

2275-504: The Apple II and IBM PC , this is controlled by software running on the computer's host microprocessor and the drive interface is connected directly to the processor using an expansion card . On other systems, like the Commodore 64 and Atari 8-bit computers , there is no direct path from the controller to the host CPU and a second processor like the MOS 6507 or Zilog Z80 is used inside

2366-589: The PDP-11 and OS/8 for the PDP-8 . Commands take 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 is recognized, it is carried out by the CCP itself. Otherwise it attempts to find an executable file on the currently logged disk drive and (in later versions) user area, loads it, and passes it any additional parameters from

2457-529: The TOPS-10 operating system of the DECsystem-10 mainframe computer , which Kildall had used as a development environment. 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

2548-486: The extension .COM on disk. The BIOS directly controls hardware components other than the CPU and main memory. It contains functions such as character input and output and the reading and writing of disk sectors. The BDOS implements the CP/M file system and some input/output abstractions (such as redirection) on top of the BIOS. The CCP takes user commands and either executes them directly (internal commands such as DIR to show

2639-441: The 7-bit boundary. In the 8-bit versions, while running, the CP/M operating system loaded into memory has three components: The BIOS and BDOS are memory-resident, while the CCP is memory-resident unless overwritten by an application, in which case it is automatically reloaded after the application finished running. A number of transient commands for standard utilities are also provided. The transient commands reside in files with

2730-429: The 8080 I/O address space. All of these variations in the hardware are concealed from other modules of the system by use of the BIOS, which uses 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 is very rudimentary in the BIOS or may be absent altogether, it is common practice for CP/M programs that use modems to have

2821-421: 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

DOS API - Misplaced Pages Continue

2912-429: The CP/M base included Robert "Bob" Silberstein and David "Dave" K. Brown. CP/M originally stood for "Control Program/Monitor", 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". The CP/M name follows

3003-645: 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. First featured in

3094-556: The FDC IC while the Control port is in the external hardware. The addresses of these three ports are as follows. This port is used by the software for three different purposes: This port is used by the software to read the overall status information regarding the FDC IC and the FDD's. Before initiating a floppy disk operation the software reads this port to confirm the readiness condition of

3185-542: The FDC and the disk drives to verify the status of the previously initiated command. The different bits of this register represent :   This port is used by the software to control certain FDD and FDC IC functions. The bit assignments of this port are: A controller connects to one or more drives using a flat ribbon cable, 50 wires for 8" drives and 34 wires for 3.5" & 5.25" drives. A "universal cable" has four drive connectors, two each for 3.5" & 5.25" drives. In

3276-412: The FDC became a part of a Super I/O chip or a Southbridge chip. However, in later motherboards, as floppy disks were phased out by personal computer users, this interface was eliminated. Some manufacturers developed USB -based floppy disk controllers. A floppy disk stores binary data not as a series of values, but a series of changes in value. Each of these changes, recorded in the polarity of

3367-632: The FDC, if present at all, is typically part of the many functions provided by a single super I/O chip. The first floppy disk drive controller (FDC) like the first floppy disk drive (the IBM 23FD) shipped in 1971 as a component in the IBM 2385 Storage Control Unit for the IBM 2305 fixed head disk drive, and of the System 370 Models 155 and 165 . The IBM 3830 Storage Control Unit, a contemporaneous and quite similar controller, uses its internal processor to control

3458-589: 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). 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. A benefit of

3549-409: The IBM PC family and compatibles, a twist in the cable is used to distinguish disk drives by the socket to which they are connected. All drives are installed with the same drive select address set, and the twist in the cable interchanges the drive select lines at the socket. The drive that is at the far end of the cable would also have a terminating resistor installed to maintain signal quality. When

3640-471: 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

3731-524: The INT 25h/26h functions were enhanced to support hard disks greater than 32 MB. MS-DOS 5 added support for using upper memory blocks (UMBs). After MS-DOS 5, the DOS API was unchanged for the successive standalone releases of DOS. In Windows 9x , DOS loaded the protected-mode system and graphical shell. DOS was usually accessed from a virtual DOS machine (VDM) but it was also possible to boot directly to real mode MS-DOS 7.0 without loading Windows. The DOS API

DOS API - Misplaced Pages Continue

3822-576: 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 . Many expected that CP/M would be

3913-489: 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

4004-517: The NIAT, a custom handheld computer designed for A. C. Nielsen 's internal use with 1  MB of SSD memory. 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. The last 8-bit version of CP/M was version 3, often called CP/M Plus, released in 1983. Its BDOS

4095-631: The OS and BIOS (this was also a common problem in early DOS machines). Bill Gates claimed that the Apple II with a Z-80 SoftCard was the single most-popular CP/M hardware platform. 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

4186-565: 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. 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

4277-502: The S83 was quoted as $ 32 in 1,000 unit quantities. 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

4368-543: The Sharp MZ-800, a cassette-based system with optional disk drives, 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. Unit pricing of

4459-402: 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

4550-420: 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

4641-531: The blocking and deblocking and the management of a disk buffer area is handled by model-specific code in the BIOS. Customization is required because hardware choices are not constrained by compatibility with any one popular standard. For example, some manufacturers designed built-in integrated video display systems, while others relied on separate computer terminals. Serial ports for printers and modems can use different types of UART chips, and port addresses are not fixed. Some machines use memory-mapped I/O instead of

SECTION 50

#1732780505033

4732-452: The command line. These are referred to as "transient" programs. On completion, BDOS will reload the CCP if it has been overwritten by application programs — this allows transient programs a larger memory space. The commands themselves can sometimes be obscure. For instance, the command to duplicate files is named PIP (Peripheral-Interchange-Program), the name of the old DEC utility used for that purpose. The format of parameters given to

4823-419: The complexity of the external circuitry; single-chip solutions were common by the later 1980s. By the 1990s, the floppy disk was increasingly giving way to hard drives , which required similar controllers. In these systems, the controller also often combined a microcontroller to handle data transfer over standardized connectors like SCSI and IDE that could be used with any computer. In more modern systems,

4914-409: The controller and disk drive are assembled as one device, as it is the case with some external floppy disk drives, e.g., Commodore 1540 and USB floppy disk drives, the internal floppy disk drive and its interface are unchanged, while the assembled device presents a different interface such as IEEE-488 , parallel port or USB . Many mutually incompatible floppy disk formats are possible; aside from

5005-406: The data and then use clock recovery during reads to recreate the original signal. Some controllers require this encoding to be performed externally, but most designs provide standard encodings like FM and MFM . The controller also provides a number of other services to control the drive mechanism itself. These typically include the movement of the drive head to center over the separate tracks on

5096-405: The disk, tracking the location of the head and returning it to zero, and sometimes functionally to format a disk based on simple inputs like the number of tracks, sectors per track and number of bytes per sector. To produce a complete system, the controller has to be combined with additional circuitry or software that acts as a bridge between the controller and the host system. In some systems, like

5187-403: The disk. From version 1.1 or 1.2 onwards, changing a disk then trying to write to it before its directory is read will cause a fatal error to be signalled. This avoids overwriting the disk but requires a reboot and loss of the data to be stored on disk. The majority of the complexity in CP/M is isolated in the BDOS, and to a lesser extent, the CCP and transient commands. This meant that by porting

5278-412: The drive for this purpose. The original Apple II controller was in the form of a plug-in card on the host computer. It could support two drives, and the drives eliminated most of the normal onboard circuitry. This allowed Apple to arrange a deal with Shugart Associates for a simplified drive that lacked most of its normal circuitry. This meant that the combined cost of a single drive and controller card

5369-540: The floppy disk drive with a 34 pin ribbon cable. An alternative arrangement that is more usual in recent designs has the FDC included in a super I/O chip which communicates via a Low Pin Count (LPC) bus. Most of the floppy disk controller (FDC) functions are performed by the integrated circuit but some are performed by external hardware circuits. The list of functions performed by each is given below. The FDC has three I/O ports. These are: The first two reside inside

5460-532: The following components: 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

5551-409: The home market had been largely unsuccessful and most CP/M software was too expensive for home users. 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. CP/M rapidly lost market share as the microcomputing market moved to

SECTION 60

#1732780505033

5642-460: The keyboard and conveys results to the terminal. CP/M itself works with either a printing terminal or a video terminal. All CP/M commands have to be typed in on the command line . The console most often displays the A>; prompt, to indicate the current default disk drive. When used with a video terminal, this is usually followed by a blinking cursor supplied by the terminal. The CCP awaits input from

5733-546: 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. The Console Command Processor, or CCP, accepts input from

5824-480: 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

5915-434: The lowest level functions required by the operating system. These include reading or writing single characters to the system console and reading or writing a sector of data from the disk. The BDOS handles some of the buffering of data from the diskette, but before CP/M 3.0 it assumes a disk sector size fixed at 128 bytes, as used on single-density 8-inch floppy disks. Since most 5.25-inch disk formats use larger sectors,

6006-513: 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 (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

6097-418: The magnetic recording media, causes a voltage to be induced in the drive head as the disk surface rotates past it. It is the timing of these polarization changes and the resulting spikes of voltage that encode the ones and zeros of the original data. One of the functions of the controller is to turn the original data into the proper pattern of polarizations during writing, and then recreate it during reads. As

6188-523: The microcomputer industry. This computer platform was widely used in business through the late 1970s and into the mid-1980s. CP/M increased the market size for both hardware and software by greatly reducing the amount of programming required to port an application to a new manufacturer's computer. 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 . CP/M

6279-434: The new location of the operating system in processor memory. This newly patched version can 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) is stored in reserved areas at the beginning of any disk which can be used to boot the system. On start-up, the bootloader (usually contained in

6370-451: 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. (Xerox included a Howard W. Sams CP/M manual as compensation for Digital Research's documentation, which InfoWorld described as atrocious, incomplete, incomprehensible, and poorly indexed. ) By 1984, Columbia University used the same source code to build Kermit binaries for more than

6461-551: The original IBM PC (1981); the FDC was physically located on its own adapter card along with support circuitry. Other vendors such as Intel produced compatible parts. This design evolved over time into a family offering an almost complete FDC on a chip. As of March 1986, Sharp had commercialized the FDC LH0110. In early 1987, Intel introduced the 82072 CHMOS High Integrated Floppy Disk Controller for use in industry standard PC computers. Ultimately in most computer systems

6552-484: The physical format on the disk, incompatible file systems are also possible. Sides: Density: Primarily in Japan there are 3.5" high-density floppy drives that support three modes of disk formats instead of the normal two – 1440 KB (2 MB unformatted), 1.2 MB (1.6 MB unformatted) and 720 KB (1 MB unformatted). Originally, the high-density modes for 3.5" floppy drives in Japan only supported

6643-420: The platform, data transfers between the controller and host computer would be controlled by the computer's own microprocessor , or an inexpensive dedicated microprocessor like the MOS 6507 or Zilog Z80 . Early controllers required additional circuitry to perform specific tasks like providing clock signals and setting various options. Later designs included more of this functionality on the controller and reduced

6734-513: 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, InfoWorld stated in 1984 that efforts to introduce CP/M to

6825-513: The standard operating system for 16-bit computers. In 1980 IBM approached Digital Research, at Bill Gates ' suggestion, 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. The resulting product, MS-DOS , soon began outselling CP/M. Many of

6916-400: The storage is based on timing, and that timing is easily affected by mechanical and electrical disturbances, accurately reading the data requires some sort of reference signal, the clock . As the on-disk timing is constantly changing, the clock signal has to be provided by the disk itself. To do this, the original data is modified with extra transitions to allow the clock signal to be encoded in

7007-616: 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

7098-450: The systems based on it (e.g. Windows XP and Windows Vista ) are not based on MS-DOS, but use a virtual machine , NTVDM , to handle the DOS API. NTVDM works by running a DOS program in virtual 8086 mode (an emulation of real mode within protected mode available on 80386 and higher processors). NTVDM supports the DOS 5.0 API. DOSEMU for Linux uses a similar approach. The following

7189-411: The user. A CCP internal command, of the form drive letter followed by a colon, can be used to select the default drive. For example, typing B: and pressing enter at the command prompt changes the default drive to B, and the command prompt then becomes 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

7280-711: 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. In 1982, there

7371-454: Was able to increase the license to tens of thousands of dollars. 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), 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

7462-466: 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 . 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

7553-399: Was designed by David K. Brown. 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. The operating system distribution software also included

7644-467: 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. A minimal 8-bit CP/M system would contain

7735-512: Was eventually displaced by DOS following the 1981 introduction of the IBM PC . Gary Kildall originally developed CP/M during 1974, 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 . It was written in Kildall's own PL/M ( Programming Language for Microcomputers ). Various aspects of CP/M were influenced by

7826-412: Was extended with enhanced internationalization support and long filename support, though the long filename support was only available in a VDM. With Windows 95 OSR2, DOS was updated to 7.1, which added FAT32 support, and functions were added to the DOS API to support this. Windows 98 and Windows ME also implement the MS-DOS 7.1 API, though Windows ME reports itself as MS-DOS 8.0. Windows NT and

7917-426: 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),

8008-562: 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

8099-540: Was roughly the same as on other systems, but a second drive could be connected for a smaller additional cost. The IBM PC took a more conventional approach, their adaptor card could support up to four drives; on the PC direct memory access (DMA) to the drives was performed using DMA channel 2 and IRQ 6. The diagram below shows a conventional floppy disk controller which communicates with the CPU via an Industry Standard Architecture (ISA) bus or similar bus and communicates with

8190-465: Was the project manager for the evolving CP/M-86 line of operating systems. At this point, the original 8-bit CP/M became known by the retronym CP/M-80 to avoid confusion. 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

8281-422: 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

#32967