stringtranslate.com

CP/M

CP/M , [3] originalmente significa Control Program/Monitor [4] y más tarde Control Program for Microcomputers , [5] [6] [7] es un sistema operativo de mercado masivo creado en 1974 para microcomputadoras basadas en Intel 8080 / 85 por Gary Kildall de Digital Research, Inc. CP/M es un sistema operativo de disco [8] y su propósito es organizar archivos en un medio de almacenamiento magnético y cargar y ejecutar programas almacenados en un disco. Inicialmente confinado a una sola tarea en procesadores de 8 bits y no más de 64 kilobytes de memoria, las versiones posteriores de CP/M agregaron variaciones multiusuario y se migraron a procesadores de 16 bits .

La combinación de los ordenadores CP/M y bus S-100 se convirtió en un estándar temprano en la industria de los microordenadores. Esta plataforma informática se utilizó ampliamente en los negocios hasta finales de los años 1970 y mediados de los años 1980. [9] CP/M aumentó el tamaño del mercado tanto de hardware como de software al reducir en gran medida la cantidad de programación necesaria para trasladar una aplicación a un ordenador de un nuevo fabricante. [10] [11] Un importante impulsor de la innovación en software fue la llegada de microordenadores (comparativamente) de bajo coste que ejecutaban CP/M, ya que programadores independientes y piratas informáticos los compraban y compartían sus creaciones en grupos de usuarios . [12] CP/M fue finalmente reemplazado por DOS tras la introducción del IBM PC en 1981 .

Historia

Anuncio de CP/M en la edición del 29 de noviembre de 1982 de la revista InfoWorld

Historia temprana

Gary Kildall desarrolló originalmente CP/M durante 1974, [5] [6] como un sistema operativo para ejecutarse en un sistema de desarrollo Intel Intellec-8 , equipado con una unidad de disquete de 8 pulgadas Shugart Associates interconectada a través de un controlador de disquete personalizado . [13] Fue escrito en el propio PL/M ( lenguaje de programación para microcomputadoras ) de Kildall. [14] Varios aspectos de CP/M fueron influenciados por el sistema operativo TOPS-10 de la computadora central DECsystem-10 , que Kildall había utilizado como entorno de desarrollo. [15] [16] [17] Uno de los primeros licenciatarios externos de CP/M fue Gnat Computers , uno de los primeros desarrolladores de microcomputadoras de San Diego, California . En 1977, se le concedió a la empresa la licencia para utilizar CP/M 1.0 para cualquier micro que desearan por $90. En el transcurso de un año, la demanda de CP/M fue tan alta que Digital Research pudo aumentar la licencia a decenas de miles de dólares. [18]

Bajo la dirección de Kildall, el desarrollo de CP/M 2.0 fue llevado a cabo principalmente por John Pierce en 1978. Kathryn Strutynski , una amiga de Kildall de la Naval Postgraduate School (NPS), se convirtió en la cuarta empleada de Digital Research Inc. a principios de 1979. Comenzó depurando CP/M 2.0 y más tarde se volvió influyente como desarrolladora clave de CP/M 2.2 y CP/M Plus. Otros desarrolladores tempranos de la base CP/M fueron Robert "Bob" Silberstein y David "Dave" K. Brown. [19] [20]

CP/M originalmente significaba "Control Program/Monitor" (Programa/Monitor de Control), [3] un nombre que implica un monitor residente , un precursor primitivo del sistema operativo. Sin embargo, durante la conversión de CP/M a un producto comercial, los documentos de registro de marca presentados en noviembre de 1977 dieron el nombre del producto como "Control Program for Microcomputers" (Programa de Control para Microcomputadoras). [6] El nombre CP/M sigue un esquema de nombres predominante en la época, como en el lenguaje PL/M de Kildall y PL/P ( Lenguaje de Programación para Prime ) de Prime Computer, ambos sugiriendo PL/I de IBM ; y el sistema operativo CP/CMS de IBM , que Kildall había usado cuando trabajaba en el NPS. Este cambio de nombre de CP/M fue parte de un esfuerzo mayor de Kildall y su esposa con su socia comercial, Dorothy McEwen [4] para convertir el proyecto personal de Kildall de CP/M y el compilador PL/M contratado por Intel en una empresa comercial. Los Kildall pretendían establecer la marca Digital Research y sus líneas de productos como sinónimo de "microordenador" en la mente del consumidor, de forma similar a lo que IBM y Microsoft lograron más tarde con éxito al hacer que " ordenador personal " fuera sinónimo de su oferta de productos. Intergalactic Digital Research, Inc. pasó a denominarse posteriormente, mediante una solicitud de cambio de nombre corporativo, Digital Research, Inc. [4]

Éxito inicial

Tarjeta CP/M de Apple con manual

En septiembre de 1981, Digital Research había vendido más de250.000 licencias CP/M; InfoWorld afirmó que el mercado real probablemente era mayor debido a las sublicencias. Muchas compañías diferentes produjeron computadoras basadas en CP/M para muchos mercados diferentes; la revista afirmó que "CP/M está en camino de establecerse como el sistema operativo para computadoras pequeñas". [21] Las compañías eligieron apoyar a CP/M debido a su gran biblioteca de software. El Xerox 820 ejecutó el sistema operativo porque "donde hay literalmente miles de programas escritos para él, sería imprudente no aprovecharlo", dijo Xerox. [22] (Xerox incluyó un manual de CP/M de Howard W. Sams como compensación por la documentación de Digital Research, que InfoWorld describió como atroz, [23] incompleta, incomprensible y mal indexada. [24] ) Para 1984, la Universidad de Columbia utilizó el mismo código fuente para construir binarios de Kermit para más de una docena de sistemas CP/M diferentes, más dos versiones genéricas. [25] El sistema operativo se describía como un " bus de software ", [26] [27] que permitía que varios programas interactuaran con diferentes hardware de una manera estandarizada. [28] Los programas escritos para CP/M eran típicamente portables entre diferentes máquinas, requiriendo normalmente sólo la especificación de las secuencias de escape para el control de la pantalla y la impresora. Esta portabilidad hizo que CP/M fuera popular, y se escribió mucho más software para CP/M que para sistemas operativos que se ejecutaban en una sola marca de hardware. Una restricción a la portabilidad era que ciertos programas usaban el conjunto de instrucciones extendido del procesador Z80 y no funcionaban en un procesador 8080 o 8085. Otra eran las rutinas gráficas, especialmente en juegos y programas gráficos, que eran generalmente específicas de la máquina ya que usaban acceso directo al hardware para mayor velocidad, sin pasar por el SO y el BIOS (este también era un problema común en las primeras máquinas DOS). [ cita requerida ]

Bill Gates afirmó que el Apple II con una SoftCard Z-80 era la plataforma de hardware CP/M más popular. [29] Muchas marcas diferentes de máquinas ejecutaban el sistema operativo, algunos ejemplos notables eran el Altair 8800 , el IMSAI 8080 , los portátiles Osborne 1 y Kaypro y los ordenadores MSX . El sistema con capacidad CP/M más vendido de todos los tiempos fue probablemente el Amstrad PCW . En el Reino Unido, CP/M también estaba disponible en los ordenadores educativos Research Machines (con el código fuente CP/M publicado como un recurso educativo) y para el BBC Micro cuando estaba equipado con un coprocesador Z80. Además, estaba disponible para la serie Amstrad CPC , el Commodore 128 , TRS-80 y modelos posteriores del ZX Spectrum . CP/M 3 también se utilizó en el NIAT, un ordenador portátil personalizado diseñado para uso interno de  AC Nielsen con 1 MB de memoria SSD .

Multiusuario

En 1979 se lanzó una versión derivada de CP/M compatible con múltiples usuarios. MP/M permitía que varios usuarios se conectaran a una sola computadora, utilizando múltiples terminales para proporcionar a cada usuario una pantalla y un teclado. Las versiones posteriores funcionaban con procesadores de 16 bits.

CP/M+ Plus

Guía del sistema CP/M Plus (CP/M 3)

La última versión de 8 bits de CP/M fue la versión 3, a menudo llamada CP/M Plus, lanzada en 1983. [19] Su BDOS fue diseñado por David K. Brown. [19] Incorporaba la gestión de memoria de conmutación de bancos de MP/M en un sistema operativo monotarea para un solo usuario compatible con aplicaciones CP/M 2.2. Por lo tanto, CP/M 3 podía utilizar más de 64 KB de memoria en un procesador 8080 o Z80. El sistema podía configurarse para admitir el estampado de fecha de los archivos. [19] El software de distribución del sistema operativo también incluía un ensamblador y enlazador de reubicación. [2] CP/M 3 estaba disponible para la última generación de computadoras de 8 bits, en particular Amstrad PCW, Amstrad CPC , ZX Spectrum +3 , Commodore 128 , máquinas MSX y Radio Shack TRS-80 Model 4. [ 30]

Versiones de 16 bits

Distribución en disquete DEC PRO-CP/M-80 para el coprocesador Z80-A en una serie DEC Professional 3xx

También hubo versiones de CP/M para algunas CPU de 16 bits .

