CP/M-80: Referencia de Comandos y Utilidades

Resumen de comandos habituales del sistema operativo CP/M-80 y su uso.

Comandos Internos (CCP1)

Comando Explicación
DIR Muestra el directorio del disco actual con los archivos disponibles.
Para archivos marcados como SYS se visualizan con DIRS ó DIR [SYS] si existe DIR.COM
ERA archivo.ext Borra un archivo del disco. Puede usar comodines como *.BAK.
REN nuevo.ext=viejo.ext Cambia el nombre de un archivo existente.
TYPE archivo.txt Muestra por pantalla el contenido de un archivo de texto.
SAVE n archivo.com Guarda n páginas de memoria (de 256 bytes) en un archivo COM.
USER n Cambia al área de usuario n (0-15) para separar conjuntos de archivos.2

Utilidades Externas Frecuentes3

Comando Explicación
PIP Herramienta de copia y transferencia de archivos entre unidades, dispositivos y archivos.
PIP B:=A:FILE?.*
Copia archivos FILE0.COM, FILE1.LIB, etc., desde A: a B:
DIR El comando DIR interno es muy básico, pero si la consola encuentra la aplicación DIR.COM esta puede mostrar más detalles sobre los archivos listados como RO, RW, SYS, etc. usando modificadores.
Ej.: DIR [SYS,FULL,USER=ALL]
STAT Informa del estado de discos y archivos; muestra atributos y espacio disponible.
SET Utilidad externa (habitual en CP/M Plus) para cambiar atributos de archivos y discos, como SYS, DIR o RO.
Ej.: SET PIP.COM [SYS], establece que el archivo es accesible desde tódas las áreas
SET PIP.COM [DIR] es el opuesto a la orden anterior.
SETENV Utilidad de CP/M Plus que establece en qué unidades y en qué orden debe buscar un archivo si no lo encuentra en la unidad actual.
Ej.: SETDEF C:, A:, * [ORDER=(COM, SUB)]
ED Editor de texto de línea incluido en CP/M para crear y modificar archivos ASCII.
ASM Ensamblador para código 8080/Z80; genera archivos objeto a partir de fuentes ASM.
LOAD Convierte archivos objeto (normalmente HEX) a formato ejecutable COM.
DDT Depurador de bajo nivel para examinar memoria, ejecutar y trazar programas.
SUBMIT Ejecuta lotes de comandos desde un archivo SUB para automatizar tareas.
XSUB Complementa a SUBMIT permitiendo entrada de consola durante ejecución por lotes.
SYSGEN Copia o instala una imagen de sistema CP/M en un disco de arranque.
MOVCPM Regenera CP/M para un tamaño de memoria diferente y produce una nueva imagen del sistema.
LANGUAGE Gestiona el juego de caracteres y teclado según la región.
DATE Gestiona la fecha y la hora. DATE muestra el tiempo actual, DATE SET permite cambiarlo.
Nota: según la distribución de CP/M-80, algunos comandos externos pueden variar o no estar incluidos.

Extensiones Habituales de Archivos en CP/M

Extensión Descripción
.COM Programa ejecutable en formato binario plano; suele cargarse y ejecutarse directamente desde CCP1.
.ASM Código fuente en ensamblador 8080/Z80 para ensamblar con utilidades como ASM o MAC.
.HEX Archivo objeto en formato Intel HEX, habitual como salida del ensamblador y entrada para LOAD.
.REL Módulo relocalizable generado por algunos ensambladores y enlazadores para construir ejecutables.
.PRN Listado de ensamblado o salida de impresión con direcciones, opcodes y líneas de código fuente.
.LST Listado de texto generado por herramientas de desarrollo o utilidades de impresión.
.LIB Biblioteca de módulos objeto utilizada por enlazadores en flujos de compilación más complejos.
.LBR Archivo de biblioteca/colección (similar a un contenedor) usado para agrupar múltiples ficheros.
.LQR o .LZR, se tratan de archivos .LBR comprimidos con SQ o CRUNCH respectivamente, común en distribuciones de software para CP/M.
.OVL Archivo de overlay: contiene módulos auxiliares que algunos programas cargan bajo demanda para ampliar funciones sin ocupar toda la memoria principal desde el inicio.
.SUB Script por lotes para SUBMIT; contiene comandos que se ejecutan secuencialmente.
Caso especial: PROFILE.SUB se ejecuta automáticamente al iniciar CP/M Plus, útil para inicializar SET, SETENV, TIME, LANGUAGE, etc. Similar al autoexec.bat de DOS.
.TXT Archivo de texto ASCII para documentación, notas o datos editables con TYPE y ED.
.DOC Documentación en texto plano distribuida junto con programas y utilidades.
.BAS Programa fuente en BASIC (MBASIC u otros intérpretes/compiladores disponibles en CP/M).
.BAK Copia de seguridad automática creada por editores o herramientas al modificar archivos.

Utilidades CPM-80 para instalar aplicaciones desde ficheros LBR4

Utilidad Descripción
LU Herramienta clásica para listar y extraer archivos de bibliotecas LBR.
NULU Versión mejorada de LU, muy usada para gestionar LBR y extraer paquetes distribuidos en BBS.
NSWEEP Utilidad orientada a examinar discos y bibliotecas, útil para localizar y extraer contenidos de archivos LBR.
SQ Comprime archivos con el formato SQueezed, frecuente en distribuciones históricas de CP/M. Utiliza codificación Huffman. La letra central de la extensión original se sustituye por una "Q", por ejemplo las extesiones CQM (COM), AQM (ASM), DQC (DOC), etc.
UNSQ Descomprime archivos en formato SQueezed generados por SQ.
CRUNCH Comprime archivos (habitualmente texto) para reducir espacio antes o después de empaquetarlos. Más eficiente porque utilizaba algoritmos basados en LZW. La letra central de la extensión original se sustituye habitualmente por una "Z", por ejemplo las extesiones CZM (COM), TZT (TXT), OZL (OVL) etc.
UNCRUNCH Revierte archivos comprimidos con CRUNCH para recuperar el contenido original.
ZIP Crea archivos ZIP en algunos entornos CP/M para intercambio con otros sistemas. Sin embargo, los archivos ZIP generados en CP/M suelen ser incompatibles con los estándares actuales.
UNZIP Extrae archivos ZIP en CP/M. Utilizado para archivos de comandos y utilidades distribuidos en el formato ZIP de CP/M.

1. Console Command Processor (Procesador de Comandos de Consola).

2. En CP/M 2.2 no existían subdirectorios: para organizar archivos se usaban áreas de usuario numeradas (USER 0-15). Al cambiar de área con USER n, normalmente solo se veían los ficheros de esa área.
En algunas implementaciones (especialmente CP/M Plus y compatibles con SET), al marcar un fichero como SYSTEM o PUBLIC podía hacerse visible también desde otras áreas.

3. La disponibilidad de estas utilidades puede variar según la distribución de CP/M-80. Esta referencia está muy basada en la implementación de CP/M Plus para Amstrad.

4. Utilidades para sistemas operativos actuales y ficheros LBR o comprimidos con CP/M:
80un (Python), lbrate o Total Commander con algún plugin como WCX si prefieres una interfaz gráfica