CP/M

CP/M (Control Program/Monitor ou Control Program for Microcomputers: «programa de control para microordenadores») é un sistema operativo de disco creado orixinalmente por Gary Kildall de Digital Research, Inc. para microordenadores baseadas nos microprocesadores Intel 8080/85. Inicialmente limitábase ao uso dun só usuario/tarefa en procesadores de 8 bits e con pouco máis de 64 KB de RAM, aínda que versións posteriores engadiron capacidades multiusuario/multitarefa e foron portadas a CPUs de 16 bits.

A combinación de CP/M e ordenadores persoais co bus S-100, iniciada co MITS Altair 8800, foi un dos primeiros estándares da industria para microordenadores e utilizouse amplamente desde a década de 1970 ata mediados da de 1980. Ao reducir drasticamente a cantidade de programación necesaria para instalar unha aplicación no ordenador dun novo fabricante, CP/M aumentou tanto os mercados de software como de hardware.

 Modelo de hardware 
Un sistema CP/M de 8 bits, como mínimo adoita conter os seguintes compoñentes:

 Un terminal de ordenador co conxunto de caracteres ASCII
 Un microprocesador Intel 8080 (e posterior, 8085 ou Z80)
 Polo menos 16 KB de RAM
 Un medio para iniciar a carga do primeiro sector dun disquete na memoria
 Polo menos unha unidade de disco

O único hardware compatible con CP/M, na versión distribuída por Digital Research, era o Intel 8080 Development System («Sistema de desenvolvemento Intel 8080»). Os fabricantes de sistemas compatibles con CP/M adaptaron partes do sistema operativo para as súas propias combinacións de memoria instalada, unidades de disco e consola de entrada. O CP/M tamén podía executarse en sistemas baseados no procesador Zilog Z80, xa que o Z80 era capaz de executar código 8080. Aínda que CP/M non era capaz de executar ningunha das instrucións específicas do Z80, moitas aplicacións foron programadas para máquinas CP/M baseadas no Z80.

En moitas máquinas, o bootstrap era un programa mínimo almacenado na ROM; noutras, este programa tiña que inserirse directamente na memoria a través dun panel frontal cada vez que se cargaba o sistema operativo.

O CP/M empregaba un conxunto ASCII de 7 bits (128 caracteres). Os outros 128 caracteres posibles para un conxunto de 8 bits non estaban estandarizados. Por exemplo, un modelo Kaypro utilizábaos para almacenar caracteres do alfabeto grego, mentres que as máquinas Osborne utilizaban o oitavo bit para indicar un carácter de subliñado. Os sistemas internacionais CP/M empregaban con frecuencia o estándar ISO 646 para adaptar conxuntos de caracteres, substituíndo certos caracteres ASCII por caracteres do idioma local, en lugar de engadilos máis alá do límite de 7 bits.

 Compoñentes do sistema operativo 
Nas versións de 8 bits, o núcleo CP/M dividíase en tres compoñentes: o procesador de comandos da consola (ou CCP), o sistema operativo de disco básico (ou BDOS) e o sistema básico de entrada/saída (ou BIOS). O CCP e o BDOS eran iguais en todas as instalacións dunha revisión CP/M común, pero a parte da BIOS sempre se adaptou a un hardware específico. Engadir memoria a un ordenador, por exemplo, significaba que o sistema CP/M tiña que ser reinstalado. Unha vez instalado, o sistema operativo almacenábase en espazos reservados ao comezo de calquera disco que se utilizaría para arrincar o sistema. No arranque, o cargador de arranque carga o sistema operativo desde o disquete na unidade A:.

Segundo os estándares modernos, CP/M era primitivo debido ás restricións extremas no tamaño dos programas. Coa versión 1.0, non se puido detectar un cambio de disquete. Se un usuario cambiaba de disco sen reler manualmente o directorio de ficheiros, o sistema sobrescribiría o novo disco usando a información do directorio do disco antigo, destruíndo os datos almacenados no novo disquete. A partir das versións 1.1 ou 1.2, este problema reduciuse: se alguén cambiaba de disco sen ler o directorio do novo disco e tentaba escribir nel, o sistema operativo emitía o aviso de erro, evitando a sobreescritura, pero requirindo un reinicio (o que só tardaba uns segundos, pero implicaba a perda de todos os datos da memoria).