La primera versión de la familia de 16 bits fue CP/M-86 para Intel 8086 en noviembre de 1981. [31] Kathryn Strutynski fue la directora de proyecto de la línea de sistemas operativos CP/M-86 en evolución. [19] [20] En este punto, el CP/M original de 8 bits pasó a ser conocido con el retrónimo CP/M-80 para evitar confusiones. [31]

Se esperaba que CP/M-86 fuera el sistema operativo estándar de los nuevos IBM PC , pero DRI e IBM no pudieron negociar los términos de desarrollo y licencia. IBM recurrió a Microsoft en su lugar, y Microsoft entregó PC DOS basado en 86-DOS . Aunque CP/M-86 se convirtió en una opción para IBM PC después de que DRI amenazara con acciones legales, nunca superó al sistema de Microsoft. La mayoría de los clientes se sintieron repelidos por el precio significativamente mayor que IBM cobraba por CP/M-86 en comparación con PC DOS ( US$ 240 y US$ 40, respectivamente). [32]

Cuando Digital Equipment Corporation (DEC) sacó el Rainbow 100 para competir con IBM, venía con CP/M-80 usando un chip Z80, CP/M-86 o MS-DOS usando un microprocesador 8088, o CP/M-86/80 usando ambos. Las CPU Z80 y 8088 funcionaban simultáneamente. [33] [34] Una ventaja del Rainbow era que podía seguir ejecutando software CP/M de 8 bits, preservando la inversión posiblemente considerable del usuario a medida que se trasladaba al mundo de 16 bits de MS-DOS. [33] Una adaptación de doble procesador similar para el CompuPro System 816  [sr] se denominó CP/M 8-16 . La adaptación CP/M-86 para el Zenith Z-100 basado en 8085/8088 también admitía la ejecución de programas para ambas CPU.

Poco después del CP/M-86, apareció otra versión de 16 bits de CP/M, el CP/M-68K para el Motorola 68000. La versión original de CP/M-68K de 1982 se escribió en Pascal/MT+68k , pero más tarde se adaptó a C. El CP/M-68K, que ya se ejecutaba en los sistemas Motorola EXORmacs , se iba a utilizar inicialmente en el ordenador Atari ST , pero Atari decidió utilizar un sistema operativo de disco más nuevo llamado GEMDOS . El CP/M-68K también se utilizó en los ordenadores SORD M68 y M68MX. [35]

En 1982, también hubo un puerto de CP/M-68K al Zilog Z8000 de 16 bits para el Olivetti M20 , escrito en C , llamado CP/M-8000 . [36] [37]

Estas versiones de 16 bits de CP/M requerían que los programas de aplicación se volvieran a compilar para las nuevas CPU. Algunos programas escritos en lenguaje ensamblador podían traducirse automáticamente para un nuevo procesador. Una herramienta para esto era XLT86 de Digital Research , que traducía el código fuente .ASM para el procesador Intel 8080 a código fuente .A86 para el Intel 8086. El traductor también optimizaba la salida para el tamaño del código y se ocupaba de las convenciones de llamada, de modo que los programas CP/M-80 y MP/M-80 pudieran trasladarse a las plataformas CP/M-86 y MP/M-86 automáticamente. XLT86 en sí estaba escrito en PL/I-80 y estaba disponible para las plataformas CP/M-80 así como para VAX/VMS . [38]

Desplazamiento por MS-DOS

Muchos esperaban que CP/M fuera el sistema operativo estándar para ordenadores de 16 bits. [39] En 1980, IBM se puso en contacto con Digital Research, a sugerencia de Bill Gates , [40] para obtener la licencia de una futura versión de CP/M para su nuevo producto, el IBM Personal Computer. Al no conseguir un acuerdo de confidencialidad firmado , las conversaciones fracasaron e IBM contrató en su lugar a Microsoft para que le proporcionara un sistema operativo. [41] El producto resultante, MS-DOS , pronto empezó a venderse más que CP/M.

Muchos de los conceptos y mecanismos básicos de las primeras versiones de MS-DOS se parecían a los de CP/M. Los aspectos internos, como las estructuras de datos para el manejo de archivos, eran idénticos y ambos hacían referencia a las unidades de disco con una letra ( A:, B:, etc.). La principal innovación de MS-DOS fue su sistema de archivos FAT . Esta similitud facilitó la adaptación de software CP/M popular como WordStar y dBase . Sin embargo, el concepto de CP/M de áreas de usuario separadas para archivos en el mismo disco nunca se adaptó a MS-DOS. Dado que MS-DOS tenía acceso a más memoria (ya que se vendían pocos IBM PC con menos de 64 KB de memoria, mientras que CP/M podía ejecutarse en 16 KB si era necesario), se incorporaron más comandos en el shell de línea de comandos , lo que hizo que MS-DOS fuera algo más rápido y fácil de usar en computadoras basadas en disquetes.

Aunque uno de los primeros periféricos para el IBM PC fue una tarjeta de expansión similar a SoftCard que le permitía ejecutar software CP/M de 8 bits, [42] InfoWorld afirmó en 1984 que los esfuerzos por introducir CP/M en el mercado doméstico habían sido en gran medida infructuosos y la mayor parte del software CP/M era demasiado caro para los usuarios domésticos. [43] En 1986, la revista afirmó que Kaypro había detenido la producción de modelos basados ​​en CP/M de 8 bits para concentrarse en las ventas de sistemas compatibles con MS-DOS, mucho después de que la mayoría de los demás proveedores hubieran dejado de producir nuevos equipos y software para CP/M. [44] CP/M perdió rápidamente cuota de mercado a medida que el mercado de la microinformática se trasladaba a la plataforma compatible con IBM, y nunca recuperó su antigua popularidad. La revista Byte , en aquel momento una de las principales revistas de la industria de microinformática, dejó esencialmente de cubrir los productos CP/M a los pocos años de la introducción del IBM PC. Por ejemplo, en 1983 todavía había algunos anuncios de placas S-100 y artículos sobre el software CP/M, pero en 1987 ya no se encontraban en la revista.

Las versiones posteriores de CP/M-86 lograron avances significativos en rendimiento y facilidad de uso y se hicieron compatibles con MS-DOS. Para reflejar esta compatibilidad, se cambió el nombre y CP/M-86 se convirtió en DOS Plus , que a su vez se convirtió en DR-DOS .

ZCPR

El ZCPR [45] (el reemplazo del procesador de comandos Z80) se presentó el 2 de febrero de 1982 como reemplazo directo del procesador de comandos de consola (CCP) estándar de Digital Research y fue escrito inicialmente por un grupo de aficionados a las computadoras que se autodenominaban "The CCP Group". Estaban formados por Frank Wancho, Keith Petersen (el archivista detrás de Simtel en ese momento), Ron Fowler, Charlie Strom, Bob Mathias y Richard Conn. Richard era, de hecho, la fuerza impulsora de este grupo (todos los cuales mantenían contacto a través del correo electrónico).

ZCPR1 fue lanzado en un disco editado por SIG/M (Special Interest Group/Microcomputers), una parte del Amateur Computer Club de Nueva Jersey .

El ZCPR2 se lanzó el 14 de febrero de 1983. SIG/M lo lanzó como un conjunto de diez discos. Se actualizó a la versión 2.3 y también se lanzó en código 8080, lo que permitió su uso en sistemas 8080 y 8085.

El ZCPR3 [46] fue lanzado el 14 de julio de 1984, como un conjunto de nueve discos de SIG/M. El código para el ZCPR3 también podía ser compilado (con características reducidas) para el 8080 y podía ejecutarse en sistemas que no tuvieran el microprocesador Z80 requerido . Las características del ZCPR a partir de la versión 3 incluían shells, alias, redirección de E/S, control de flujo, directorios con nombre, rutas de búsqueda, menús personalizados, contraseñas y ayuda en línea. En enero de 1987, Richard Conn dejó de desarrollar el ZCPR y Echelon le pidió a Jay Sage (que ya tenía un ZCPR 3.1 mejorado de forma privada) que continuara trabajando en él. Por lo tanto, se desarrolló y lanzó el ZCPR 3.3. El ZCPR 3.3 ya no era compatible con la serie de microprocesadores 8080 y agregó la mayor cantidad de características de cualquier actualización en la línea ZCPR. El ZCPR 3.3 también incluía un conjunto completo de utilidades con capacidades considerablemente extendidas. Si bien la base de usuarios de CP/M de la época apoyó con entusiasmo el ZCPR, por sí solo no fue suficiente para frenar la desaparición de CP/M.

Modelo de hardware

Computadora Sanco 8001, funcionando con CP/M 2.2 (1982)
Cartucho CP/M para Commodore 64

Un sistema CP/M mínimo de 8 bits contendría los siguientes componentes:

El único sistema de hardware que CP/M, tal como lo vendía Digital Research, era compatible con el sistema de desarrollo Intel 8080. Los fabricantes de sistemas compatibles con CP/M personalizaban partes del sistema operativo para su propia combinación de memoria instalada, unidades de disco y dispositivos de consola. CP/M también se ejecutaba en sistemas basados ​​en el procesador Zilog Z80, ya que el Z80 era compatible con el código 8080. Si bien el núcleo distribuido de CP/M por Digital Research (BDOS, CCP, comandos transitorios básicos) no usaba ninguna de las instrucciones específicas del Z80, muchos sistemas basados ​​en Z80 usaban código Z80 en el BIOS específico del sistema, y ​​muchas aplicaciones estaban dedicadas a máquinas CP/M basadas en Z80.

