stringtranslate.com

CP/M

CP/M , [3] originalmente significa Programa de Control/Monitor [4] y posterior Programa de Control para Microcomputadoras , [ 5] [6] [7] es un sistema operativo de mercado masivo creado en 1974 para Intel 8080/85 . microcomputadoras 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 limitado 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 computadoras de bus CP/M y S-100 se convirtió en uno de los primeros estándares en la industria de las microcomputadoras. Esta plataforma informática se utilizó ampliamente en los negocios desde finales de los años 1970 hasta mediados de los 1980. [9] CP/M aumentó el tamaño del mercado tanto para hardware como para software al reducir en gran medida la cantidad de programación necesaria para portar una aplicación a la computadora de un nuevo fabricante. [10] [11] Un importante impulsor de la innovación del software fue la llegada de microcomputadoras (comparativamente) de bajo costo que ejecutaban CP/M, a medida que programadores y hackers independientes las compraban y compartían sus creaciones en grupos de usuarios . [12] CP/M finalmente fue desplazado por DOS tras la introducción en 1981 del IBM PC .

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 de Shugart Associates interconectada a través de un disquete personalizado. controlador . [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, la empresa obtuvo la licencia para utilizar CP/M 1.0 para cualquier micro que desearan por 90 dólares. En un año, la demanda de CP/M era 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 Escuela de Postgrado Naval (NPS), se convirtió en la cuarta empleada de Digital Research Inc. a principios de 1979. Comenzó depurando CP/M 2.0 y luego se volvió influyente como desarrollador clave de CP/M 2.2 y CP/M Plus. Otros de los primeros desarrolladores de la base CP/M fueron Robert "Bob" Silberstein y David "Dave" K. Brown. [19] [20]

CP/M originalmente significaba "Programa de control/Monitor", [3] un nombre que implica un monitor residente , un precursor primitivo del sistema operativo. Sin embargo, durante la conversión de CP/M en un producto comercial, los documentos de registro de marca presentados en noviembre de 1977 dieron al producto el nombre de "Programa de control para microcomputadoras". [6] El nombre CP/M sigue un esquema de nomenclatura predominante en la época, como en el lenguaje PL/M de Kildall y en el PL/P ( lenguaje de programación para Prime ) de Prime Computer, ambos sugiriendo el PL/I de IBM ; y el sistema operativo CP/CMS de IBM , que Kildall había utilizado 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 tenían la intención de establecer la marca Digital Research y sus líneas de productos como sinónimo de "microcomputadora" en la mente del consumidor, similar a lo que IBM y Microsoft lograron juntos más tarde al hacer que "computadora personal" fuera sinónimo de sus ofertas de productos. Posteriormente, Intergalactic Digital Research, Inc. pasó a llamarse mediante una presentación de cambio de nombre de corporación a Digital Research, Inc. [4]

Éxito inicial

Tarjeta Apple CP/M con manual

En septiembre de 1981, Digital Research había vendido más de260.000 licencias CP/M; InfoWorld afirmó que el mercado real probablemente era mayor debido a las sublicencias. Muchas empresas 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 empresas optaron por apoyar CP/M debido a su gran biblioteca de software. La Xerox 820 ejecutaba 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 CP/M de Howard W. Sams como compensación por la documentación de Digital Research, que InfoWorld describió en 1982 como atroz. [23] ) En 1984, la Universidad de Columbia utilizó el mismo código fuente para crear archivos binarios de Kermit para más de una docena de sistemas CP/M diferentes, además de una versión genérica. [24] El sistema operativo se describió como un " bus de software ", [25] [26] que permitía que múltiples programas interactuaran con diferente hardware de forma estandarizada. [27] Los programas escritos para CP/M eran típicamente portátiles entre diferentes máquinas y generalmente requerían solo la especificación de las secuencias de escape para el control de la pantalla y la impresora. Esta portabilidad hizo popular a CP/M, 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. Otro eran las rutinas de gráficos, especialmente en juegos y programas de gráficos, que generalmente eran específicas de la máquina, ya que utilizaban acceso directo al hardware para aumentar la velocidad, sin pasar por el sistema operativo y el BIOS (este también era un problema común en las primeras máquinas con DOS). [ cita necesaria ]

Bill Gates afirmó que la serie Apple II con una SoftCard Z-80 era la plataforma de hardware CP/M más popular. [28] Muchas marcas diferentes de máquinas ejecutaban el sistema operativo, siendo algunos ejemplos notables el Altair 8800 , el IMSAI 8080 , los portátiles Osborne 1 y Kaypro , y los ordenadores MSX . El sistema compatible con 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 las computadoras educativas de Research Machines (con el código fuente de CP/M publicado como recurso educativo) y para BBC Micro cuando estaba equipado con un coprocesador Z80. Además, estaba disponible para la serie Amstrad CPC , el Commodore 128 , el TRS-80 y modelos posteriores del ZX Spectrum . CP/M 3 también se utilizó en NIAT, una computadora portátil personalizada diseñada para uso interno de  AC Nielsen con 1 MB de memoria SSD .

Multi usuario