A maior parte da complexidade de CP/M estaba illada en BDOS, e en menor medida en CCP. Significaba que ao portar o número limitado de comandos simples da BIOS a unha plataforma de hardware particular, todo o sistema operativo funcionaría. Isto reduciu significativamente o tempo de desenvolvemento do programa necesario para soportar novas máquinas, e foi unha das principais razóns para o uso xeneralizado de CP/M. Hoxe, esta clase de abstracción é común á maioría dos sistemas operativos, pero no momento do nacemento de CP/M, os sistemas operativos estaban normalmente deseñados para executarse nunha soa plataforma de hardware, e os sistemas multiplataforma eran considerados innecesarios.

 Procesador de comandos da consola 
O Console Command Processor (CCP, ou «Procesador de Comandos da Consola») acepta a entrada do teclado e transmite os resultados ao terminal. O CP/M pode funcionar cunha impresora ou un terminal de vídeo. Todos os comandos do CP/M están escritos no intérprete de comandos. A consola adoita mostrar a letra A> na pantalla para indicar a unidade de disco predeterminada actual. Cando se usa cun terminal de vídeo, móstrase acompañado dun cursor intermitente subministrado polo terminal que indica que o CCP está agardando a entrada do usuario.

Un comando interno do CCP, a letra da unidade seguida de dous puntos, permíteche seleccionar a unidade predeterminada. Por exemplo, se escribes B: e premes a tecla Intro na liña de comandos, a unidade predeterminada cambiaría a B e o propio intérprete mostraría este cambio.

A liña de comandos CP/M foi estandarizada polos sistemas operativos de Digital Equipment, como o RT-11 para o PDP-11 e OS/8 para o PDP-8. Os comandos adoptaban a forma de palabras clave seguidas dunha lista de parámetros separados por espazos ou caracteres especiais. Se o CCP recoñece un comando interno, execútao. En caso contrario, tenta atopar o ficheiro executábel no disco ou no espazo de usuario (en versións posteriores), cargalo e pasarlle calquera parámetro adicional da liña de comandos. Estes programas denominábanse programas transitorios (ou «transient» en inglés). Ao finalizar, CP/M recarga a parte do CCP que fora sobrescrita polos programas transitorios, o que permite ter máis memoria para estes programas.

Ás veces, os comandos eran confusos. Por exemplo, a instrución para duplicar ficheiros era PIP (Peripheral-Interchange-Program), o nome da antiga utilidade DEC empregada para este propósito. O formato dos parámetros do programa non estaba estandarizado, polo que non había unha única «opción de carácter» que diferenciase as opcións do nome do ficheiro.

 Comandos internos 
Os comandos internos están integrados no procesador de comandos (CCP) e cárganse na RAM durante a inicialización do sistema.

ComandoDescrición DIR Lista os nomes dos ficheiros na unidade de disco actual. unidade: Cambia a unidade de disco (A: por defecto). ERA ficheiro Elimina os ficheiros especificados. TYPE ficheiro Mostra o contido dun ficheiro na unidade de disco. ficheiro Executa un ficheiro .COM. SAVE n ficheiro.com Garda o contido da memoria nun ficheiro. USER n Cambia o espazo do usuario (0-15). REN novonome.nnn=nomeantigo.nnn Renomea o ficheiro especificado.

 Comandos externos 
Os comandos externos (ou transitorios) están almacenados en disquetes (ou discos ríxidos) para o seu uso posterior.

ComandoDescrición ASM Carga o ensamblador do CP/M e monta o programa especificado desde o disco. DDT Carga o depurador do CP/M e comeza a execución. DUMP Descarta o contido dun ficheiro en hexadecimal. ED Carga e executa o editor de texto CP/M. LOAD Carga o ficheiro en formato hexadecimal código máquina Intel e produce un ficheiro executable que se pode cargar na memoria. Este programa convértese nun novo comando baixo o CCP. MOVCPM Rexenera o sistema CP/M para un tamaño de RAM específico. PIP Carga o programa Peripheral Interchange Program para operacións de transferencia entre periféricos e discos. STAT Mostra o espazo de almacenamento restante (en bytes) no disco actual, proporciona información estatística sobre certos ficheiros e mostra ou altera a asignación de dispositivos. SUBMIT Procesa un ficheiro de comandos por lotes. SYSGEN Crea un disco de arranque CP/M.

 Sistema operativo de disco 