Posteriormente, Digital Research se asoció con Zilog y American Microsystems para producir Personal CP/M, una versión del sistema operativo basada en ROM destinada a sistemas de menor costo que podrían potencialmente estar equipados sin unidades de disco. [49] Presentado por primera vez en el Sharp MZ-800, un sistema basado en casete con unidades de disco opcionales, [50] Personal CP/M fue descrito como "reescrito para aprovechar el conjunto de instrucciones Z-80 mejorado" en lugar de preservar la portabilidad con el 8080. American Microsystems anunció un microprocesador compatible con Z80, el S83, que presenta 8 KB de ROM en el paquete para el sistema operativo y BIOS, junto con una lógica integral para interactuar con dispositivos de RAM dinámica de 64 kilobits. [51] El precio unitario del S83 se cotizó en $32 en cantidades de 1000 unidades. [52]

En la mayoría de las máquinas, el arranque era un cargador de arranque mínimo en ROM combinado con algún medio de cambio de banco mínimo o un medio de inyectar código en el bus (ya que el 8080 necesita ver el código de arranque en la dirección 0 para el inicio, mientras que CP/M necesita RAM allí); para otros, este arranque tenía que ingresarse en la memoria usando los controles del panel frontal cada vez que se iniciaba el sistema.

CP/M utilizaba el conjunto ASCII de 7 bits. Los otros 128 caracteres que se podían obtener gracias al byte de 8 bits no estaban estandarizados. Por ejemplo, un Kaypro los utilizaba para caracteres griegos y las máquinas Osborne utilizaban el conjunto de 8 bits para indicar un carácter subrayado. WordStar utilizaba el 8.º bit como marcador de fin de palabra. Los sistemas CP/M internacionales utilizaban con mayor frecuencia la norma ISO 646 para conjuntos de caracteres localizados, reemplazando ciertos caracteres ASCII por caracteres localizados en lugar de añadirlos más allá del límite de 7 bits.

Componentes

En las versiones de 8 bits, durante su ejecución, el sistema operativo CP/M cargado en la memoria tenía tres componentes: [3]

El BIOS y el BDOS residían en la memoria, mientras que el CCP residía en la memoria a menos que una aplicación lo sobrescribiera, en cuyo caso se recargaba automáticamente una vez que la aplicación terminaba de ejecutarse. También se proporcionaban varios comandos transitorios para utilidades estándar. Los comandos transitorios residían en archivos con la extensión .COM en el disco.

El BIOS controlaba directamente los componentes de hardware distintos de la CPU y la memoria principal. Contenía funciones como la entrada y salida de caracteres y la lectura y escritura de sectores de disco. El BDOS implementaba el sistema de archivos CP/M y algunas abstracciones de entrada/salida (como la redirección) sobre el BIOS. El CCP tomaba los comandos del usuario y los ejecutaba directamente (comandos internos como DIR para mostrar un directorio o ERA para eliminar un archivo) o cargaba e iniciaba un archivo ejecutable con el nombre dado (comandos transitorios como PIP.COM para copiar archivos o STAT.COM para mostrar información variada de archivos y del sistema). Las aplicaciones de terceros para CP/M también eran esencialmente comandos transitorios.

Los comandos BDOS, CCP y transitorios estándar eran los mismos en todas las instalaciones de una revisión particular de CP/M, pero la parte del BIOS siempre estaba adaptada al hardware particular.

Por ejemplo, para añadir memoria a un ordenador era necesario reinstalar el sistema CP/M para permitir que los programas transitorios utilizaran el espacio de memoria adicional. Con la distribución del sistema se incluía un programa de utilidad (MOVCPM) que permitía reubicar el código objeto en distintas áreas de memoria. El programa de utilidad ajustaba las direcciones de las instrucciones de salto absoluto y de llamada a subrutinas a las nuevas direcciones requeridas por la nueva ubicación del sistema operativo en la memoria del procesador. Esta versión recientemente parcheada podía guardarse en un nuevo disco, lo que permitía a los programas de aplicación acceder a la memoria adicional que se hacía disponible al mover los componentes del sistema. Una vez instalado, el sistema operativo (BIOS, BDOS y CCP) se almacenaba en áreas reservadas al principio de cualquier disco que se utilizara para arrancar el sistema. Al iniciarse, el cargador de arranque (normalmente contenido en un chip de firmware de ROM) cargaba el sistema operativo desde el disco en la unidad A:.

Según los estándares modernos, CP/M era primitivo, debido a las restricciones extremas en el tamaño del programa. En la versión 1.0 no había ninguna disposición para detectar un disco modificado. Si un usuario cambiaba de disco sin volver a leer manualmente el directorio del disco, el sistema escribía en el nuevo disco utilizando la información del directorio del disco antiguo, arruinando los datos almacenados en el disco. A partir de la versión 1.1 o 1.2, cambiar un disco y luego intentar escribir en él antes de que se leyera su directorio causaba que se señalara un error fatal. Esto evitaba sobrescribir el disco, pero requería un reinicio y la pérdida de los datos que se iban a almacenar en el disco.

La mayor parte de la complejidad de CP/M se encontraba aislada en el BDOS y, en menor medida, en el CCP y los comandos transitorios. Esto significaba que al trasladar el número limitado de rutinas simples del BIOS a una plataforma de hardware en particular, todo el sistema operativo funcionaría. Esto redujo significativamente el tiempo de desarrollo necesario para dar soporte a nuevas máquinas y fue una de las principales razones del uso generalizado de CP/M. Hoy en día, este tipo de abstracción es común en la mayoría de los sistemas operativos (una capa de abstracción de hardware ), pero en el momento del nacimiento de CP/M, los sistemas operativos estaban pensados ​​para ejecutarse en una única plataforma de máquina y los diseños multicapa se consideraban innecesarios.

Procesador de comandos de consola

Captura de pantalla que muestra un listado de directorios CP/M 3.0 usando el DIRcomando en una computadora hogareña Commodore 128

El procesador de comandos de consola, o CCP, aceptaba la entrada del teclado y transmitía los resultados a la terminal. El propio CP/M funcionaba con una terminal de impresión o una terminal de vídeo. Todos los comandos de CP/M debían escribirse en la línea de comandos . La consola mostraba con mayor frecuencia el A>mensaje de aviso para indicar la unidad de disco predeterminada actual. Cuando se utilizaba con una terminal de vídeo, esto solía ir seguido de un cursor parpadeante proporcionado por la terminal. El CCP esperaba la entrada del usuario. Se podía utilizar un comando interno del CCP, con la forma letra de unidad seguida de dos puntos, para seleccionar la unidad predeterminada. Por ejemplo, escribir B:y pulsar Intro en el mensaje de aviso cambiaría la unidad predeterminada a B, y el mensaje de aviso se convertiría entonces en B>para indicar este cambio.

La interfaz de línea de comandos de CP/M estaba basada en los sistemas operativos de Digital Equipment , como RT-11 para el PDP-11 y OS/8 para el PDP-8 . [ cita requerida ] Los comandos tomaban la forma de una palabra clave seguida de una lista de parámetros separados por espacios o caracteres especiales. De manera similar a una shell incorporada de Unix , si se reconocía un comando interno, lo ejecutaba el propio CCP. De lo contrario, intentaría encontrar un archivo ejecutable en la unidad de disco registrada en ese momento y (en versiones posteriores) en el área de usuario, cargarlo y pasarle los parámetros adicionales desde la línea de comandos. Estos se denominaban programas "transitorios". Al completarse, BDOS recargaba el CCP si había sido sobrescrito por programas de aplicación; esto permitía a los programas transitorios un espacio de memoria más grande.

Los comandos en sí mismos a veces podían ser confusos. Por ejemplo, el comando para duplicar archivos se llamaba PIP(Peripheral-Interchange-Program), el nombre de la antigua utilidad DEC utilizada para ese propósito. El formato de los parámetros que se le daban a un programa no estaba estandarizado, de modo que no había un único carácter de opción que diferenciara las opciones de los nombres de archivo. Los distintos programas podían utilizar, y de hecho utilizaban, caracteres diferentes.

El procesador de comandos de la consola CP/M incluye DIR , ERA , REN , SAVE, TYPE y USER como comandos integrados . [53] Los comandos transitorios en CP/M incluyen ASM , DDT , DUMP, ED, LOAD, MOVCPM  [pl] , PIP , STAT, SUBMIT y SYSGEN. [53]

CP/M Plus (CP/M versión 3) incluye DIR (muestra la lista de archivos de un directorio excepto los marcados con el atributo SYS), DIRSYS / DIRS (muestra la lista de archivos marcados con el atributo SYS en el directorio), ERASE /ERA (elimina un archivo), RENAME /REN (renombra un archivo), TYPE/TYP (muestra el contenido de un archivo de caracteres ASCII) y USER/USE (cambia el número de usuario) como comandos integrados: [54] CP/M 3 permite al usuario abreviar los comandos integrados. [55] Los comandos transitorios en CP/M 3 incluyen COPYSYS, DATE , DEVICE, DUMP, ED, GET, HELP , HEXCOM, INITDIR, LINK, MAC, PIP, PUT, RMAC, SET, SETDEF, SHOW, SID, SUBMIT y XREF. [55]

