Een directory van een CP/M op het beeldscherm

CP/M was oorspronkelijk een 8-bits-besturingssysteem. Het was het eerste besturingssysteem dat dankzij een modulaire opbouw aangepast kon worden aan de hardware van verschillende typen computers.

Geschiedenis

8 bits-versies

CP/M werd in 1973 ontwikkeld door Gary Kildall in de programmeertaal PL/M. Net als MS-DOS, in feite een opvolger van CP/M, maakt het gebruik van een zogenaamde opdrachtregel, waarin opdrachten moeten worden getypt. CP/M betekende oorspronkelijk Control Program/Monitor en werd later uitgelegd als Control Program for Microcomputers.

Het werd op de markt gebracht door Kildalls Digital Research. Het was ontworpen voor computers uitgerust met de Intel 8080-processor en ook geschikt voor de daarmee compatibele 8085- en de Zilog Z80-processor. Deze processors konden met hun 16 adresbits maximaal 64 kB geheugen adresseren. (De aanduiding "8 bits" heeft betrekking op de databus.) Van deze drie processors werd de Z80 uiteindelijk verreweg het meest gebruikt en sommige programma's waren uitsluitend voor deze processor geschikt. Ook de Apple II kon door middel van een uitbreidingskaart van Microsoft, Applied Engineering of ander fabricaat met daarop een Z80 voor CP/M geschikt gemaakt worden.

CP/M was oorspronkelijk ontworpen voor het gebruik met enkelzijdige floppydisks met enkele dichtheid van 8 inch (20,32 cm) met een capaciteit van 243 kB en werd ook in dit formaat geleverd. Maar al spoedig werden schijven van 5¼ inch (13,335 cm) populair en CP/M werd aangepast om schijven van verschillende capaciteit te kunnen gebruiken. Bij gebrek aan een standaard voor 5¼ inch ontwikkelde echter bijna elke fabrikant zijn eigen indeling binnen dit formaat (met verschillen in dichtheid, sectorgrootte, directorygrootte en aantallen zijden, sporen en systeemsporen (gereserveerde ruimte voor CP/M) etc.), wat in honderden onderling niet uitwisselbare formaten resulteerde, waardoor de uitwisseling van software en data bemoeilijkt werd. Ook werden schijven van 3½ inch (8,89 cm) en 3 inch (7,62 cm) gebruikt.

Vanaf CP/M 2.2, de eerste versie die redelijk vrij van fouten en eenvoudig voor verschillende schijfformaten aan te passen was, nam het gebruik een grote vlucht. Met 64 kB geheugen was, na aftrek van de ruimte benodigd voor BDOS en BIOS en vaak ook het videogeheugen, circa 55 à 57 kB vrije ruimte voor gebruikersprogramma's en hun data beschikbaar.

De laatst uitgebrachte 8 bits-versie, CP/M Plus (intern werd de aanduiding 3.0 gebruikt), was geschikt voor meer dan 64 kB geheugen door middel van bank switching. Een deel van het geheugen was omschakelbaar tussen verschillende "banken"; het bovenste deel was gemeenschappelijk voor alle banken. Het BDOS en BIOS bevonden zich nu in een andere bank dan het gebruikersprogramma, waarvoor nu circa 60 kB beschikbaar was. Doordat de grootte van BDOS en BIOS niet meer ten koste van de vrije ruimte ging, kon de functionaliteit fors worden uitgebreid ten opzichte van het toch wel spartaanse 2.2. Ook was er in het geheugen nu plaats voor zaken als een kopie van de CCP, schijfcaching, een printerbuffer, een toetsenbordbuffer, commandoregelherhaling, functietoetsdefinities etc., waardoor de snelheid aanzienlijk toenam.

Toch bleef de geheugenlimiet van 64 kB knellen. Veel programma's voor CP/M waren inmiddels ook in een versie voor MS-DOS verkrijgbaar, vaak met extra mogelijkheden dankzij het grotere geheugen. Nieuwe programma's werden nauwelijks meer uitgebracht. Een uitzondering was versie 4 van WordStar in 1987. Met de introductie van kantoorpakketten, met daarin geïntegreerd een tekstverwerker, een spreadsheet- en een databaseprogramma, was de tijd van de 8 bits-processors voorbij.

16 bits-versies

Toen IBM in 1981 een besturingssysteem voor zijn 16 bits-IBM PC zocht, klopte het als eerste bij Digital Research aan. Daar werd echter in eerste instantie niet adequaat gereageerd, waarop IBM zijn heil bij Microsoft zocht, dat geen besturingssysteem voorhanden had, maar er een aankocht, QDOS, en aan de wensen van IBM aanpaste. Nadat Digital Research alsnog met CP/M-86 kwam, een 16 bits-versie afgeleid van CP/M 2.2, werd de IBM PC naar keuze geleverd met CP/M-86 of Microsoft PC-DOS. Ondanks de iets betere specificaties van CP/M-86 was het door het prijsverschil (PC-DOS een paar tientallen euro's, CP/M-86 circa 725 euro) in het nadeel. Na de introductie van submappen in versie 2 van PC-DOS, waar het bestandssysteem van CP/M zich moeilijk voor leende, was het pleit snel beslecht.

Opvolgers van CP/M 86 waren nog DOS Plus, Concurrent DOS en REAL/32. Ook was er een versie voor de Motorola 68000-processor, CP/M-68k genaamd.

CP/M-programma's voor 8 bits-processors waren niet geschikt voor 16 bits-processors en omgekeerd. Sommige computers beschikten daarom over twee processors. Aan het bestandstype was te zien voor welke processor een programma bedoeld was: COM voor 8 bits, CMD voor 16 bits.

Onderdelen

CP/M bestaat uit drie modules:

Instructieset

CP/M bevat een aantal hulpprogramma's die tot de kern van het besturingssysteem behoren (onderdeel van CCP):

Daarnaast is er een aantal utility's dat niet is ingebouwd (niet onderdeel van CCP):

Zie ook