O sistema operativo de disco básico (Basic Disk Operating System ou BDOS en inglés) proporciona acceso a operacións como abrir un ficheiro, saír da consola e imprimir. Os programas cargan os rexistros do procesador cun código de función para a operación e os enderezos dos parámetros ou búferes de memoria e solicitan unha localización fixa na memoria. Dado que o enderezo é o mesmo independentemente da cantidade de memoria no sistema, os programas execútanse do mesmo xeito para calquera tipo ou configuración de hardware.

 Sistema básico de entrada/saída 
O sistema básico de entrada/saída (Basic Input Output System ou BIOS, en inglés) proporciona acceso ás funcións de nivel máis baixo que require o sistema operativo. Estas inclúen a ler ou escribir caracteres individuais no terminal do sistema e a ler ou escribir un sector de datos desde o disco. O BDOS controla parte do almacenamento en búfer dos datos do disco, pero antes do CP/M 3.0, asumía un tamaño de sector de disco fixo de 128 bytes, como o que se usa nos disquetes de densidade única de 8 polgadas. Dado que a maioría dos formatos de disco de 5,25 polgadas usan sectores grandes, o bloqueo e desbloqueo, así como a xestión da área de memoria dun disco, realizábanse mediante un modelo de código específico na BIOS.

A personalización era necesaria porque as opcións de hardware non estaban limitadas pola compatibilidade con ningún estándar famoso. Por exemplo, algúns fabricantes empregaban o terminal informático de forma independente, mentres que outras versións incorporaban un sistema integrado de visualización de vídeo. Os portos serie para impresoras e módems podían usar diferentes tipos de chips UART, e os enderezos dos portos non eran fixos. Algunhas máquinas usan memoria mapeada de E/S en lugar do espazo de enderezos de E/S do 8080. Todas estas variacións de hardware están ocultas noutros módulos do sistema mediante o uso da BIOS, que emprega puntos de entrada estándar para os servizos necesarios para executar CP/M, como a E/S de caracteres ou o acceso a bloques de disco. Debido a que o soporte para a comunicación serie a un módem era moi rudimentario na BIOS ou podía estar ausente por completo, era práctica común que os programas CP/M que usaban módems tivesen instalada unha superposición de usuario que contiña todo o código necesario para acceder a un porto serie particular da máquina.

 Sistema de ficheiros 
miniatura|Disquete de usuario final CP/M 2.2.
Os nomes dos ficheiros constaban de ata oito caracteres, seguidos dun punto e unha extensión de nome de ficheiro de ata tres caracteres (formato de nome de ficheiro «8.3»). A extensión adoita identificar o tipo de ficheiro. Por exemplo, .COM indicaba un ficheiro binario executable e .TXT indicaba un ficheiro que contén texto ASCII.

Cada unidade de disco identificábase cunha letra de unidade. Normalmente, as dúas unidades de disco identificáronse como unidades A: e B:. Para referirse a un ficheiro nunha unidade específica, a letra da unidade tiña como prefixo o nome do ficheiro, separado por dous puntos, por exemplo A:FILE.TXT. Sen a letra da unidade como prefixo, o estándar era utilizar ficheiros da unidade actual (por exemplo, un programa que se executa na unidade B accederá aos ficheiros da unidade B a menos que os nomes dos ficheiros estean precedidos dunha letra da unidade).

O tamaño do ficheiro especificouse como o número de rexistros de 128 bytes (correspondentes directamente aos sectores do disco en unidades de 8 polgadas) ocupados por un ficheiro no disco. Non había un xeito estándar de especificar o tamaño exacto dos ficheiros en bytes. O sistema operativo mantivo o tamaño actualizado dun ficheiro no bloque de control de ficheiros (FCB). Dado que moitas aplicacións (como os editores de texto) tratan os ficheiros como secuencias de caracteres, en lugar de secuencias de rexistros, por convención, os ficheiros de texto rematan cun carácter de CTRL-Z (ASCII SUB, hex 1A). Determinar o final dun ficheiro de texto consistía, polo tanto, en examinar o último rexistro do ficheiro para o CTRL-Z de terminación. Isto tamén significaba que inserir un carácter de CTRL-Z no medio dun ficheiro xeralmente tiña o efecto de truncar o contido de texto do ficheiro.