Sistema operativo de disco básico

El sistema operativo de disco básico [14] [13] o BDOS [14] [13] proporcionaba acceso a operaciones como abrir un archivo, enviar datos a la consola o imprimir. Los programas de aplicación cargaban los registros del procesador con un código de función para la operación y direcciones para parámetros o búferes de memoria , y llamaban a una dirección fija en la memoria. Dado que la dirección era la misma independientemente de la cantidad de memoria del sistema, los programas de aplicación se ejecutaban de la misma manera para cualquier tipo o configuración de hardware.

Sistema básico de entrada y salida

Anuncio de CP/M en la edición del 11 de diciembre de 1978 de la revista InfoWorld

El Sistema Básico de Entrada y Salida o BIOS, [14] [13] proporcionaba las funciones de nivel más bajo requeridas por el sistema operativo.

Entre ellas se encontraban la lectura o escritura de caracteres individuales en la consola del sistema y la lectura o escritura de un sector de datos del disco. El BDOS se encargaba de parte del almacenamiento en búfer de los datos del disquete, pero antes de CP/M 3.0 asumía un tamaño de sector de disco fijo de 128 bytes, como el utilizado en los disquetes de 8 pulgadas de densidad simple . Dado que la mayoría de los formatos de disco de 5,25 pulgadas utilizaban sectores más grandes, el bloqueo y desbloqueo y la gestión de un área de búfer de disco se gestionaban mediante un código específico del modelo en el BIOS.

La personalización era necesaria porque las opciones de hardware no estaban limitadas por la compatibilidad con ningún estándar popular. Por ejemplo, algunos fabricantes utilizaban una terminal de ordenador independiente, mientras que otros diseñaban un sistema de visualización de vídeo integrado. Los puertos serie para impresoras y módems podían utilizar distintos tipos de chips UART y las direcciones de los puertos no eran fijas. Algunas máquinas utilizaban E/S mapeadas en memoria en lugar del espacio de direcciones de E/S del 8080. Todas estas variaciones en el hardware se ocultaban a los demás módulos del sistema mediante el uso del BIOS, que utilizaba puntos de entrada estándar para los servicios necesarios para ejecutar CP/M, como la E/S de caracteres o el acceso a un bloque de disco. Dado que el soporte para la comunicación serie con un módem era muy rudimentario en el BIOS o puede haber estado totalmente ausente, era una práctica común que los programas CP/M que utilizaban módems tuvieran una superposición instalada por el usuario que contenía todo el código necesario para acceder al puerto serie de una máquina en particular.

Aplicaciones

Distribución 5+Disquetes de 14 de pulgada y embalaje para la última versión (versión 4) del programa de procesamiento de textos WordStar lanzado para CP/M de 8 bits

WordStar, uno de los primeros procesadores de texto ampliamente utilizados , y dBase , un programa de base de datos temprano y popular para microcomputadoras, fueron escritos originalmente para CP/M. Dos de los primeros esquematizadores , KAMAS (Knowledge and Mind Amplification System) y su sucesor reducido Out-Think (sin facilidades de programación y rediseñado para compatibilidad con 8080/V20) también fueron escritos para CP/M, aunque luego fueron reescritos para MS-DOS. Turbo Pascal , el antecesor de Borland Delphi , y Multiplan , el antecesor de Microsoft Excel , también debutaron en CP/M antes de que estuvieran disponibles las versiones MS-DOS. VisiCalc , el primer programa de hoja de cálculo, estuvo disponible para CP/M. Otra compañía, Sorcim , creó su hoja de cálculo SuperCalc para CP/M, que se convertiría en el líder del mercado y el estándar de facto en CP/M. Supercalc se convertiría en un competidor en el mercado de hojas de cálculo en el mundo MS-DOS. AutoCAD , una aplicación CAD de Autodesk, debutó en CP/M. Había disponible una gran cantidad de compiladores e intérpretes para los lenguajes de programación más populares de la época (como BASIC , Turbo Pascal de Borland , FORTRAN e incluso PL/I [56] ), entre ellos varios de los primeros productos de Microsoft .

El software CP/M venía a menudo con instaladores que lo adaptaban a una amplia variedad de ordenadores. [57] El código fuente de los programas BASIC era de fácil acceso y la mayoría de las formas de protección contra copias eran ineficaces en el sistema operativo. [58] Un propietario de un Kaypro II, por ejemplo, obtenía software en formato Xerox 820, luego lo copiaba y lo ejecutaba desde discos con formato Kaypro. [59]

La falta de soporte gráfico estandarizado limitó los videojuegos , pero se adaptaron varios juegos basados ​​en personajes y texto , como Telengard , [60] Gorillas , [61] Hamurabi , Lunar Lander , junto con la ficción interactiva temprana, incluida la serie Zork y Colossal Cave Adventure . El especialista en aventuras de texto Infocom fue uno de los pocos editores que lanzó consistentemente sus juegos en formato CP/M. Lifeboat Associates comenzó a recopilar y distribuir software "gratuito" escrito por los usuarios. Uno de los primeros fue XMODEM , que permitía transferencias de archivos confiables a través de módem y línea telefónica. Otro programa nativo de CP/M fue el procesador de contorno KAMAS. [ cita requerida ]

Área de Programa Transitorio

La memoria de lectura/escritura entre la dirección hexadecimal 0100 y la dirección más baja del BDOS era el Área de Programa Transitorio (TPA) disponible para los programas de aplicación CP/M. Aunque todos los procesadores Z80 y 8080 podían direccionar 64 kilobytes de memoria, la cantidad disponible para los programas de aplicación podía variar, dependiendo del diseño de la computadora en particular. Algunas computadoras usaban grandes partes del espacio de direcciones para cosas como ROM de BIOS o memoria de pantalla de video. Como resultado, algunos sistemas tenían más memoria TPA disponible que otros. La conmutación de bancos era una técnica común que permitía a los sistemas tener un TPA grande mientras cambiaban el espacio de memoria ROM o de video según fuera necesario. CP/M 3.0 también permitía que partes del BDOS estuvieran en memoria conmutada por bancos.

Depuración de aplicaciones

CP/M venía con una herramienta de depuración dinámica, apodada DDT (por el insecticida, es decir, un asesino de insectos ), que permitía examinar y manipular módulos de memoria y de programa, y ​​permitía ejecutar un programa paso a paso. [62] [63] [64]

Programas para residentes

CP/M originalmente no soportaba el equivalente de los programas residentes de terminación y permanencia (TSR) como en DOS. Los programadores podían escribir software que pudiera interceptar ciertas llamadas del sistema operativo y extender o alterar su funcionalidad. Usando esta capacidad, los programadores desarrollaron y vendieron programas auxiliares de escritorio , como SmartKey , una utilidad de teclado para asignar cualquier cadena de bytes a cualquier tecla. [65] CP/M 3, sin embargo, agregó soporte para Extensiones de Sistema Residente (RSX) cargables dinámicamente . [54] [19] Se podía usar un llamado archivo de comando nulo para permitir que CCP cargara un RSX sin un programa transitorio. [54] [19] Soluciones similares como los RSM (para Módulos de Sistema Residente ) también fueron adaptadas a los sistemas CP/M 2.2 por terceros. [66] [67] [68]

Instalación de software

Aunque CP/M proporcionaba cierta abstracción de hardware para estandarizar la interfaz de E/S de disco o de consola, los programas de aplicación todavía requerían de una instalación para poder utilizar todas las características de equipos como impresoras y terminales. A menudo, estos equipos se controlaban mediante secuencias de escape que debían modificarse para los distintos dispositivos. Por ejemplo, la secuencia de escape para seleccionar el tipo de letra en negrita en una impresora difería entre los distintos fabricantes y, a veces, entre los distintos modelos de la gama de un fabricante. Este procedimiento no estaba definido por el sistema operativo; un usuario normalmente ejecutaba un programa de instalación que permitía seleccionar entre una gama de dispositivos o bien permitir la edición característica por característica de las secuencias de escape necesarias para acceder a una función. Esto debía repetirse para cada programa de aplicación, ya que no había un servicio central del sistema operativo para estos dispositivos.

Los códigos de inicialización para cada modelo de impresora debían escribirse en la aplicación. Para utilizar un programa como Wordstar con más de una impresora (por ejemplo, una impresora matricial rápida o una impresora de ruedas dentadas más lenta pero con calidad de presentación ), era necesario preparar una versión separada de Wordstar y cargar la versión de Wordstar que correspondía a la impresora seleccionada (y salir y volver a cargar para cambiar de impresora).

Formatos de disco

El formato de una sola cara y densidad de IBM System/34 e IBM 3740 es el formato estándar de disquete de 8 pulgadas de CP/M . No existe un formato de disco CP/M estándar de 5,25 pulgadas, y Kaypro, Morrow Designs , Osborne y otros utilizan el suyo propio. [69] [23] [70] Ciertos formatos eran más populares que otros. La mayoría del software estaba disponible en el formato Xerox 820, y otras computadoras como Kaypro II eran compatibles con él, [59] [71] pero InfoWorld estimó en septiembre de 1981 que "alrededor de dos docenas de formatos eran lo suficientemente populares como para que los creadores de software tuvieran que considerarlos para alcanzar el mercado más amplio posible". [21] JRT Pascal , por ejemplo, proporcionó versiones en disco de 5,25 pulgadas para North Star , Osborne, Apple, Heath hard sector y soft sector , y Superbrain , y una versión de 8 pulgadas. [72] Ellis Computing también ofreció su software para ambos formatos Heath y otros 16 formatos de 5,25 pulgadas, incluidas dos modificaciones diferentes del TRS-80 CP/M. [73]