En 1979, se lanzó un derivado de CP/M compatible con múltiples usuarios. MP/M permitió 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 se ejecutaron en 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 Brown. [19] Incorporó la gestión de memoria de conmutación de banco de MP/M en un sistema operativo de tarea única de usuario único compatible con aplicaciones CP/M 2.2. Por tanto, CP/M 3 podría utilizar más de 64 KB de memoria en un procesador 8080 o Z80. El sistema podría configurarse para admitir el sellado de fecha de los archivos. [19] El software de distribución del sistema operativo también incluía un ensamblador y un enlazador reubicantes. [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 . [29]

Versiones de 16 bits

Distribución de 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. [30] Kathryn Strutynski fue la directora de proyecto para la línea en evolución de sistemas operativos CP/M-86. [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. [30]

Se esperaba que CP/M-86 fuera el sistema operativo estándar de las nuevas PC de IBM , pero DRI e IBM no pudieron negociar los términos de desarrollo y licencia. En su lugar, IBM recurrió a Microsoft, 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 emprender acciones legales, nunca superó al sistema de Microsoft. La mayoría de los clientes se sintieron repelidos por el precio significativamente mayor que cobraba IBM por el CP/M-86 en comparación con el PC DOS ( 240 y 40 dólares estadounidenses, respectivamente) . [31]

Cuando Digital Equipment Corporation (DEC) lanzó 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 se ejecutaron simultáneamente. [32] [33] Un beneficio del Rainbow era que podía continuar ejecutando software CP/M de 8 bits, preservando la inversión posiblemente considerable del usuario a medida que avanzaba hacia el mundo de 16 bits de MS-DOS. [32] Una adaptación similar de procesador dual 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, otra versión de 16 bits del CP/M fue el CP/M-68K para el Motorola 68000 . La versión original de CP/M-68K en 1982 fue escrita en Pascal/MT+68k , pero fue portada a C más tarde. CP/M-68K, que ya se ejecuta en los sistemas Motorola EXORmacs , inicialmente iba a usarse en la computadora Atari ST , pero Atari decidió optar por un sistema operativo de disco más nuevo llamado GEMDOS . CP/M-68K también se utilizó en las computadoras SORD M68 y M68MX. [34]

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 . [35] [36]

Estas versiones de 16 bits de CP/M requerían que se volvieran a compilar los programas de aplicación para las nuevas CPU. Algunos programas escritos en lenguaje ensamblador podrían traducirse automáticamente para un nuevo procesador. Una herramienta para esto fue XLT86 de Digital Research , que tradujo el código fuente .ASM para el procesador Intel 8080 al código fuente .A86 para Intel 8086. El traductor también optimizaría la salida para el tamaño del código y se encargaría de llamar a las convenciones, de modo que CP Los programas /M-80 y MP/M-80 se pueden portar automáticamente a las plataformas CP/M-86 y MP/M-86 . El propio XLT86 fue escrito en PL/I-80 y estaba disponible para plataformas CP/M-80, así como para VAX/VMS . [37]

Desplazamiento por MS-DOS

Muchos esperaban que CP/M fuera el sistema operativo estándar para ordenadores de 16 bits. [38] En 1980, IBM se acercó a Digital Research, por sugerencia de Bill Gates , [39] para obtener la licencia de una próxima versión de CP/M para su nuevo producto, el IBM Personal Computer. Al no poder obtener un acuerdo de confidencialidad firmado , las conversaciones fracasaron e IBM, en cambio, contrató a Microsoft para proporcionar un sistema operativo. [40] El producto resultante, MS-DOS , pronto comenzó 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 elementos internos, como las estructuras de datos de manejo de archivos, eran idénticos y ambos se referían 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 hizo que fuera más fácil portar 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 fue portado a MS-DOS. Dado que MS-DOS tenía acceso a más memoria (ya que pocas PC IBM se vendían 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 algo más rápido y sencillo de utilizar en ordenadores basados ​​en disquetes.

Aunque uno de los primeros periféricos para la PC IBM fue una tarjeta de expansión tipo SoftCard que le permitía ejecutar software CP/M de 8 bits, [41] InfoWorld declaró en 1984 que los esfuerzos para introducir CP/M en el mercado interno habían sido en gran medida No tuvo éxito y la mayoría del software CP/M era demasiado caro para los usuarios domésticos. [42] En 1986, la revista declaró 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. METRO. [43] CP/M perdió rápidamente participación de mercado a medida que el mercado de la microcomputación pasó a la plataforma compatible con IBM, y nunca recuperó su popularidad anterior. La revista Byte , en ese momento una de las revistas líderes de la industria de microcomputadoras, esencialmente dejó de cubrir productos CP/M a los pocos años de la introducción de la PC IBM. Por ejemplo, en 1983 todavía había algunos anuncios de placas S-100 y artículos sobre 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 usabilidad 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

ZCPR [44] (el reemplazo del procesador de comando Z80) se introdujo el 2 de febrero de 1982 como un reemplazo directo para el procesador de comando (CCP) de la consola de Digital Research estándar y fue escrito inicialmente por un grupo de aficionados a la informática que se hacían llamar "El PCC". Grupo". Eran Frank Wancho, Keith Petersen (el archivero detrás de Simtel en ese momento), Ron Fowler, Charlie Strom, Bob Mathias y Richard Conn. Richard fue, de hecho, la fuerza impulsora de este grupo (todos los cuales mantuvieron contacto a través de correo electrónico). ).

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

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

ZCPR3 [45] fue lanzado el 14 de julio de 1984, como un conjunto de nueve discos de SIG/M. El código para ZCPR3 también podría compilarse (con funciones reducidas) para el 8080 y se ejecutaría en sistemas que no tuvieran el microprocesador Z80 requerido. Las características de 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 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ó ZCPR 3.3. ZCPR 3.3 ya no admitía la serie 8080 de microprocesadores y agregó la mayor cantidad de funciones de cualquier actualización en la línea ZCPR. ZCPR 3.3 también incluyó un complemento completo de utilidades con capacidades considerablemente ampliadas. Si bien fue apoyada con entusiasmo por la base de usuarios de CP/M de la época, la ZCPR por sí sola fue insuficiente para frenar la desaparición de CP/M.

Modelo de hardware

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

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

El único sistema de hardware compatible con CP/M, vendido por Digital Research, era el sistema de desarrollo Intel 8080. Los fabricantes de sistemas compatibles con CP/M personalizaron partes del sistema operativo para su propia combinación de memoria instalada, unidades de disco y dispositivos de consola. CP/M también se ejecutaría 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 de Digital Research (BDOS, CCP, comandos transitorios del núcleo) no usó ninguna de las instrucciones específicas de Z80, muchos sistemas basados ​​en Z80 usaron 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 potencialmente podrían equiparse sin unidades de disco. [48] ​​Presentado por primera vez en el Sharp MZ-800, un sistema basado en casete con unidades de disco opcionales, [49] Personal CP/M fue descrito como "reescrito para aprovechar el conjunto de instrucciones mejorado Z-80" en lugar de para preservar la portabilidad con el 8080. American Microsystems anunció un microprocesador compatible con Z80, el S83, que presenta 8 KB de ROM incluido para el sistema operativo y BIOS, junto con una lógica integral para interactuar con dispositivos de RAM dinámica de 64 kilobits. [50] El precio unitario del S83 se cotizaba en 32 dólares en cantidades de 1.000 unidades. [51]

En la mayoría de las máquinas, el bootstrap era un gestor de arranque mínimo en ROM combinado con algún medio de conmutación de banco mínimo o un medio para 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 debía ingresarse en la memoria mediante controles del panel frontal cada vez que se iniciaba el sistema.

CP/M utilizó el conjunto ASCII de 7 bits. Los otros 128 caracteres posibles gracias al byte de 8 bits no estaban estandarizados. Por ejemplo, un Kaypro los usó para caracteres griegos y las máquinas Osborne usaron el octavo bit para indicar un carácter subrayado. WordStar utilizó el octavo bit como marcador de fin de palabra. Los sistemas CP/M internacionales utilizan con mayor frecuencia la norma ISO 646 para conjuntos de caracteres localizados, reemplazando ciertos caracteres ASCII con caracteres localizados en lugar de agregarlos más allá del límite de 7 bits.

Componentes

En las versiones de 8 bits, mientras se ejecutaba, 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 después de que la aplicación terminaba de ejecutarse. También se proporcionaron 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 del disco. BDOS implementó el sistema de archivos CP/M y algunas abstracciones de entrada/salida (como la redirección) encima del BIOS. El CCP tomó comandos de usuario y los ejecutó directamente (comandos internos como DIR para mostrar un directorio o ERA para eliminar un archivo) o cargó e inició un archivo ejecutable con el nombre dado (comandos transitorios como PIP.COM para copiar archivos o STAT.COM para mostrar diversa información de archivos y sistemas). 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 se adaptaba al hardware en particular.

Agregar memoria a una computadora, por ejemplo, significaba que era necesario reinstalar el sistema CP/M para permitir que los programas transitorios utilizaran el espacio de memoria adicional. Se proporcionó un programa utilitario (MOVCPM) con distribución del sistema que permitió reubicar el código objeto en diferentes áreas de memoria. El programa de utilidad ajustó las direcciones en instrucciones de salto absoluto y llamada de subrutina a las nuevas direcciones requeridas por la nueva ubicación del sistema operativo en la memoria del procesador. Esta versión recién parcheada podría luego guardarse en un disco nuevo, permitiendo que los programas de aplicación accedan a la memoria adicional 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 utilizaría para iniciar el sistema. Al iniciar, el gestor de arranque (generalmente contenido en un chip de firmware ROM) cargaría el sistema operativo desde el disco en la unidad A:.

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

La mayor parte de la complejidad en CP/M estaba aislada en BDOS y, en menor medida, en CCP y comandos transitorios. Esto significaba que al trasladar el número limitado de rutinas simples del BIOS a una plataforma de hardware 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 a 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 generalmente estaban destinados a ejecutarse en una sola plataforma de máquina y los diseños multicapa se consideraban innecesarios.

Procesador de comandos de consola

Captura de pantalla que muestra una lista de directorio CP/M 3.0 usando el DIRcomando en una computadora doméstica Commodore 128

El procesador de comandos de la consola, o CCP, aceptaba entradas del teclado y transmitía los resultados al terminal. El propio CP/M funcionaría con un terminal de impresión o con un terminal de vídeo. Todos los comandos CP/M debían escribirse en la línea de comando . La consola suele mostrar el A>mensaje para indicar la unidad de disco predeterminada actual. Cuando se utiliza con un terminal de vídeo, esto suele ir seguido de un cursor parpadeante proporcionado por el terminal. El PCC esperaría la opinión del usuario. Se podría utilizar un comando interno de CCP, con el formato de letra de unidad seguida de dos puntos, para seleccionar la unidad predeterminada. Por ejemplo, escribir B:y presionar Intro en el símbolo del sistema cambiaría la unidad predeterminada a B, y el símbolo del sistema indicaría B>este cambio.

La interfaz de línea de comandos de CP/M se inspiró en los sistemas operativos de Digital Equipment , como RT-11 para el PDP-11 y OS/8 para el PDP-8 . [ cita necesaria ] 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 un shell integrado 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 actualmente registrada y (en versiones posteriores) en el área de usuario, cargarlo y pasarle cualquier parámetro adicional desde la línea de comando. Estos se denominaron programas "transitorios". Al finalizar, CP/M recargaría la parte del CCP que había sido sobrescrita por los programas de aplicación; esto permitía a los programas transitorios tener un mayor espacio de memoria.

Los propios comandos a veces pueden resultar 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 dados a un programa no estaba estandarizado, por lo que no había un carácter de opción único que diferenciara las opciones de los nombres de los archivos. Diferentes programas podían usar, y de hecho usaron, diferentes personajes.

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

CP/M Plus (CP/M Versión 3) incluye DIR (mostrar lista de archivos de un directorio excepto aquellos marcados con el atributo SYS), DIRSYS / DIRS (lista de archivos marcados con el atributo SYS en el directorio), ERASE / ERA ( eliminar un archivo), RENAME / REN (cambiar el nombre de un archivo), TYPE / TYP (mostrar el contenido de un archivo de caracteres ASCII) y USER / USE (cambiar el número de usuario) como comandos integrados: [53] CP/M 3 permite permite al usuario abreviar los comandos integrados. [54] 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 REFXR. [54]

Sistema operativo de disco básico

El sistema operativo de disco básico, [14] [13] o BDOS, [14] [13] proporcionó acceso a operaciones tales como abrir un archivo, enviarlo a la consola o imprimir. Los programas de aplicación cargarían registros del procesador con un código de función para la operación y direcciones para parámetros o buffers de memoria, y llamarían 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 ejecutarían de la misma manera para cualquier tipo o configuración de hardware.

Basic Input Output System

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] proporcionó las funciones de nivel más bajo requeridas por el sistema operativo.

Estos incluían leer o escribir caracteres individuales en la consola del sistema y leer o escribir un sector de datos del disco. El BDOS manejaba 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 en 128 bytes, como se usa en los disquetes de 8 pulgadas de densidad única . Dado que la mayoría de los formatos de disco de 5,25 pulgadas utilizaban sectores más grandes, el bloqueo, desbloqueo y la gestión de un área de búfer del disco se realizaban 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 utilizaron una terminal de computadora separada, mientras que otros diseñaron un sistema de visualización de video integrado. Los puertos serie para impresoras y módems podían utilizar diferentes tipos de chips UART y las direcciones de los puertos no eran fijas. Algunas máquinas usaban E/S asignadas en memoria en lugar del espacio de direcciones de E/S 8080. Todas estas variaciones en el hardware estaban ocultas de otros 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 E/S de caracteres o acceso a un bloque de disco. Dado que el soporte para la comunicación en serie con un módem era muy rudimentario en el BIOS o puede haber estado ausente por completo, era una práctica común que los programas CP/M que usaban módems tuvieran una superposición instalada por el usuario que contenía todo el código necesario para acceder a una máquina en particular. Puerto serial.

Aplicaciones

Distribución 5+Disquetes de 14 pulgadas 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 textos más utilizados , y dBase , uno de los primeros y populares programas de bases de datos para microcomputadoras, fueron escritos originalmente para CP/M. Dos de los primeros delineadores , KAMAS (Knowledge and Mind Amplification System) y su sucesor reducido Out-Think (sin funciones de programación y rediseñado para compatibilidad con 8080/V20) también se escribieron para CP/M, aunque luego se reescribieron para MS-DOS. Turbo Pascal , el antepasado de Borland Delphi , y Multiplan , el antepasado de Microsoft Excel , también debutaron en CP/M antes de que las versiones de MS-DOS estuvieran disponibles. VisiCalc , el primer programa de hoja de cálculo, estuvo disponible para CP/M. Otra empresa, 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 pasaría a ser 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. Estaban disponibles una gran cantidad de compiladores e intérpretes para lenguajes de programación populares de la época (como BASIC , Turbo Pascal de Borland , FORTRAN e incluso PL/I [55] ), entre ellos varios de los primeros productos de Microsoft .

El software CP/M a menudo venía con instaladores que lo adaptaban a una amplia variedad de computadoras. [56] El código fuente de los programas BASIC era fácilmente accesible y la mayoría de las formas de protección contra copia eran ineficaces en el sistema operativo. [57] El propietario de un Kaypro II, por ejemplo, obtendría software en formato Xerox 820, luego lo copiaría y lo ejecutaría desde discos en formato Kaypro. [58]

La falta de gráficos estandarizados admitía videojuegos limitados, pero se adaptaron varios juegos basados ​​en texto y personajes , como Telengard , [59] Gorillas , [60] Hamurabi , Lunar Lander , junto con las primeras ficciones interactivas que incluyen la serie Zork y Colossal Cave. Aventura . Infocom, especialista en aventuras de texto , fue uno de los pocos editores que lanzó constantemente 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 fiables de archivos a través de un módem y una línea telefónica. Otro programa nativo de CP/M fue el procesador de esquemas KAMAS. [ cita necesaria ]

Área de programa transitorio

La memoria de lectura/escritura entre la dirección 0100 hexadecimal y la dirección más baja de BDOS era el Área de programa transitorio (TPA) disponible para los programas de aplicación CP/M. Aunque todos los procesadores Z80 y 8080 pueden manejar 64 kilobytes de memoria, la cantidad disponible para programas de aplicación puede variar, dependiendo del diseño de la computadora en particular. Algunas computadoras usaban gran parte del espacio de direcciones para cosas como BIOS ROM o memoria de visualización de video. Como resultado, algunos sistemas tenían más memoria TPA disponible que otros. El cambio de banco 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 permitió que partes del BDOS estuvieran en la memoria de conmutación de banco.

Aplicación de depuración

CP/M vino 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 la memoria y los módulos de programa, y ​​permitía ejecutar un programa paso a paso. [61] [62] [63]

Programas para residentes

CP/M originalmente no admitía el equivalente a los programas de terminación y permanencia de residente (TSR) como en DOS. Los programadores podrían escribir software que pudiera interceptar ciertas llamadas del sistema operativo y ampliar o alterar su funcionalidad. Utilizando esta capacidad, los programadores desarrollaron y vendieron programas auxiliares de accesorios de escritorio , como SmartKey , una utilidad de teclado para asignar cualquier cadena de bytes a cualquier tecla. [64] CP/M 3, sin embargo, agregó soporte para Extensiones de sistema residente (RSX) cargables dinámicamente . [53] [19] Se podría utilizar un archivo de comando nulo para permitir que CCP cargue un RSX sin un programa transitorio. [53] [19] Terceros también adaptaron soluciones similares como RSM (para módulos de sistema residentes ) a los sistemas CP/M 2.2. [65] [66] [67]

Instalación de software

Aunque CP/M proporcionó cierta abstracción de hardware para estandarizar la interfaz de E/S de disco o E/S de consola, los programas de aplicación todavía requerían instalación para hacer uso de todas las características de equipos tales como impresoras y terminales. A menudo, estos estaban controlados por secuencias de escape que debían modificarse para diferentes dispositivos. Por ejemplo, la secuencia de escape para seleccionar negrita en una impresora habría sido diferente entre los fabricantes y, a veces, entre los modelos dentro de la gama de un fabricante. Este procedimiento no fue definido por el sistema operativo; un usuario normalmente ejecutaría un programa de instalación que permitiría la selección entre una variedad de dispositivos o permitiría la edición característica por característica de las secuencias de escape necesarias para acceder a una función. Esto tuvo que repetirse para cada programa de aplicación, ya que no se proporcionaba ningún servicio de sistema operativo central 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 tipo margarita más lenta pero con calidad de presentación ), era necesario preparar una versión independiente de Wordstar y cargar la impresora Wordstar. versión que correspondía a la impresora seleccionada (y salir y recargar para cambiar de impresora).

Formatos de disco

El formato de densidad única y de una sola cara de IBM System/34 e IBM 3740 es el formato de disquete estándar de 8 pulgadas de CP/M. No existe ningún formato de disco CP/M estándar de 5,25 pulgadas, y Kaypro, Morrow Designs , Osborne y otros utilizan cada uno el suyo propio. [68] [23] [69] 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 llegar al mercado más amplio posible". [21] JRT Pascal , por ejemplo, proporcionó versiones en disco de 5,25 pulgadas para North Star , Osborne, Apple, Heath sector duro y sector blando , y Superbrain , y una versión de 8 pulgadas. [70] Ellis Computing también ofreció su software para ambos formatos Heath y otros 16 formatos de 5,25 pulgadas, incluidas dos modificaciones diferentes de TRS-80 CP/M. [71]

Ciertos formatos de disco eran más populares que otros. La mayor parte del software estaba disponible en formato Xerox 820 y otras computadoras, como la Kaypro II, eran compatibles con él. [58] [72] Sin embargo, ningún fabricante prevaleció en la era de uso de CP/M de 5,25 pulgadas, y los formatos de disco a menudo no eran portátiles entre fabricantes de hardware. Un fabricante de software tuvo que preparar una versión separada del programa para cada marca de hardware en la que se iba a ejecutar. Con algunos fabricantes (Kaypro es un ejemplo), ni siquiera existía una estandarización entre los diferentes modelos de la empresa. Debido a esta situación, los programas de traducción de formatos de disco, que permitían que una máquina leyera muchos formatos diferentes, se hicieron populares y redujeron la confusión, al igual que programas como Kermit, que permitía la transferencia de datos y programas de una máquina a otra utilizando los puertos serie que la mayoría de las máquinas CP/M lo tenían.

Se utilizaron varios formatos dependiendo de las características de los sistemas particulares y, hasta cierto punto, de las elecciones 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 (como los ven 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 [73] pero una vez configurados, 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 diferentes máquinas CP/M dependía del tipo de unidad de disco y controlador utilizado, ya que en la era CP/M existían muchos tipos diferentes de disquetes en formato de 8 y 5,25 pulgadas. Los discos pueden ser sectorizados duros o blandos, de densidad simple o doble, de una o dos caras, de 35 pistas, 40 pistas, 77 pistas u 80 pistas, y el diseño, el tamaño y el intercalado del sector también pueden variar ampliamente. Aunque los programas de traducción podrían permitir al usuario leer tipos de discos de diferentes máquinas, el tipo de unidad y el controlador también fueron factores. En 1982, los discos de 5,25 pulgadas, de una sola cara y de sector blando se habían convertido en el formato más popular para distribuir software CP/M, ya que eran utilizados por las máquinas de consumo más comunes de esa época, como la Apple II, TRS-80, Osborne 1, Kaypro II e IBM PC. Un programa de traducción permitía al usuario leer cualquier disco en 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 de forma secuencial, siendo la pista 0 la primera pista (la más externa) de la cara 1 y la pista 79 (en un disco de 40 pulgadas). disco de pista) siendo la última pista (la más interna) de la cara 2. Los usuarios de Apple II no podían usar nada más que el formato GCR de Apple y por lo tanto tuvieron que obtener el software CP/M en discos de formato Apple o transferirlo a través de un enlace serie.

El mercado fragmentado de CP/M, que requería que los distribuidores almacenaran 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 una Z80 para soporte CP/M además de su modo nativo usando una CPU derivada 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 de sector blando.

La primera computadora que utilizó una unidad de disquete de 3,5 pulgadas, la Sony SMC-70 , [74] ejecutaba CP/M 2.2. El Commodore 128, el portátil Bondwell-2 , Micromint/Ciarcia SB-180, [75] MSX y TRS-80 Model 4 (con 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 CP/M de Applied Engineering 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 Apple II). [76] El Amstrad PCW ejecutaba CP/M usando unidades de disquete de 3 pulgadas al principio, y luego cambió a unidades de 3,5 pulgadas.

Sistema de archivos

Los nombres de los archivos se especificaron 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, .COMindicó un archivo de programa ejecutable e .TXTindicó un archivo que contiene texto ASCII . Los caracteres de los nombres de archivos ingresados ​​en el símbolo del sistema se convirtieron a mayúsculas, pero el sistema operativo no lo impuso. Los programas ( MBASIC es un ejemplo notable) pudieron crear nombres de archivos que contenían letras minúsculas, a las que luego no se podía hacer referencia fácilmente en la línea de comando.

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

El tamaño del archivo se especificó como el número de registros de 128 bytes (que corresponden directamente a los sectores del disco en unidades de 8 pulgadas) ocupados por un archivo en el disco. No existía una forma generalmente admitida de especificar tamaños de archivo exactos en bytes. El sistema operativo mantenía el tamaño actual de un archivo en el Bloque de control de archivos (FCB) del archivo. Dado que muchos programas de aplicación (como los editores de texto ) prefieren tratar archivos como secuencias de caracteres en lugar de secuencias de registros, por convención los archivos de texto terminaban con un carácter control-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 control Z de terminación. Esto también significaba que insertar un carácter control-Z en medio de un archivo generalmente tenía el efecto de truncar el contenido del texto del archivo.

Con la llegada de unidades de disco fijas y extraíbles más grandes, se emplearon fórmulas de desbloqueo de disco que dieron como resultado más bloques de disco por bloque de asignación de archivos lógicos. Si bien esto permitió archivos de mayor tamaño, también significó que el archivo más pequeño que se podía asignar aumentaba de tamaño de 1  KB (en unidades de densidad única) a 2 KB (en unidades de doble densidad), y así sucesivamente, hasta 32 KB. para un archivo que contiene solo un byte. Esto provocaba 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 archivos en un disco. Para cambiar de usuario, simplemente había que escribir "Usuario X" en el símbolo del sistema, siendo X el número de usuario. La seguridad era inexistente y se consideraba innecesaria en una computadora personal. El concepto del área de usuario era hacer que la versión de CP/M para un solo usuario fuera algo compatible con los sistemas MP/M multiusuario. Un parche común para CP/M y los sistemas operativos derivados era hacer que un área de usuario fuera accesible para el usuario independientemente del área de usuario configurada actualmente. Un comando USUARIO permitía cambiar el área de usuario a cualquier área de 0 a 15. El usuario 0 era el predeterminado. Si uno cambiara a otro usuario, como el USUARIO 1, el material guardado en el disco para este usuario solo estaría disponible para el USUARIO 1; El USUARIO 2 no podría verlo ni acceder a él. Sin embargo, los archivos almacenados en el área USUARIO 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 había iniciado sesión como USUARIO 0. Podría decirse que la función del área de usuario tenía poca utilidad en disquetes pequeños, pero era útil para organizar archivos en máquinas con disco duro. conduce . La intención de esta función era facilitar el uso de la misma computadora para diferentes tareas. Por ejemplo, una secretaria podría ingresar datos y luego, después de cambiar de área de USUARIO, otro empleado podría usar la máquina para realizar la facturación sin que sus archivos se mezclen.

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 existieron desde la comercialización del bus S-100 , CP/M no proporcionó ningún soporte gráfico estandarizado hasta 1982 con GSX (Graphics System Extension). 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 sólo podían mostrar gráficos y diagramas artísticos ASCII rudimentarios en modo texto o utilizando un juego 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 bloques, y eran accesibles para programadores ensambladores y programadores BÁSICOS mediante el comando CHR$. El Modelo 4 podrí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 robotrón PC 1715 de Alemania Oriental
CP/J versión 2.21 ejecutándose en un Elwro 804 Junior

Oficial

Algunas empresas realizaron mejoras oficiales de CP/M basadas en el código fuente de Digital Research. Un ejemplo es IMDOS para la computadora IMSAI 8080 fabricada 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 el punto de superar con creces al original, por ejemplo el TurboDOS con capacidad multiprocesador .

bloque del este

En el antiguo Bloque del Este existían varios derivados de CP/M-80 con varios nombres, incluidos SCP ( Programa de control de usuario único  [de] ), SCP/M, CP/A, [78] 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. [79] [80] También hubo derivados de CP/M-86 llamados SCP1700 , CP/K y K8918-OS . [80] Fueron producidos por el VEB Robotron de Alemania del Este y otros. [80] [79] [78]

Legado

Varios 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 letra de unidad y nombre de archivo 8.3 en MS-DOS (y las primeras versiones de Windows) se adoptaron originalmente de CP/M. [81] Los caracteres comodín utilizados por Windows (? y *) se basan en los de CP/M, [82] al igual que los nombres de archivos reservados utilizados para redirigir la salida a una impresora ("PRN:") y la consola ( "ESTAFA:"). Los nombres de unidad A y B se utilizaron para designar las dos unidades de disquete que normalmente utilizaban los sistemas CP/M; cuando aparecieron los discos duros, se designaron C, que sobrevivió en MS-DOS como C:\>símbolo del sistema. [83] El carácter de control^Z que marca el final de algunos archivos de texto también se puede atribuir a CP/M. [84] Varios comandos en DOS fueron modelados a partir de comandos CP/M; algunos de ellos incluso llevaban 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 lanzó algunos binarios CP/M 2.2 y código fuente bajo una licencia de código abierto , permitiendo también la redistribución y modificación de archivos de investigación digital recopilados adicionales relacionados con las familias CP/M y MP/M a través de "The" de Tim Olmstead. Sitio web no oficial de CP/M" desde 1997. [85] [86] [87] Después de la muerte de Olmstead el 12 de septiembre de 2001, [88] Lineo actualizó y amplió la licencia de distribución , quien mientras tanto se había convertido en el propietario de esos Digital Research activos, el 19 de octubre de 2001. [89] [90] [1] [91] 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. . [92]

A partir de 2018 , hay una serie de personas y grupos activos de computadoras antiguas, aficionadas y retro , y algunas pequeñas empresas comerciales, que todavía desarrollan y respaldan plataformas informáticas que utilizan CP/M (principalmente 2.2) como sistema operativo host.

Ver también

Referencias

  1. ^ ab Gasperson, Tina (26 de noviembre de 2001). "La colección CP/M vuelve a estar en línea con una licencia de código abierto: recorra el camino de la memoria". El registro . 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". InfoMundo . vol. 5, núm. 33. pág. 49. ISSN  0199-6649.
  3. ^ abc Sandberg-Diment, Erik (3 de mayo de 1983). "Computadoras personales: el sistema operativo en el medio" . Los New York Times .
  4. ^ abc Markoff, John (13 de julio de 1994). "Muere Gary Kildall, 52 años, actor crucial en el desarrollo informático" . Los New York Times .
  5. ^ ab Shustek, Len (2 de agosto de 2016). "En sus propias palabras: Gary Kildall". Gente notable . Museo de Historia de la Computación . Archivado desde el original el 17 de diciembre de 2016.
  6. ^ a b C Kildall, Gary Arlen (2 de agosto de 2016) [1993]. Kildall, Scott ; Kildall, Kristin (eds.). Conexiones informáticas: personas, lugares y eventos en la evolución de la industria de las computadoras personales (Manuscrito, parte 1). Familia Kildall. Archivado desde el original el 17 de noviembre de 2016 . Consultado el 17 de noviembre de 2016 .
  7. ^ Newton, Harry (2000). Diccionario de telecomunicaciones de Newton . Nueva York, Nueva York, Estados Unidos: CMP Books . págs.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 16/8". computadoras-antiguas.com . Archivado desde el original el 3 de enero de 2016 . Consultado el 21 de abril de 2022 .
  10. ^ Cole, Maggie (25 de mayo de 1981). "Gary Kildall y la historia de éxito de la investigación digital". InfoMundo . vol. 3, núm. 10. Palo Alto, California, Estados Unidos. págs. 52–53. ISSN  0199-6649.
  11. ^ Freiberger, Paul (5 de julio de 1982). "Historia de la microcomputación, parte 3: génesis del software". InfoMundo . vol. 4, núm. 26. Palo Alto, California, Estados Unidos. pag. 41. ISSN  0199-6649.
  12. ^ Espera, Mitchell; Antes, Robert W.; Volpe, Jerry (1982). El libro oficial del Commodore 128. HW Sams. pag. 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". Diario del Dr. Dobb . vol. 5, núm. 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), CP/M 1.1 o 1.2 BIOS y BDOS para Lawrence Livermore Laboratories
  15. ^ Johnson, Herbert R. (4 de enero de 2009). "Historia de CP / M y Digital Research Inc. (DRI)". www.retrotecnología.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 de disquete". Diario del Dr. Dobb . vol. 1, núm. 4. Menlo Park, California, Estados Unidos. pag. 5.Subtítulo: Lenguaje de comando 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, Pablo ; Michael Swaine (2000). Fuego en el valle: la creación de la computadora personal. McGraw-Hill. pag. 175.ISBN 0071358927– a través del Archivo de Internet.
  19. ^ abcdefgh Marrón, David K.; Strutynski, Kathryn ; Wharton, John Harrison (14 de mayo de 1983). "Ajustar más el rendimiento de un sistema operativo: hash, almacenamiento en caché y bloqueo de memoria son sólo algunas de las técnicas utilizadas para mejorar el rendimiento en la última versión de CP/M". Diseño/Software del sistema. Diseño informático: la revista de sistemas basados ​​en computadora . 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. CÓDIGO  CMPDA. arca:/13960/t3hz07m4t . Consultado el 14 de agosto de 2021 .(7 páginas)
  20. ^ ab "Kathryn Betty Strutynski". Monterey Herald (Obituario). 2010-06-19. Archivado desde el original el 14 de agosto de 2021 . Consultado el 10 de agosto de 2021 a través de Legacy.com .
  21. ^ ab Hogan, Thom (14 de septiembre de 1981). "Estado de la microcomputación / Algunos caballos corriendo cabeza a cabeza". págs. 10-12 . Consultado el 8 de abril de 2019 .
  22. ^ Sabia, Deborah (10 de mayo de 1982). "Los fabricantes de mainframes cortejan a proveedores externos de microsoftware". InfoMundo . 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). "Xerox 820, un sistema operado por CP/M de Xerox". InfoMundo . vol. 4, núm. 23. págs. 101-104 . Consultado el 30 de marzo de 2019 .
  24. ^ 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]
  25. ^ Clarke, A.; Eaton, JM; David, D. Powys Lybbe (26 de octubre de 1983). CP/M: el bus de software: el compañero del programador. Prensa Sigma. ISBN 978-0905104188.
  26. ^ Johnson, Herbert R. (30 de julio de 2014). "Historia de CP / M y Digital Research Inc. (DRI)".
  27. ^ Swaine, Michael (1 de abril de 1997). "Gary Kildall y el espíritu empresarial colegiado". Diario del Dr. Dobb . Archivado desde el original el 24 de enero de 2007 . Consultado el 20 de noviembre de 2006 .
  28. ^ 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". Revista PC . 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 .
  29. ^ "Catálogo de computadoras 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 .
  30. ^ ab "Digital Research tiene CP/M-86 para IBM Displaywriter" (PDF) . Noticias de investigación digital: para usuarios de investigación digital en todas partes . 1 (1). Pacific Grove, California, EE. UU.: Digital Research, Inc .: 2, 5, 7 de noviembre de 1981. Cuarto trimestre. Archivado (PDF) desde el original el 17 de abril de 2021 . Consultado el 18 de enero de 2020 .
  31. ^ Maher, Jimmy (31 de julio de 2017). "La historia completa de IBM PC, segunda parte: el imperio DOS ataca". Ars Técnica . pag. 3 . Consultado el 8 de septiembre de 2019 .
  32. ^ ab Kildall, Gary Arlen (16 de septiembre de 1982). "Ejecución de software de 8 bits en computadoras con 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 .
  33. ^ Snyder, John J. (junio de 1983). "¿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 .
  34. ^ "M 68 / M 68 MX". Archivado desde el original el 6 de marzo de 2016 . Consultado el 17 de septiembre de 2012 .
  35. ^ 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 para la comunidad de la microcomputación . vol. 3, núm. 9. Popular Computing, Inc. págs. 42–43. ISSN  0199-6649 . Consultado el 24 de enero de 2020 .
  36. ^ Olmstead, Tim; Chaudry, Gabriele "Gaby". "Código fuente de investigación digital". Archivado desde el original el 5 de febrero de 2016.
  37. ^ Digital Research (1981): XLT86 - Traductor de lenguaje ensamblador 8080 a 8086 - Guía del usuario Archivado el 18 de noviembre de 2016 en Wayback Machine Digital Research Inc, Pacific Grove
  38. ^ 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 2 de febrero de 2015 . Consultado el 22 de octubre de 2013 .
  39. ^ Isaacson, Walter (2014). Los innovadores: cómo un grupo de inventores, hackers, genios y geeks crearon la revolución digital . Simón y Schuster . pag. 358.ISBN 978-1-47670869-0.
  40. ^ Bellis, María. "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 .
  41. ^ Magid, Lawrence J. (febrero de 1982). "Bebe azul". Revista PC . 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 .
  42. ^ Mace, Scott (11 de junio de 1984). "CP/M elude el mercado interno". InfoMundo . vol. 6, núm. 24. pág. 46.
  43. ^ Groth, Nancy (10 de febrero de 1986). "Kaypro se retira en CP/M". InfoMundo . vol. 8, núm. 6. pág. 6.
  44. ^ "ZCPR - oldcomputers.ddns.org".
  45. ^ "El maravilloso mundo de ZCPR3". 1987-11-30. Archivado desde el original el 23 de diciembre de 2019 . Consultado el 18 de noviembre de 2019 .
  46. ^ "Emuladores CP/M para DOS". www.retroarchive.org/cpm . Luis Basto. Archivado desde el original el 9 de julio de 2016 . Consultado el 6 de julio de 2016 .
  47. ^ Davis, Randy (diciembre de 1985 - enero de 1986). Escrito en Greenville, Texas, Estados Unidos. "Los nuevos microprocesadores NEC: ¿8080, 8086 u 8088?" (PDF) . Micro Cornucopia . No. 27. Bend, Oregon, EE. UU.: Micro Cornucopia Inc. págs. ISSN  0747-587X. Archivado (PDF) desde el original el 11 de febrero de 2020 . Consultado el 11 de febrero de 2020 .
  48. ^ "Próximamente el complemento CP/M". Noticias de computadoras personales . 1984-01-14. pag. 7 . Consultado el 3 de octubre de 2022 .
  49. ^ Hetherington, Tony (febrero de 1985). "Afilado MZ-800". Mundo de las computadoras personales . Págs. 144–146, 149–150 . Consultado el 3 de octubre de 2022 .
  50. ^ Coles, Ray (junio de 1984). "CP/M más barato y sencillo" (PDF) . Computación práctica . pag. 43 . Consultado el 3 de octubre de 2022 .
  51. ^ "AMI publica especificaciones sobre el microchip CP/M". Microsistemas . Junio ​​de 1984. p. 12 . Consultado el 25 de marzo de 2023 .
  52. ^ ab "Manual del sistema operativo CP/M" (PDF) .
  53. ^ Guía del programador del sistema operativo abc CP/M Plus (CP/M versión 3) (PDF) (2 ed.). Investigación Digital . Abril de 1983 [enero de 1983]. Archivado (PDF) desde el original el 25 de noviembre de 2016 . Consultado el 25 de noviembre de 2016 .
  54. ^ ab Guía del usuario del sistema operativo CP/M Plus (CP/M versión 3) (PDF) . Investigación Digital. 1983.
  55. ^ "Guía del programador de idiomas PL/I" (PDF) . Investigación Digital .
  56. ^ Mace, Scott (9 de enero de 1984). "Los fabricantes de clones de PC de IBM evitan la compatibilidad total". InfoMundo . 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 .
  57. ^ 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, núm. 6. pág. 411. Archivado desde el original el 9 de junio de 2014 . Consultado el 20 de octubre de 2013 .
  58. ^ ab Derfler, Frank J. (18 de octubre de 1982). "Kaypro II: un micro portátil económico de 26 libras". InfoMundo . pag. 59. Archivado desde el original el 1 de enero de 2014 . Consultado el 22 de octubre de 2013 .
  59. ^ Loguidice, Bill (28 de julio de 2012). "Más sobre los juegos de computadora Avalon Hill en plataformas Heath/Zenith". Sillón Arcade . Archivado desde el original el 23 de julio de 2015 . Consultado el 22 de julio de 2015 .
  60. ^ 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 .
  61. ^ "Sección 4: Herramienta de depuración dinámica CP/M". CP/M 2.2 . Archivado desde el original el 17 de junio de 2015 . Consultado el 29 de agosto de 2014 .
  62. ^ Herramienta de depuración dinámica CP/M (DDT): guía del usuario (PDF) . Investigación Digital . 1978 [1976]. Archivado (PDF) desde el original el 28 de octubre de 2014 . Consultado el 29 de agosto de 2014 .
  63. ^ Shael (26 de junio de 2010) [9 de diciembre de 2009]. "Utilidad DDT". Archivado desde el original el 8 de diciembre de 2015 . Consultado el 29 de agosto de 2014 .
  64. ^ Marca, Stewart (1984). Catálogo de software de Whole Earth. Prensa cuántica/Doubleday. ISBN 978-0-38519166-1. Archivado desde el original el 4 de julio de 2015.
  65. ^ 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.
  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 2) (en alemán). vol. 1987, núm. 2. Heise Verlag . págs. 78–85.
  67. ^ Huck, Alex (9 de octubre de 2016). "RSM para CP/M 2.2". DDR de ordenador doméstico (en alemán). Archivado desde el original el 25 de noviembre de 2016 . Consultado el 25 de noviembre de 2016 .
  68. ^ Pournelle, Jerry (abril de 1982). "Osborne 1, los nuevos amigos de Zeke y la ortografía revisada". BYTE . vol. 7, núm. 4. pág. 212 . Consultado el 24 de mayo de 2021 .
  69. ^ Espera, Mitchell ; Antes, Robert W .; Volpe, Jerry (1985). "El modo CP/M". El libro oficial de la computadora personal Commodore 128 . Howard W. Sams & Co. pág. 98.ISBN 0-672-22456-9.
  70. ^ "Ahora: ¡Un Pascal CP/M completo por sólo $ 29,95!". BYTE (anuncio). vol. 7, núm. 12 de diciembre de 1982. pág. 11. Archivado desde el original el 21 de julio de 2016 . Consultado el 1 de octubre de 2016 .
  71. ^ "Computación Ellis". BYTE (anuncio). vol. 8, núm. 12 de diciembre de 1983. p. 69.
  72. ^ Fager, Roger; Bohr, John (septiembre de 1983). "El Kaypro II". BYTE . vol. 8, núm. 9. pág. 212. Archivado desde el original el 2 de marzo de 2014 . Consultado el 20 de octubre de 2013 .
  73. ^ Johnson-Laird, Andy (1983). "3". El manual CP/M del programador . Berkeley, California, Estados Unidos: Osborne/McGraw-Hill. ISBN 0-88134-103-7.
  74. ^ "Old-computers.com: el museo". Archivado desde el original el 3 de julio de 2013 . Consultado el 6 de octubre de 2017 .
  75. ^ Ciarcia, Steve (septiembre de 1985). "Construya el SB-180" (PDF) . Revista BYTE . Medios CMP . pag. 100 . Consultado el 18 de junio de 2019 .
  76. ^ Manual de usuario de CP/AM 5.1. Ingeniería Aplicada. pag. 1 . Consultado el 22 de mayo de 2020 .
  77. ^ "Comandos integrados CP/M". discordia.org.uk . Archivado desde el original el 12 de abril de 2008 . Consultado el 28 de enero de 2009 .
  78. ^ ab Pohlers, Volker (30 de abril de 2019). "CP/A". DDR de computadora doméstica (en alemán). Archivado desde el original el 21 de febrero de 2020 . Consultado el 21 de febrero de 2020 .
  79. ^ 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 .
  80. ^ 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 .
  81. ^ Chen, Raymond . "¿Por qué MS-DOS utiliza nombres de archivo 8.3 en lugar de, digamos, 11.2 o 16.16?". Lo viejo y nuevo . Archivado desde el original el 22 de septiembre de 2011 . Consultado el 17 de diciembre de 2010 .
  82. ^ Chen, Raymond . "¿Cómo funcionaban los comodines en MS-DOS?". Lo viejo y nuevo . Archivado desde el original el 8 de mayo de 2011 . Consultado el 17 de diciembre de 2010 .
  83. ^ Chen, Raymond . "¿Cuál es el problema con esos nombres de archivos reservados como NUL y CON?". Lo viejo y nuevo . Archivado desde el original el 2 de agosto de 2010 . Consultado el 17 de diciembre de 2010 .
  84. ^ Chen, Raymond . "¿Por qué los archivos de texto terminan en Ctrl+Z?". Lo viejo y nuevo . Archivado desde el original el 6 de febrero de 2011 . Consultado el 17 de diciembre de 2010 .
  85. ^ Olmstead, Tim (10 de agosto de 1997). "El sitio web de CP/M necesita un host". Grupo de noticias : comp.os.cpm. Archivado desde el original el 1 de septiembre de 2017 . Consultado el 9 de septiembre de 2018 .
  86. ^ Olmstead, Tim (29 de agosto de 1997). "ANUNCIO: El sitio de Caldera CP/M ya está activo". Grupo de noticias : comp.os.cpm. Archivado desde el original el 1 de septiembre de 2017 . Consultado el 9 de septiembre de 2018 .[2]
  87. ^ "Acuerdo de licencia". Caldera, Inc. 1997-08-28. 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 ]
  88. ^ "Tim Olmstead". 2001-09-12. Archivado desde el original el 9 de septiembre de 2018.
  89. ^ Chispas, 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 .
  90. ^ Chaudry, Gabriele "Gaby" (ed.). "El sitio web no oficial de CP/M". Archivado desde el original el 3 de febrero de 2016.
  91. ^ Swaine, Michael (1 de junio de 2004). "CP/M y DRM". Diario del Dr. Dobb . 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]
  92. ^ Leyes, David (1 de octubre de 2014). "Código fuente CP/M de investigación digital temprana". Museo de Historia de la Computación . Archivado desde el original el 27 de julio de 2015 . Consultado el 25 de julio de 2015 .

Otras lecturas

enlaces externos