Non había soporte para a modificación da data do ficheiro (marcas de tempo), aínda que algunhas versións posteriores de CP/M engadiron esta función como extensión.

CP/M 2.2 non tiña subdirectorios na estrutura de ficheiros, pero había 16 «espazos de usuario» para organizar ficheiros nun disco. O concepto de espazo de usuario fixo que a versión monousuario de CP/M fose máis compatible cos sistemas MP/M multiusuario. Un parche común para CP/M e os seus derivados consistía en facer un espazo accesible para o usuario independentemente do espazo de usuario configurado. Un novo comando, «USER», permitiu ao usuario cambiar esta área a un valor entre 0 e 15. «USER 0» era o valor predeterminado. Se se cambia a outro usuario, por exemplo, USER 1, o contido gardado no disco por ese usuario só estaría dispoñible para o usuario 1; O USER 2 non poderá velo nin acceder a el. Como CP/M era un sistema operativo de usuario único, a declaración USER tiña pouca seguridade; nada impediu a ningún usuario acceder a ningún dos outros 16 espazos de usuario. A función de espazo de usuario posiblemente fose de pouca utilidade nos disquetes, pero foi máis útil para organizar ficheiros en máquinas equipadas con discos ríxidos grandes.

 Algúns tipos de ficheiros CP/M 
ExtensiónSignificado ASM Código fonte do ensamblador PRN Ficheiro de impressión HEX Código máquina BAS Código fonte BASIC INT Código intermedio COM Ficheiro executable PLI Código fonte PL/1 REL Módulo reubicable TEX Ficheiro fonte TeX BAK Copia de seguridade (ED) SYM Ficheiro de símbolos SID $$$ Ficheiro temporal

 Memoria libre para programas 
Na versión orixinal de CP/M para o 8080, 8085 e Z80, a memoria de lectura/escritura entre o enderezo hexadecimal 0100 e a localización xusto antes do enderezo almacenado en 0006H (o enderezo máis baixo do BDOS) é a Transient Program Area (TPA, ou «Área de Programa Transitorio») dispoñible para os programas de aplicación CP/M. Aínda que todos os procesadores Z80 e 8080 podían usar 64 quilobytes de memoria, a cantidade dispoñible para os programas podía variar dependendo do deseño do computador en particular. Algúns ordenadores empregan unha gran parte do espazo de enderezos para outras tarefas, como a ROM da BIOS ou a memoria da pantalla de vídeo. Polo tanto, algúns sistemas tiñan máis memoria dispoñible para TPA que outros. A conmutación de bancos era unha técnica común que permitía aos sistemas ter un TPA alto usando memoria ROM e de vídeo, se fose necesario. O CP/M 3.0 tamén permitía que partes de BDOS estivesen no banco de intercambio de memoria.

 Versións de CP/M 
DataVersión 1973 CP/M 1.0 - CP/M 1.4 1979 CP/M 2.0 - CP/M 2.2 1982 CP/M 3.0 (8 bits) - CP/M 3.1 (16 bits)

 Historia 
 O comezo e o auxe de CP/M 
 O nome 
En 1974, CP/M foi un proxecto persoal de Gary Kildall, baixo o nome de Control Program/Monitor. Durante a conversión de CP/M a un produto comercial, os documentos de rexistro de marca rexistrada presentados en novembro de 1977 incluírono baixo o nome de Control Program for Microcomputers. O nome ilustra o esquema de nomenclatura predominante na época, como na PL/M (Programming Language for Microcomputers) para Intel e PL/P (Programming Language for Prime) para Prime Computer, desenvolvidos por Kildall, que suxiren os sistemas operativos PL/I e CP/CMS de IBM, que Kildall empregaba cando traballaba na Escola de Posgrao Naval, e que tamén, como TOPS-10, tiñan claras semellanzas coa interface de usuario e o sistema de ficheiros de CP/M.

Este cambio de nome de CP/M formou parte dun esforzo máis amplo de Kildall e a súa esposa e socia, Dorothy McEwen, para converter o proxecto persoal de Kildall de CP/M e PL/M nunha empresa comercial. Os Kildall procuraron astutamente establecer a marca Digital Research e as súas liñas de produtos como sinónimo de «microcomputadora» nas mentes dos consumidores, do mesmo xeito que IBM e Microsoft conseguiron máis tarde facer que o termo «computadora persoal» fose sinónimo dos produtos ofrecidos por ambas as compañías. Máis tarde, o nome da empresa Intergalactic Digital Research, Inc. cambiou a Digital Research, Inc.

 Portabilidade 