Se utilizaron varios formatos dependiendo de las características de los sistemas particulares y, en cierta medida, de las opciones de los diseñadores. CP/M admitía opciones para controlar el tamaño de las áreas reservadas y de directorio en el disco, y la asignación entre los sectores lógicos del disco (tal como los veían los programas CP/M) y los sectores físicos asignados en el disco. Había muchas formas de personalizar estos parámetros para cada sistema [74], pero una vez que se habían establecido, no existía una forma estandarizada para que un sistema cargara parámetros desde un disco formateado en otro sistema.

El grado de portabilidad entre las distintas máquinas CP/M dependía del tipo de unidad de disco y del controlador utilizado, ya que en la era CP/M existían muchos tipos distintos de disquetes, tanto en formato de 8 pulgadas como de 5,25 pulgadas. Los discos podían tener sectores duros o blandos, densidad simple o doble, una o dos caras, 35 pistas, 40 pistas, 77 pistas u 80 pistas, y la disposición, el tamaño y el intercalado de los sectores también podían variar ampliamente. Aunque los programas de traducción podían permitir al usuario leer tipos de discos de distintas máquinas, el tipo de unidad y el controlador también eran factores. En 1982, los discos de 5,25 pulgadas, de una cara, con sectores blandos y 40 pistas se habían convertido en el formato más popular para distribuir el software CP/M, ya que los utilizaban las máquinas de consumo más comunes de la época, como Apple II, TRS-80, Osborne 1, Kaypro II e IBM PC. Un programa de traducción permitía al usuario leer cualquier disco de su máquina que tuviera un formato similar; por ejemplo, el Kaypro II podía leer discos TRS-80 , Osborne , IBM PC y Epson . Otros tipos de discos, como los de 80 pistas o los de sectores duros, eran completamente imposibles de leer. La primera mitad de los discos de doble cara (como los del Epson QX-10) se podía leer porque CP/M accedía a las pistas del disco secuencialmente, siendo la pista 0 la primera pista (la más externa) de la cara 1 y la pista 79 (en un disco de 40 pistas) la última pista (la más interna) de la cara 2. Los usuarios de Apple II no podían utilizar nada que no fuera el formato GCR de Apple, por lo que tenían que obtener el software CP/M en los discos de formato Apple o transferirlo mediante un enlace en serie.

El fragmentado mercado de CP/M, que requería que los distribuidores tuvieran en stock múltiples formatos de discos o invirtieran en equipos de duplicación multiformato, en comparación con los formatos de disco más estandarizados de IBM PC , fue un factor que contribuyó a la rápida obsolescencia de CP/M después de 1981.

Una de las últimas máquinas notables con capacidad CP/M que apareció fue la Commodore 128 en 1985, que tenía un Z80 para compatibilidad con CP/M además de su modo nativo utilizando una CPU derivada del 6502. El uso de CP/M requería una unidad de disco 1571 o 1581 que pudiera leer discos de formato MFM de 40 pistas con sector de software .

El primer ordenador que utilizó una unidad de disquete de 3,5 pulgadas, el Sony SMC-70 , [75] ejecutaba CP/M 2.2. El Commodore 128, el portátil Bondwell-2 , el Micromint/Ciarcia SB-180, [76] el MSX y el TRS-80 Model 4 (que ejecutaban Montezuma CP/M 2.2) también admitían el uso de CP/M con disquetes de 3,5 pulgadas. CP/AM, la versión de Applied Engineering de CP/M para Apple II, también admitía discos de 3,5 pulgadas (así como discos RAM en tarjetas RAM compatibles con la tarjeta de expansión de memoria de Apple II). [77] El Amstrad PCW ejecutaba CP/M utilizando unidades de disquete de 3 pulgadas al principio, y más tarde cambió a las unidades de 3,5 pulgadas.

Sistema de archivos

Los nombres de archivo se especificaban como una cadena de hasta ocho caracteres, seguida de un punto, seguido de una extensión de nombre de archivo de hasta tres caracteres ( formato de nombre de archivo "8.3" ). La extensión generalmente identificaba el tipo de archivo. Por ejemplo, .COMindicaba un archivo de programa ejecutable y .TXTindicaba un archivo que contenía texto ASCII . Los caracteres en los nombres de archivo ingresados ​​en el símbolo del sistema se convertían a mayúsculas, pero el sistema operativo no lo hacía cumplir. Los programas ( MBASIC es un ejemplo notable) podían crear nombres de archivo que contenían letras minúsculas, a los que luego no se podía hacer referencia fácilmente en la línea de comandos.

Cada unidad de disco se identificaba con una letra de unidad , por ejemplo, unidad Ay unidad B. Para hacer referencia a un archivo en una unidad específica, la letra de unidad se anteponía al nombre del archivo, separada por dos puntos, por ejemplo, A:FILE.TXT. Sin una letra de unidad antepuesta, el acceso se realizaba a los archivos de la unidad predeterminada actual. [78]

El tamaño de archivo se especificaba como el número de registros de 128 bytes (que corresponden directamente a los sectores del disco en las unidades de 8 pulgadas) ocupados por un archivo en el disco. No había una forma generalmente admitida de especificar tamaños de archivo exactos en bytes. El tamaño actual de un archivo se mantenía en el Bloque de control de archivos (FCB) del archivo por el sistema operativo. Dado que muchos programas de aplicación (como editores de texto ) prefieren tratar los archivos como secuencias de caracteres en lugar de secuencias de registros, por convención los archivos de texto se terminaban con un carácter Ctrl-Z (ASCII SUB , hexadecimal 1A). Por lo tanto, determinar el final de un archivo de texto implicaba examinar el último registro del archivo para localizar el Ctrl-Z de terminación. Esto también significaba que insertar un carácter Ctrl-Z en el medio de un archivo generalmente tenía el efecto de truncar el contenido de texto del archivo.

Con la llegada de unidades de disco extraíbles y fijas de mayor tamaño, se emplearon fórmulas de desbloqueo de discos que dieron como resultado más bloques de disco por bloque de asignación lógica de archivos. Si bien esto permitió tamaños de archivo más grandes, también significó que el archivo más pequeño que se podía asignar aumentó de tamaño de 1  KB (en unidades de densidad simple) a 2 KB (en unidades de densidad doble) y así sucesivamente, hasta 32 KB para un archivo que contenía solo un byte. Esto generó un uso ineficiente del espacio en disco si el disco contenía una gran cantidad de archivos pequeños.

Las marcas de tiempo de modificación de archivos no eran compatibles con versiones anteriores a CP/M 2.2, pero eran una característica opcional en MP/M y CP/M 3.0. [19]

CP/M 2.2 no tenía subdirectorios en la estructura de archivos, pero proporcionaba 16 áreas de usuario numeradas para organizar los archivos en un disco. Para cambiar de usuario, uno tenía que escribir simplemente "Usuario X" en el símbolo del sistema, siendo X el número de usuario. La seguridad no existía y se consideraba innecesaria en una computadora personal. El concepto de área de usuario era hacer que la versión de usuario único de CP/M fuera algo compatible con los sistemas MP/M multiusuario. Un parche común para CP/M y sistemas operativos derivados era hacer que un área de usuario fuera accesible para el usuario independientemente del área de usuario establecida actualmente. Un comando USER permitía cambiar el área de usuario a cualquier área entre 0 y 15. El usuario 0 era el predeterminado. Si uno cambiaba a otro usuario, como USER 1, el material guardado en el disco para este usuario solo estaría disponible para USER 1; USER 2 no podría verlo ni acceder a él. Sin embargo, los archivos almacenados en el área USER 0 eran accesibles para todos los demás usuarios; Su ubicación se especificó con una ruta preliminar , ya que los archivos del USUARIO 0 solo eran visibles para alguien que iniciara sesión como USUARIO 0. La función de área de usuario posiblemente tenía poca utilidad en disquetes pequeños, pero era útil para organizar archivos en máquinas con discos duros . La intención de la función era facilitar el uso de la misma computadora para diferentes tareas. Por ejemplo, una secretaria podía ingresar datos y luego, después de cambiar las áreas de USUARIO, otro empleado podía usar la máquina para realizar la facturación sin que sus archivos se entremezclaran.

Gráficos

Salida de texto MBASIC mostrada en un monitor monocromático típico de esa época

Aunque los sistemas S-100 con capacidad gráfica existían desde la comercialización del bus S-100 , CP/M no proporcionó ningún soporte gráfico estandarizado hasta 1982 con GSX (Extensión del sistema gráfico). Debido a la pequeña cantidad de memoria disponible, los gráficos nunca fueron una característica común asociada con los sistemas operativos CP/M de 8 bits. La mayoría de los sistemas solo podían mostrar gráficos y diagramas ASCII rudimentarios en modo texto o utilizando un conjunto de caracteres personalizado . Algunas computadoras de la línea Kaypro y el TRS-80 Modelo 4 tenían hardware de video que admitía caracteres gráficos en bloque, y estos eran accesibles para programadores ensambladores y programadores BASIC mediante el CHR$comando. El Modelo 4 podía mostrar gráficos de 640 por 240 píxeles con una placa de alta resolución opcional.