miniatura|Tarxeta para o Apple II, con o procesador Z80.
CP/M describíase como un "bus de software", que permitía que varios programas interactuasen con diversos hardware dun xeito estandarizado. Os programas escritos para CP/M eran normalmente portátiles entre diferentes máquinas, xeralmente requirindo só a especificación de secuencias de escape para o control da pantalla e da impresora. Esta portabilidade fixo que CP/M fose moi popular, e escribiuse moito máis software para CP/M que para sistemas operativos que podían executarse nunha única marca de hardware. Unha restrición á portabilidade era que certos programas usaban o conxunto de instrucións do procesador Z80, que non se podía executar en procesadores 8080 ou 8085.

Moitas marcas diferentes de máquinas empregaban CP/M, sendo algúns exemplos notables o Altair, o IMSAI 8080, o Osborne 1, os portátiles Kaypro e os microcomputadores MSX. Mesmo o Apple II podía executar CP/M cando se instalaba unha tarxeta Z80 adicional. O sistema estándar compatible co CP/M axudou a establecer o récord de vendas de todos os tempos, probablemente co Commodore 128 como hardware, aínda que poucas persoas utilizaron realmente as capacidades do CP/M. No Reino Unido, o CP/M tamén estaba dispoñible para o BBC Micro, equipado cun coprocesador Z80. Tamén funcionaba co famoso sistema de procesamento de textos Amstrad PCW e estaba dispoñible para a serie Amstrad CPC e modelos posteriores do ZX Spectrum.

 Aplicacións 
WordStar, un dos primeiros procesadores de texto amplamente utilizados, e dBase, un programa de bases de datos pioneiro e famoso para microordenadores, foron programados orixinalmente para CP/M. Un dos primeiros programas esquematizadores, KAMAS (Knowledge and Mind Amplification System ou «Sistema de Amplificación do Coñecemento e a Mente»), tamén foi programado para CP/M, aínda que posteriormente foi reescrito para MS-DOS. Turbo Pascal, un predecesor de Delphi de Borland, e Multiplan, un predecesor de Microsoft Excel, tamén apareceron en CP/M, moito antes de que as versións para MS-DOS estivesen dispoñibles. AutoCAD, o programa CAD de Autodesk, tamén debutou en CP/M. Había dispoñible un gran número de compiladores e intérpretes para linguaxes de programación populares da época (como BASIC e FORTRAN), incluíndo varios dos primeiros produtos de Microsoft. Portáronse varios xogos de aventuras baseados en texto, como Colossal Cave Adventure e outros exemplos pioneiros de ficción interactiva. Lifeboat Associates comezou a recompilar e distribuír software «libre», programado polos usuarios. Un dos primeiros foi XMODEM, que permitía a comunicación por módem e liña telefónica.

 Gráficos 
Aínda que os sistemas S100 con capacidade gráfica existían dende a comercialización do bus S-100, CP/M non proporcionou ningún soporte gráfico estándar ata o lanzamento de CP/M 3.0 con GSX (Graphic System eXtension ou «Extensió Gràfica del Sistema»). Debido á pouca cantidade de memoria dispoñible, os gráficos nunca foron unha característica común asociada co sistema operativo CP/M de 8 bits. A maioría dos sistemas só podían mostrar gráficos e diagramas rudimentarios de arte ASCII en modo texto ou usando un conxunto de caracteres personalizado.

 Formatos de disco 