Derivados

SCP derivado de CP/M ejecutándose en un robot PC 1715 de Alemania del Este
Versión 2.21 de CP/J funcionando en un Elwro 804 Junior

Oficial

Algunas empresas realizaron mejoras oficiales de CP/M basándose en el código fuente de Digital Research. Un ejemplo es IMDOS para el ordenador IMSAI 8080 fabricado por IMS Associates, Inc. , un clon del famoso Altair 8800 .

Compatible

Otros sistemas operativos compatibles con CP/M se desarrollaron de forma independiente y no utilizaron el código de Digital Research. Algunos ejemplos contemporáneos fueron:

Mejoras

Algunos sistemas operativos compatibles con CP/M ampliaron la funcionalidad básica hasta tal punto que superaron con creces la original, por ejemplo el TurboDOS con capacidad para múltiples procesadores .

Bloque del Este

En el antiguo Bloque del Este existían varios derivados del CP/M-80 bajo varios nombres, entre ellos SCP ( Programa de Control de Usuario Único  [de] ), SCP/M, CP/A, [79] CP/J, CP/KC, CP/KSOB, CP/L, CP/Z, MICRODOS, BCU880, ZOAZ, OS/M, TOS/M, ZSDOS, M/OS, COS-PSA, DOS-PSA, CSOC, CSOS, CZ-CPM, DAC, HC y otros. [80] [81] También había derivados del CP/M-86 denominados SCP1700 , CP/K y K8918-OS . [81] Fueron producidos por VEB Robotron de Alemania del Este y otros. [81] [80] [79]

Legado

Una serie de comportamientos exhibidos por Microsoft Windows son el resultado de la compatibilidad con versiones anteriores de MS-DOS, que a su vez intentó cierta compatibilidad con versiones anteriores de CP/M. Las convenciones de letras de unidad y nombres de archivo 8.3 en MS-DOS (y versiones anteriores de Windows) fueron adoptadas originalmente de CP/M. [82] Los caracteres comodín que coinciden utilizados por Windows (? y *) se basan en los de CP/M, [83] al igual que los nombres de archivo reservados utilizados para redirigir la salida a una impresora ("PRN:") y la consola ("CON:"). Los nombres de unidad A y B se utilizaron para designar las dos unidades de disquete que los sistemas CP/M usaban típicamente; cuando aparecieron los discos duros, se designaron C, que sobrevivió en MS-DOS como el C:\>símbolo del sistema. [84] El carácter de control^Z que marca el final de algunos archivos de texto también se puede atribuir a CP/M. [85] Varios comandos en DOS fueron modelados a partir de comandos CP/M; Algunos de ellos incluso tenían el mismo nombre, como DIR, REN/RENAME o TYPE (y ERA/ERASE en DR-DOS). Las extensiones de archivo como .TXTo .COMtodavía se utilizan para identificar tipos de archivos en muchos sistemas operativos.

En 1997 y 1998, Caldera publicó algunos binarios y código fuente de CP/M 2.2 bajo una licencia de código abierto , permitiendo también la redistribución y modificación de otros archivos recopilados de Digital Research relacionados con las familias CP/M y MP/M a través del "sitio web no oficial de CP/M" de Tim Olmstead desde 1997. [86] [87] [88] Después de la muerte de Olmstead el 12 de septiembre de 2001, [89] la licencia de distribución fue renovada y ampliada por Lineo , que mientras tanto se había convertido en el propietario de esos activos de Digital Research, el 19 de octubre de 2001. [90] [91] [1] [92] En octubre de 2014, para conmemorar el 40 aniversario de la primera presentación de CP/M, el Museo de Historia de la Computación publicó las primeras versiones del código fuente de CP/M. [93]

A partir de 2018 , hay una serie de personas y grupos activos de aficionados, aficionados a las computadoras antiguas y retro , y algunas pequeñas empresas comerciales, que aún desarrollan y respaldan plataformas informáticas que usan CP/M (principalmente 2.2) como sistema operativo anfitrión.

Véase también