miniatura|Disco de arranque CP/M (5¼") para o Commodore C128.
Aínda que o formato de disquete de densidade única de 8 polgadas (chamado «formato de distribución») estaba estandarizado, utilizáronse varios formatos de 5¼ polgadas dependendo das características dos sistemas e, ata certo punto, das eleccións dos deseñadores. CP/M ofrecía opcións de compatibilidade para controlar o tamaño das áreas reservadas e directorios no disco, e a correspondencia entre sectores lóxicos (como os que usan os programas CP/M) e sectores físicos asignados ao disco. Había varias maneiras de personalizar estas configuracións para cada sistema, pero unha vez creadas, non había unha forma estandarizada para que un sistema cargase a configuración dun disco formatado noutro sistema.Andy Johnson-Laird. The Programmer's CP/M Handbook, capítulo 3. Osborne-McGraw Hill, Berkeley, California (1983).  Ningún fabricante prevaleceu na era de 5¼ polgadas de CP/M, e os formatos de disco non eran portátiles entre fabricantes de hardware. Un fabricante de software tiña que preparar unha versión separada do programa para cada marca de hardware na que se executaría. No caso dalgúns fabricantes (Kaypro é un exemplo), nin sequera existía estandarización entre os diferentes modelos da compañía. Por este motivo, os programas de transcrición de formatos de disco, que permitían que unha máquina lese moitos formatos diferentes, popularizáronse e reduciron a confusión. Por outra banda, existían programas como Kermit que permitían a transferencia de datos e programas dunha máquina a outra empregando os portos serie que tiñan a maioría das máquinas CP/M. O mercado fragmentado do CP/M, que requiría que os distribuidores proporcionasen varios formatos de disco ou investisen en equipos de duplicación multiformato, en comparación cos formatos de disco máis estandarizados do IBM PC, foi un factor que contribuíu á rápida obsolescencia do CP/M despois de 1981.

 Decadencia e fin 
 O mundo de 16 bits 
miniatura|O DEC Rainbow: tres sistemas operativos.
Tamén se produciron versións posteriores de CP/M para algunhas CPU de 16 bits, aínda que as aplicacións tiveron que ser recompiladas para as novas CPU ou, se foran programadas en linguaxe ensambladora, tiveron que ser reescritas en gran parte desde cero.

Un dos primeiros foi o CP/M-86 para o Intel 8086, ao que axiña seguiu o CP/M-68k para o Motorola 68000. Neste punto, o CP/M orixinal de 8 bits pasou a coñecerse co retrónimo "CP/M-80" para evitar confusións. Tamén houbo unha porta para o Zilog Z8000, chamada CP/M-8000.

O CP/M-68k usouse inicialmente no ordenador Atari ST, pero Atari decidiu usar un novo DOS chamado GEMDOS. Tamén se usou nos ordenadores M68 e M68MX. Esperábase que o CP/M-86 fose o sistema operativo estándar para o novo IBM PC, pero DRI e IBM non puideron negociar os termos de desenvolvemento e as condicións de licenza. Entón, IBM negociou con Microsoft, que lle vendeu un sistema operativo baseado nun "clónico" de CP/M, o 86-DOS. Aínda que o CP/M-86 se converteu nunha boa opción para os PC de IBM despois de que DRI ameazase con emprender accións legais, nunca superou o sistema de Microsoft.

Cando Digital Equipment Corporation lanzou o Rainbow 100 para competir con IBM, executaba CP/M-80 nun chip Z80 e CP/M-86 ou MS-DOS nun microprocesador 8088. As CPU Z80 e 8088 executábanse simultaneamente. Unha vantaxe do Rainbow era que podía seguir executando software CP/M de 8 bits mentres os usuarios se trasladaban ao mundo de 16 bits de MS-DOS.

 MS-DOS toma o relevo 
miniatura|CP/M-86 coa versión 1.1 en execución.
A primeira versión de MS-DOS tiña algunha semellanza co CP/M-86, pero axiña diverxiron despois da primeira versión. Moitos dos conceptos básicos e mecanismos internos das primeiras versións de MS-DOS semellaban CP/M. As estruturas de datos de manipulación de ficheiros eran idénticas e ambas facían referencia a unidades de disco cunha letra (A:, B:, etc.). Esta semellanza facilitou a portabilidade do software máis exitoso de CP/M como WordStar e dBase. Porén, o concepto CP/M de espazos separados para ficheiros de usuario no mesmo disco nunca foi portado a MS-DOS. A principal innovación de MS-DOS foi o seu sistema de ficheiros, FAT. Como MS-DOS tiña acceso a máis memoria (vendéronse poucas computadoras IBM con menos de 64 KB de memoria, mentres que CP/M podía executarse en tan só 16 KB), apareceron máis comandos para a súa liña de comandos, facendo que MS-DOS fose un pouco máis rápido e máis doado de usar en máquinas baseadas en disco.

CP/M rapidamente perdeu súa cota de vendas, mentres o mercado migraba á plataforma de PC, e nunca recuperou a súa antiga popularidade. Byte Magazine, naquel momento unha das principais revistas da industria editorial de microcomputadoras, deixou de cubrir produtos CP/M poucos anos despois do lanzamento do IBM PC. Por exemplo, en 1983 aínda había algúns anuncios de tarxetas S100 e artigos de software para o CP/M, pero en 1987 xa non estaban na revista.

As versións posteriores do CP/M-86 fixeron avances significativos no rendemento e na facilidade de uso e fixéronse compatibles con MS-DOS. Para reflectir esta compatibilidade cambiouse o nome e CP/M-86 converteuse en DOS Plus, que á súa vez se converteu en DR-DOS.

 Adeus a CP/M 
miniatura|Disquetes de 5¼" e unha caixa da folla de cálculo Lotus 1-2-3.
A pesar das previsións optimistas, o CP/M non estivo aquí «para quedarse». Mesmo despois de que IBM anunciase que faría de MS-DOS o seu sistema operativo estándar para IBM PC, a base de usuarios instalada de CP/M, estimada en 1,5 millóns de persoas a principios de 1983, aínda se pensaba que era demasiado grande para ignorala. Porén, a gran maioría dos sistemas CP/M neste momento consistían en máquinas de 8 bits, que cada día estaban máis obsoletas. A decisión de IBM de priorizar MS-DOS quizais non fose decisiva para o destino final do CP/M, pero certamente a aparición da industria de ordenadores compatibles con IBM, que copiou o hardware de IBM e adoptou masivamente o sistema operativo de Microsoft, foi un golpe decisivo (mesmo para a propia IBM, que anos máis tarde abandonaría o campo dos ordenadores persoais).

A elección de MS-DOS (ou PC-DOS) baseouse en dúas razóns sinxelas: custo e portabilidade. En teoría, CP/M-86 podería converterse no sistema operativo estándar para o IBM PC, aínda que foi lanzado meses despois de MS-DOS. Non obstante, coa compra dun ordenador persoal cunha unidade de disco, IBM ofreceu IBM PC-DOS 1.0 por 39,95 USD e para todas as partes interesadas, CP/M-86 por 240 USD. Debido á diferenza de prezo, vendéronse máis unidades de IBM PC-DOS que CP/M-86. Ademais, aos desenvolvedores resultou máis doado facer versións de aplicacións CP/M para MS-DOS que para CP/M-86. Ademais, as máquinas de 16 bits tiñan memorias máis grandes e CPU máis rápidas, e MS-DOS aproveitou isto de forma moito máis eficiente. Pronto houbo «aplicacións asasinas» que só funcionaban en MS-DOS e nunca foron portadas a CP/M-86. Un era Lotus 1-2-3, que significaba para o IBM PC o que VisiCalc fora para o Apple II.

 Derivados 
 Oficial 
Algunhas empresas fixeron melloras oficiais de CP/M baseándose no código fonte de Digital Research. Un exemplo é IMDOS, feito por IMS Associates, Inc. para o ordenador IMSAI 8080, un clon do famoso Altair 8800.

 Compatible 
Outros SO compatibles con CP/M desenvolvéronse de forma independente e non fixeron uso do código de Digital Research. Algúns exemplos contemporáneos foron:

 Cromemco CDOS de Cromemco.
 MSX-DOS para a gama de microordenadores MSX, é compatible con CP/M e pode executar programas CP/M.
 O Epson QX-10 foi enviado cunha opción de CP/M ou compatibles TPM-II ou TPM-III.
 O SAM Coupé tiña un sistema operativo opcional compatible con CP/M-2.2 chamado Pro-DOS.
 Os ordenadores Amstrad/Schneider CPC da serie 6xx (baseados en disco) e da serie PCW foron incluídos cun paquete de discos CP/M.
 O portátil «Husky» executaba un cargador de programas baseado en ROM chamado DEMOS, que podía executar moitas aplicacións CP/M.
 ZSDOS é un BDOS substituto para CP/M-80 2.2 escrito por Harold F. Bower e Cameron W. Cotrill.
 CPMish é un novo sistema operativo compatible con FOSS CP/M 2.2 que orixinalmente non contiña ningún código DR. Inclúe ZSDOS como BDOS e ZCPR como procesador de comandos. Desde que Bryan Sparks, o presidente de Lineo, propietaria de DR, concedeu permiso en 2022 para modificar e redistribuír o código CP/M, o desenvolvedor David Given está a actualizar CPMish con algunhas partes do DR CP/M orixinal.
 LokiOS é un sistema operativo compatible con CP/M 2.2. A versión 0.9 foi publicada en 2023 por David Kitson como un exercicio de sistema operativo escrito en solitario, destinado ao Open Spectrum Project e inclúe código fonte para a interface de BIOS, BDOS e de liña de comandos, así como outras aplicacións e controladores compatibles. A distribución tamén inclúe código fonte DR orixinal e unha utilidade que permite aos usuarios intercambiar compoñentes do SO (por exemplo, BDOS, CCP) sobre a marcha.
 IS-DOS para microordenadores Enterprise, escrito por Intelligent Software.
 VT-DOS para o Videoton TV Computer húngaro, escrito por Intelligent Software.
 TIKO para o Tiki 100 noruegués, primeiro chamado KP/M, era compatible con CP/M. Daquela asumida erróneamente como unha copia ilegal, foi escrita desde cero en PL/M.

 Melloras 
Algúns sistemas operativos compatibles con CP/M estenderon a funcionalidade básica ata tal punto que superan con moito o orixinal, por exemplo, o TurboDOS capaz de multiprocesamento.

 Bloque do leste 
miniatura|Captura de pantalla de SCP (clon CP/M) en execución no PC 1715.
No antigo Bloque do leste existían unha serie de derivados de CP/M-80 baixo varios nomes, incluíndo SCP (Single User Control Program ou Programa de control de usuario único), SCP/M, CP/A, CP/J, CP/KC, CP/KSOB, CP/L, CP/Z, MICRODOS, BCU880, ZOAZ, OS/M, COSTOS-/MSA/, Z DOS-PSA, CSOC, CSOS, CZ-CPM, DAC, HC e outros. Tamén había derivados de CP/M-86 chamados SCP1700, CP/K e K8918-OS. Foron producidos polo VEB Robotron de Alemaña Oriental e outros.

 Legado 
Varios comportamentos que exhibe Microsoft Windows son o resultado da compatibilidade reversa de MS-DOS, que á súa vez intentou certa compatibilidade con versións anteriores de CP/M. As convencións da letra da unidade e dos nomes de ficheiro 8.3 en MS-DOS (e nas primeiras versións de Windows) foron adoptadas orixinalmente de CP/M. Os caracteres comodín de coincidencia usados ​​por Windows (? e *) baséanse nos de CP/M, do mesmo xeito que os nomes de ficheiro reservados usados ​​para redirixir a saída a unha impresora ("PRN:") e á consola ("CON:"). Os nomes de unidades A e B usábanse para designar as dúas unidades de disquete que os sistemas CP/M usaban normalmente; cando apareceron os discos duros, designábanse como C, que sobreviviu en MS-DOS como a liña de comandos C:\>. O carácter de control ^Z que marca o final dalgúns ficheiros de texto tamén se pode atribuír a CP/M. Varios comandos en DOS foron modelados a partir dos comandos CP/M; algúns deles incluso levaban o mesmo nome, como DIR, REN/RENAME ou TYPE (e ERA/ERASE en DR-DOS). As extensións de ficheiro como .TXT ou .COM aínda se usan para identificar tipos de ficheiro en moitos sistemas operativos.

En 1997 e 1998, Caldera publicou algúns binarios e código fonte de CP/M 2.2 baixo unha licenza de código aberto, permitindo tamén a redistribución e modificación de ficheiros de investigación dixital recompilados posteriormente relacionados coas familias CP/M e MP/M a través do "sitio web non oficial de CP/M" de Tim Olmstead desde 1997. Tras a morte de Olmstead o 12 de setembro de 2001, a licenza de distribución foi renovada e ampliada por Lineo, que mentres tanto se convertera na propietaria deses activos de Digital Research, o 19 de outubro de 2001. En outubro de 2014, para conmemorar o cuadraxésimo aniversario da primeira presentación de CP/M, o Computer History Museum publicou versións iniciais do código fonte de CP/M.

 Notas 

 Véxase tamén 
 Outros artigos 

 Ligazóns externas 



Categoría:Sistemas operativos
Categoría:Digital Research