Referencias

  1. ^ ab Gasperson, Tina (26 de noviembre de 2001). "La colección CP/M está nuevamente en línea con una licencia de código abierto: un paseo por el camino de los recuerdos". The Register . Archivado desde el original el 1 de septiembre de 2017.
  2. ^ ab Mann, Stephen (15 de agosto de 1983). "CP/M Plus, una tercera versión actualizada de CP/M". InfoWorld . Vol. 5, núm. 33. pág. 49. ISSN  0199-6649.
  3. ^ abc Sandberg-Diment, Erik (3 de mayo de 1983). «Ordenadores personales: el sistema operativo en el medio» . The New York Times . Archivado desde el original el 23 de diciembre de 2019. Consultado el 15 de noviembre de 2019 .
  4. ^ abc Markoff, John (13 de julio de 1994). «Gary Kildall, 52, Crucial Player In Computer Development, Dies» (Muere Gary Kildall, 52 años, jugador crucial en el desarrollo informático) . The New York Times . Archivado desde el original el 3 de octubre de 2017. Consultado el 18 de noviembre de 2019 .
  5. ^ ab Shustek, Len (2 de agosto de 2016). "En sus propias palabras: Gary Kildall". Personas notables . Museo de Historia de la Computación . Archivado desde el original el 17 de diciembre de 2016.
  6. ^ abc Kildall, Gary Arlen (2016-08-02) [1993]. Kildall, Scott ; Kildall, Kristin (eds.). Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry (Manuscrito, parte 1). Familia Kildall. Archivado desde el original el 2016-11-17 . Consultado el 2016-11-17 .
  7. ^ Newton, Harry (2000). Newton's Telecom Dictionary . Nueva York, Nueva York, EE. UU.: CMP Books . pp. 228. ISBN. 1-57820-053-9.
  8. ^ Dahmke, Mark (1 de julio de 1983). "CP/M Plus: El nuevo sistema operativo de disco es más rápido y eficiente que CP/M". Revista BYTE . Vol. 8, núm. 7. pág. 360.
  9. ^ "Compupro 8/16". old-computers.com . Archivado desde el original el 2016-01-03 . Consultado el 2022-04-21 .
  10. ^ Cole, Maggie (25 de mayo de 1981). «Gary Kildall y la historia de éxito de la investigación digital». InfoWorld . Vol. 3, núm. 10. Palo Alto, California, EE. UU. pp. 52–53. ISSN  0199-6649. Archivado desde el original el 1 de julio de 2024 . Consultado el 25 de septiembre de 2020 .
  11. ^ Freiberger, Paul (5 de julio de 1982). «Historia de la microinformática, parte 3: génesis del software». InfoWorld . Vol. 4, núm. 26. Palo Alto, California, EE. UU., pág. 41. ISSN  0199-6649. Archivado desde el original el 1 de julio de 2024. Consultado el 25 de septiembre de 2020 .
  12. ^ Waite, Mitchell; Lafore, Robert W.; Volpe, Jerry (1982). El libro oficial del Commodore 128. HW Sams. pág. 110. ISBN 978-0-67222456-0.
  13. ^ abcd Kildall, Gary Arlen (enero de 1980). "La historia de CP/M, la evolución de una industria: el punto de vista de una persona". Dr. Dobb's Journal . Vol. 5, no. 1 #41. págs. 6–7. Archivado desde el original el 24 de noviembre de 2016 . Consultado el 3 de junio de 2013 .
  14. ^ abcd Kildall, Gary Arlen (junio de 1975), BIOS y BDOS CP/M 1.1 o 1.2 para Lawrence Livermore Laboratories
  15. ^ Johnson, Herbert R. (4 de enero de 2009). "Historia de CP/M y Digital Research Inc. (DRI)". www.retrotechnology.com . Archivado desde el original el 20 de agosto de 2008 . Consultado el 28 de enero de 2009 .
  16. ^ Warren, Jim (abril de 1976). "Primera palabra sobre un sistema operativo en disquete". Dr. Dobb's Journal . Vol. 1, núm. 4. Menlo Park, California, EE. UU., pág. 5.Subtítulo: Lenguaje de comandos y facilidades similares a DECSYSTEM-10.
  17. ^ Investigación digital (1978). CP/M . Pacific Grove, California, EE. UU.: Investigación digital . OCLC  221485970.
  18. ^ Freiberger, Paul ; Michael Swaine (2000). Fuego en el valle: la creación de la computadora personal. McGraw-Hill. p. 175. ISBN 0071358927– a través de Internet Archive.
  19. ^ abcdefgh Brown, David K.; Strutynski, Kathryn ; Wharton, John Harrison (1983-05-14). "Cómo mejorar el rendimiento de un sistema operativo: el hash, el almacenamiento en caché y el bloqueo de memoria son solo algunas de las técnicas utilizadas para aumentar el rendimiento en la última versión de CP/M". Diseño de sistemas/software. Diseño de computadoras: la revista de sistemas basados ​​en computadoras . Vol. 22, núm. 6. Littleton, Massachusetts, EE. UU.: PennWell Publications / PennWell Publishing Company . págs. 193–194, 196, 198, 200, 202, 204. ISSN  0010-4566. OCLC  1564597. CODEN  CMPDA. ark:/13960/t3hz07m4t . Consultado el 14 de agosto de 2021 .(7 páginas)
  20. ^ ab "Kathryn Betty Strutynski". Monterey Herald (obituario). 19 de junio de 2010. Archivado desde el original el 14 de agosto de 2021. Consultado el 10 de agosto de 2021 en Legacy.com .
  21. ^ ab Hogan, Thom (14 de septiembre de 1981). «Estado de la microinformática / Algunos caballos corren codo a codo». pp. 10–12. Archivado desde el original el 24 de junio de 2024. Consultado el 8 de abril de 2019 .
  22. ^ Wise, Deborah (10 de mayo de 1982). «Los fabricantes de mainframes buscan proveedores externos de microsoftware». InfoWorld . Vol. 4, núm. 18. págs. 21–22. Archivado desde el original el 18 de marzo de 2015. Consultado el 25 de enero de 2015 .
  23. ^ ab Meyer, Edwin W. (14 de junio de 1982). «La Xerox 820, un sistema operado por CP/M de Xerox». InfoWorld . Vol. 4, núm. 23. págs. 101–104. Archivado desde el original el 1 de julio de 2024 . Consultado el 30 de marzo de 2019 .
  24. ^ Hogan, Thom (3 de marzo de 1981). "SoftCard Z80 de Microsoft". InfoWorld . 3 (4). Computación popular: 20–21. ISSN  0199-6649.
  25. ^ da Cruz, Frank (27 de abril de 1984). "Nueva versión de KERMIT para CP/M-80". Info-Kermit Digest (lista de correo). Proyecto Kermit, Universidad de Columbia. Archivado desde el original el 17 de abril de 2021. Consultado el 23 de febrero de 2016 .[1]
  26. ^ Clarke, A.; Eaton, JM; David, D. Powys Lybbe (26 de octubre de 1983). CP/M - el bus de software: un manual para programadores. Sigma Press. ISBN 978-0905104188.
  27. ^ Johnson, Herbert R. (30 de julio de 2014). «Historia de CP/M y Digital Research Inc. (DRI)». Archivado desde el original el 29 de junio de 2021. Consultado el 29 de junio de 2021 .
  28. ^ Swaine, Michael (1 de abril de 1997). "Gary Kildall y el espíritu emprendedor colegial". Diario del Dr. Dobb . Archivado desde el original el 24 de enero de 2007. Consultado el 20 de noviembre de 2006 .
  29. ^ Bunnell, David (febrero de 1982). «¿El hombre detrás de la máquina? / Una entrevista exclusiva para PC con el gurú del software Bill Gates». PC Magazine . Vol. 1, núm. 1. págs. 16–23 [20]. Archivado desde el original el 9 de mayo de 2013. Consultado el 17 de febrero de 2012 .
  30. ^ "Radio Shack Computer Catalog RSC-12 page 28" (Catálogo de computadoras de Radio Shack RSC-12, página 28). www.radioshackcomputercatalogs.com . Tandy/Radio Shack. Archivado desde el original el 13 de octubre de 2016. Consultado el 6 de julio de 2016 .
  31. ^ ab "Digital Research tiene CP/M-86 para IBM Displaywriter" (PDF) . Noticias de Digital Research: para usuarios de Digital Research en todas partes . 1 (1). Pacific Grove, California, EE. UU.: Digital Research, Inc. : 2, 5, 7. Noviembre de 1981. Cuarto trimestre. Archivado (PDF) desde el original el 2021-04-17 . Consultado el 2020-01-18 .
  32. ^ Maher, Jimmy (31 de julio de 2017). «La historia completa de IBM PC, segunda parte: El imperio DOS ataca». Ars Technica . p. 3. Archivado desde el original el 8 de julio de 2019 . Consultado el 8 de septiembre de 2019 .
  33. ^ ab Kildall, Gary Arlen (16 de septiembre de 1982). "Ejecución de software de 8 bits en computadoras de doble procesador" (PDF) . Diseño electrónico : 157. Archivado (PDF) desde el original el 19 de agosto de 2017. Consultado el 19 de agosto de 2017 .
  34. ^ Snyder, John J. (junio de 1983). "A DEC on Every Desk?" [¿Un DEC en cada escritorio?]. BYTE . Vol. 8, núm. 6. págs. 104–106. Archivado desde el original el 2 de enero de 2015. Consultado el 5 de febrero de 2015 .
  35. ^ "M 68 / M 68 MX". Archivado desde el original el 6 de marzo de 2016. Consultado el 17 de septiembre de 2012 .
  36. ^ Thomas, Rebecca A.; Yates, Jean L. (11 de mayo de 1981). "Libros, placas y software para los nuevos procesadores de 16 bits". InfoWorld - El periódico de la comunidad de microinformática . Vol. 3, núm. 9. Popular Computing, Inc. págs. 42–43. ISSN  0199-6649 . Consultado el 24 de enero de 2020 .
  37. ^ Olmstead, Tim; Chaudry, Gabriele "Gaby". "Código fuente de investigación digital". Archivado desde el original el 5 de febrero de 2016.
  38. ^ Digital Research (1981): XLT86 - Traductor de lenguaje ensamblador de 8080 a 8086 - Guía del usuario Archivado el 18 de noviembre de 2016 en Wayback Machine Digital Research Inc, Pacific Grove
  39. ^ Pournelle, Jerry (marzo de 1984). «Nuevas máquinas, redes y software diverso». BYTE . Vol. 9, núm. 3. pág. 46. Archivado desde el original el 2015-02-02 . Consultado el 2013-10-22 .
  40. ^ Isaacson, Walter (2014). Los innovadores: cómo un grupo de inventores, hackers, genios y geeks crearon la revolución digital . Simon & Schuster . pág. 358. ISBN. 978-1-47670869-0.
  41. ^ Bellis, Mary. "Inventores de la serie de computadoras modernas: la historia de los sistemas operativos MS-DOS, Microsoft, Tim Paterson y Gary Kildall". Archivado desde el original el 27 de abril de 2012. Consultado el 9 de septiembre de 2010 .
  42. ^ Magid, Lawrence J. (febrero de 1982). "Baby Blue". PC Magazine . Vol. 1, núm. 1. pág. 49. Archivado desde el original el 18 de marzo de 2015. Consultado el 4 de enero de 2015 .
  43. ^ Mace, Scott (11 de junio de 1984). "CP/M elude el mercado interno". InfoWorld . Vol. 6, núm. 24. pág. 46. Archivado desde el original el 20 de septiembre de 2021 . Consultado el 20 de septiembre de 2021 .
  44. ^ Groth, Nancy (10 de febrero de 1986). "Kaypro se retira del CP/M". InfoWorld . Vol. 8, no. 6. p. 6. Archivado desde el original el 20 de marzo de 2022 . Consultado el 29 de octubre de 2021 .
  45. ^ "ZCPR - oldcomputers.ddns.org".
  46. ^ "El maravilloso mundo de ZCPR3". 30 de noviembre de 1987. Archivado desde el original el 23 de diciembre de 2019. Consultado el 18 de noviembre de 2019 .
  47. ^ "Emuladores CP/M para DOS". www.retroarchive.org/cpm . Luis Basto. Archivado desde el original el 2016-07-09 . Consultado el 2016-07-06 .
  48. ^ Davis, Randy (diciembre de 1985 – enero de 1986). Escrito en Greenville, Texas, EE. UU. "Los nuevos microprocesadores NEC: ¿8080, 8086 o 8088?" (PDF) . Micro Cornucopia . N.º 27. Bend, Oregón, EE. UU.: Micro Cornucopia Inc. págs. 4-7. ISSN  0747-587X. Archivado (PDF) desde el original el 2020-02-11 . Consultado el 2020-02-11 .
  49. ^ "El plug-in CP/M está llegando". Personal Computer News . 1984-01-14. p. 7 . Consultado el 2022-10-03 .
  50. ^ Hetherington, Tony (febrero de 1985). "Sharp MZ-800". Personal Computer World . págs. 144–146, 149–150 . Consultado el 3 de octubre de 2022 .
  51. ^ Coles, Ray (junio de 1984). "CP/M más barato y sencillo" (PDF) . Practical Computing . pág. 43 . Consultado el 3 de octubre de 2022 .
  52. ^ "AMI publica especificaciones sobre el microchip CP/M". Microsystems . Junio ​​de 1984. p. 12 . Consultado el 25 de marzo de 2023 .
  53. ^ ab "Manual del sistema operativo CP/M" (PDF) . Archivado (PDF) del original el 2019-12-14 . Consultado el 2019-02-23 .
  54. ^ abc CP/M Plus (CP/M versión 3) Guía del programador del sistema operativo (PDF) (2.ª edición). Digital Research . Abril de 1983 [enero de 1983]. Archivado (PDF) desde el original el 25 de noviembre de 2016 . Consultado el 25 de noviembre de 2016 .
  55. ^ ab Guía del usuario del sistema operativo CP/M Plus (CP/M versión 3) (PDF) . Digital Research. 1983. Archivado (PDF) desde el original el 26 de noviembre de 2019 . Consultado el 9 de mayo de 2020 .
  56. ^ "Guía del programador del lenguaje PL/I" (PDF) . Digital Research . Archivado (PDF) del original el 25 de septiembre de 2019 . Consultado el 18 de noviembre de 2019 .
  57. ^ Mace, Scott (9 de enero de 1984). «Los fabricantes de clones de IBM PC rechazan la compatibilidad total». InfoWorld . Vol. 6, núm. 2 y 3. págs. 79–81. Archivado desde el original el 16 de marzo de 2015. Consultado el 4 de febrero de 2015 .
  58. ^ Pournelle, Jerry (junio de 1983). "Zenith Z-100, Epson QX-10, licencias de software y el problema de la piratería de software". BYTE . Vol. 8, no. 6. p. 411. Archivado desde el original el 2014-06-09 . Consultado el 2013-10-20 .
  59. ^ ab Derfler, Frank J. (18 de octubre de 1982). "Kaypro II: un micro portátil de bajo precio y 26 libras". InfoWorld . pág. 59. Archivado desde el original el 1 de enero de 2014 . Consultado el 22 de octubre de 2013 .
  60. ^ Loguidice, Bill (28 de julio de 2012). "Más sobre los juegos de ordenador de Avalon Hill en las plataformas Heath/Zenith". Armchair Arcade . Archivado desde el original el 23 de julio de 2015 . Consultado el 22 de julio de 2015 .
  61. ^ Sblendorio, Francesco (1 de diciembre de 2015). "Gorilas para CP/M". GitHub . Archivado desde el original el 5 de febrero de 2016 . Consultado el 22 de julio de 2015 .
  62. ^ "Sección 4 - Herramienta de depuración dinámica de CP/M". CP/M 2.2 . Archivado desde el original el 17 de junio de 2015 . Consultado el 29 de agosto de 2014 .
  63. ^ Herramienta de depuración dinámica CP/M (DDT): guía del usuario (PDF) . Digital Research . 1978 [1976]. Archivado (PDF) desde el original el 28 de octubre de 2014 . Consultado el 29 de agosto de 2014 .
  64. ^ Shael (2010-06-26) [2009-12-09]. «DDT Utility». Archivado desde el original el 2015-12-08 . Consultado el 2014-08-29 .
  65. ^ Brand, Stewart (1984). Catálogo de software Whole Earth. Quantum Press/Doubleday. ISBN 978-0-38519166-1. Archivado desde el original el 4 de julio de 2015.
  66. ^ Liberer, Eckhard; Von Massenbach, Thomas (1987). "CP/M 2 lernt dazu. Modulare Systemerweiterungen auch für das 'alte' CP/M". c't - magazin für computertechnik (parte 1) (en alemán). vol. 1987, núm. 1. Heise Verlag . págs. 124-135.
  67. ^ Liberer, Eckhard; Von Massenbach, Thomas (1987). "CP/M 2 lernt dazu. Modulare Systemerweiterungen auch für das 'alte' CP/M". c't - magazin für computertechnik (parte 2) (en alemán). vol. 1987, núm. 2. Heise Verlag . págs. 78–85.
  68. ^ Huck, Alex (9 de octubre de 2016). "RSM für CP/M 2.2". Homecompuer DDR (en alemán). Archivado desde el original el 25 de noviembre de 2016. Consultado el 25 de noviembre de 2016 .
  69. ^ Pournelle, Jerry (abril de 1982). "The Osborne 1, Zeke's New Friends y Spelling Revisited". BYTE . Vol. 7, no. 4. p. 212 . Consultado el 24 de mayo de 2021 .
  70. ^ Waite, Mitchell ; Lafore, Robert W. ; Volpe, Jerry (1985). "El modo CP/M". El libro oficial de la computadora personal Commodore 128 . Howard W. Sams & Co. p. 98. ISBN 0-672-22456-9.
  71. ^ Fager, Roger; Bohr, John (septiembre de 1983). "El Kaypro II". BYTE . Vol. 8, no. 9. p. 212. Archivado desde el original el 2014-03-02 . Consultado el 2013-10-20 .
  72. ^ "Ahora: ¡Un Pascal CP/M completo por sólo 29,95 dólares!". BYTE (anuncio). Vol. 7, núm. 12. Diciembre de 1982. pág. 11. Archivado desde el original el 21 de julio de 2016. Consultado el 1 de octubre de 2016 .
  73. ^ "Ellis Computing". BYTE (anuncio publicitario). Vol. 8, núm. 12. Diciembre de 1983. pág. 69.
  74. ^ Johnson-Laird, Andy (1983). "3". Manual del programador CP/M . Berkeley, California, EE. UU.: Osborne/McGraw-Hill. ISBN 0-88134-103-7.
  75. ^ "Old-computers.com: El Museo". Archivado desde el original el 3 de julio de 2013. Consultado el 6 de octubre de 2017 .
  76. ^ Ciarcia, Steve (septiembre de 1985). "Build the SB-180" (PDF) . Revista BYTE . CMP Media . pág. 100. Archivado (PDF) desde el original el 29 de noviembre de 2019. Consultado el 18 de junio de 2019 .
  77. ^ Manual de usuario de CP/AM 5.1. Ingeniería aplicada. p. 1. Consultado el 22 de mayo de 2020 .
  78. ^ "Comandos integrados CP/M". discordia.org.uk . Archivado desde el original el 2008-04-12 . Consultado el 2009-01-28 .
  79. ^ ab Pohlers, Volker (30 de abril de 2019). "CP/A". Homecomputer DDR (en alemán). Archivado desde el original el 21 de febrero de 2020. Consultado el 21 de febrero de 2020 .
  80. ^ ab Kurth, Rüdiger; Groß, Martín; Hambre, Henry (3 de enero de 2019). "Sistema de apuestas". www.robotrontechnik.de (en alemán). Archivado desde el original el 27 de abril de 2019 . Consultado el 27 de abril de 2019 .
  81. ^ abc Kurth, Rüdiger; Groß, Martín; Hambre, Henry (3 de enero de 2019). "Sistema de apuestas SCP". www.robotrontechnik.de (en alemán). Archivado desde el original el 27 de abril de 2019 . Consultado el 27 de abril de 2019 .
  82. ^ Chen, Raymond (10 de junio de 2009). "¿Por qué MS-DOS utiliza nombres de archivo 8.3 en lugar de, por ejemplo, 11.2 o 16.16?". The Old New Thing . Archivado desde el original el 22 de septiembre de 2011. Consultado el 17 de diciembre de 2010 .
  83. ^ Chen, Raymond (17 de diciembre de 2007). "¿Cómo funcionaban los comodines en MS-DOS?". The Old New Thing . Archivado desde el original el 8 de mayo de 2011. Consultado el 17 de diciembre de 2010 .
  84. ^ Chen, Raymond (22 de octubre de 2003). "¿Qué pasa con los nombres de archivo reservados como NUL y CON?". The Old New Thing . Archivado desde el original el 2 de agosto de 2010. Consultado el 17 de diciembre de 2010 .
  85. ^ Chen, Raymond (16 de marzo de 2004). "¿Por qué los archivos de texto terminan en Ctrl+Z?". The Old New Thing . Archivado desde el original el 6 de febrero de 2011. Consultado el 17 de diciembre de 2010 .
  86. ^ Olmstead, Tim (1997-08-10). "El sitio web de CP/M necesita un host". Grupo de noticias : comp.os.cpm. Archivado desde el original el 2017-09-01 . Consultado el 2018-09-09 .
  87. ^ Olmstead, Tim (29 de agosto de 1997). "ANUNCIO: El sitio CP/M de Caldera ya está disponible". Grupo de noticias : comp.os.cpm. Archivado desde el original el 1 de septiembre de 2017. Consultado el 9 de septiembre de 2018 .[2]
  88. ^ "Acuerdo de licencia". Caldera, Inc. 28 de agosto de 1997. Archivado desde el original el 8 de septiembre de 2018. Consultado el 25 de julio de 2015 .[3] [ enlace muerto permanente ] [4] [ enlace muerto permanente ]
  89. ^ "Tim Olmstead". 12 de septiembre de 2001. Archivado desde el original el 9 de septiembre de 2018.
  90. ^ Sparks, Bryan Wayne (19 de octubre de 2001). Chaudry, Gabriele "Gaby" (ed.). "Acuerdo de licencia para el material CP/M presentado en este sitio". Lineo, Inc. Archivado desde el original el 8 de septiembre de 2018. Consultado el 25 de julio de 2015 .
  91. ^ Chaudry, Gabriele "Gaby" (ed.). "El sitio web no oficial del CP/M". Archivado desde el original el 3 de febrero de 2016.
  92. ^ Swaine, Michael (1 de junio de 2004). "CP/M y DRM". Dr. Dobb's Journal . Vol. 29, núm. 6. CMP Media LLC . págs. 71–73. #361. Archivado desde el original el 9 de septiembre de 2018 . Consultado el 9 de septiembre de 2018 .[5] Archivado el 1 de julio de 2024 en Wayback Machine.
  93. ^ Laws, David (1 de octubre de 2014). «Early Digital Research CP/M Source Code». Museo de Historia de la Computación . Archivado desde el original el 27 de julio de 2015. Consultado el 25 de julio de 2015 .

Lectura adicional

Enlaces externos