La verdad es que desde hace años le tengo un aprecio especial al sistema operativo CP/M.
Introducción
Hace un tiempo conseguí un emulador de CP/M-80, el “MYZ80” que funciona bajo MS-DOS, y lo hace muy bien. Permite crear 3 unidades de disco (A, B, C) y un disco RAM (D) e importa y exporta ficheros desde el MS-DOS de una forma sencilla. Hay algún emulador más, pero este es el que más me gusta y sigo usando.
Pero para el CP/M-86 solo he encontrado dos emuladores, que dejan bastante que desear, y que encima obligan a ejecutar los programas CMD de una forma poco elegante: nombre_emulador archivo_cmd [parámetros].
El simulador
En el año 1993/94, aprovechando la época en la que me inicié en la programación en Turbo C de Borland bajo MS-DOS, programé un “simulador” de CP/M-80. Esto es un programa que al ejecutarse te permite trabajar con el MS-DOS como si estuvieras en un entorno CP/M.
Este simulador lleva integrados los comandos: DIR, DIRS, ERASE, RENAME, TYPE, DUMP, CLS, SUBMIT, STAT y PIP. Los dos últimos solo incorporan parte de las funciones originales. También existe el HELP.
Se copia el archivo “CPM.EXE” en un directorio y
se copian los ficheros MS-DOS que se desean usar. Para salir del simulador se pulsa “ESC” y volvemos al prompt del MS-DOS. Así de fácil... y hasta cierto punto, absurdo.
Los emuladores
Para MS-DOS hay, que yo sepa, dos emuladores de CP/M-86: el AME86 y el CPM86.
Los dos sirven para ejecutar programas CMD desde el prompt del MS-DOS, pero la verdad es que los dos fallan bastante. Como el tema de las secuencias de escape para el control de la pantalla no está normalizado en el CP/M, por aquí ya tenemos problemas, y por otro lado ciertas llamadas que se hacen al sistema tampoco están implementadas. Total, que hay programas que no funcionan en ninguno de los dos, otros van bien en los dos, otros van bien en uno pero fallan en el otro y otros cuelgan el MS-DOS. Todo un galimatías que hace que cueste decidirse por uno.
De todas formas, después de probar muchas aplicaciones grandes y pequeñas he visto que funciona mejor el AME86 que el CPM86, y es el que he decidido usar para este proyecto. Además, el CPM86 da errores de falta de memoria en algunas aplicaciones grandes, que son las más interesantes.
Una pega de este emulador es que al inicializar la emulación borra la pantalla, y al finalizar y volver al prompt muestra un texto de copyright en pantalla. Es un tema estético.
He probado de ejecutar los comandos del sistema típicos del CP/M-86 como el PIP, STAT, ED, etc. y no funcionan en ninguno de los dos emuladores. Ignoro el motivo. Esto hace que, por ejemplo, no podamos usar el ensamblador “ASM86.CMD”.
Podéis descargar los emuladores desde los siguientes enlaces:
AME86-Emulator: https://sites.google.com/site/ame86emulator/
CPM86-Emulator: http://www.gaby.de/cpm86.exe
El proyecto
Este proyecto consiste en conseguir que puedas ejecutar aplicaciones CP/M-86 en un entorno CP/M-86 bajo MS-DOS, y para eso he decidido fusionar el simulador con uno de los emuladores.
Así, he cogido el proyecto del simulador y 20 años después he realizado ciertas modificaciones para que, por un lado, te permita ejecutar las aplicaciones CMD sin tener que poner el nombre del emulador delante, y por otro lado puedas usar los principales comandos del CP/M-86 de una forma rápida y sencilla.
En el directorio del simulador/emulador deben haber dos programas: el “CPM86SIM.EXE” que es el simulador de CP/M-86, y uno de los dos emuladores, renombrado como “CPM86RUN.EXE”. A partir de aquí se pueden copiar todos los programas y ficheros CP/M-86 que se deseen.
Al ejecutar el programa “CPM86SIM” entramos en el simulador, se muestra la clásica pantalla de boot del CP/M-86, y a continuación aparece el prompt con la letra de la unidad activa. Cuando se escribe algo y se pulsa RETURN, primero se comprueba si es uno de los comandos residentes, y sino busca si en el directorio existe algún fichero con ese nombre y con la extensión CMD. Si existe, se lanza el emulador y se ejecuta el programa.
Por temas de sencillez, no he incorporado el comando USER y no se permiten cambios de directorio. El simulador solo permite trabajar en su propio directorio o en el directorio activo de las distintas unidades del equipo.
Comandos residentes:
Estos comandos están incorporados en el simulador y están siempre disponibles desde el prompt del simulador.
DIR
Permite ver los ficheros del directorio.
DIRS
Permite ver los ficheros ocultos del directorio.
ERASE
Permite borrar ficheros del directorio. Si se usa el “*” solicita confirmación fichero por fichero.
RENAME
Permite renombrar un fichero.
TYPE
Permite volcar por pantalla el contenido de uno o más ficheros.
No recuerdo que sistema CP/M de 8 bits permitía el uso del “*”, ya que originalmente no lo permite, pero como está programado y puede ser útil, lo he dejado.
DUMP
Permite volcar por pantalla el contenido de un fichero en formato hexadecimal.
En este caso, y también a diferencia del original, al lado del volcado hexadecimal aparece en formato
ASCII. Aunque hay aplicaciones CP/M-86 que ya lo permiten, se ha dejado esta funcionalidad.
SUBMIT
Permite ejecutar ficheros de procesos por lotes, pasando hasta 9 parámetros junto al símbolo $.
CLS
Borra el contenido de la pantalla.
STAT
Este comando muestra información de las unidades disponibles y los ficheros, tales como tamaños, permisos o espacio libre en los dispositivos.
Para usar la funcionalidad del cambio de permisos de escritura o archivo oculto, el programa “ATTRIB” que viene con el MS-DOS debe estar copiado en el directorio del simulador.
PIP
Permite copiar y duplicar archivos, crear archivos de texto, o volcar el contenido de un archivo por la impresora.
Este comando debe ir acompañado de parámetros para funcionar, a diferencia del original, que permite cargarlo en memoria e ir ejecutando sus distintas funciones.
HELP
Es una pantalla de ayuda que nos indica los comandos disponibles.
EXIT
Abandonamos el simulador y volvemos al sistema operativo.
Nota:
En estos comandos está deshabilitado el “Ctrl+C”, que sirve para detenerlos, y se ha sustituido por la tecla “ESC”.
Las aplicaciones
Con la distribución incluyo el simulador “CPM86SIM.EXE”, los dos emuladores y software variado de CP/M-86.
El emulador elegido, el “AME86”, funciona bien con el software incluido, pero he detectado las siguientes incidencias, que en si no afectan mucho a su utilización:
WORDSTAR
Al entrar en el programa con “WS” entra solo en la opción “R – Run a program”. Con pulsar “RETURN” una vez volvemos al menú principal y el programa funciona correctamente.
En este programa no funcionan las teclas de los cursores. Esto es correcto, y en pantalla explica como hacerlo.
TURBO PASCAL
Este programa se ejecuta con “TURBO” y hasta donde lo he podido probar funciona perfectamente.
He podido compilar en memoria y disco sin problema, y todo el teclado funciona correctamente.
MBASIC
Funciona bien, pero he detectado que si hay algún carácter extraño en el listado (ASCII inferior a 32 o superior a 127) puede dejar al programa colgado al listarlo. De todas formas los programas BAS que incorpora no fallan.
DBASE II
Este programa se ejecuta con “DBASE” y funciona correctamente excepto el editor de registros, donde aparecen algunos campos incorrectos, pero es operativo.
Otros programas
Hay varios programas con utilidades y juegos que también funcionan correctamente.
De todas formas, hay que tener en cuenta que algunos programas hacen buen uso de las teclas de los cursores y demás teclas especiales, pero hay otros que hay que usar los métodos básicos del CP/M. Esto es “CTRL+C” para página abajo, “CTRL+E” para cursor arriba, etc.
La distribución del “simulador/emulador/software”
Al descomprimir el fichero en un directorio veremos que en la carpeta principal ha dejado los ficheros del simulador, del emulador y software variado de CP/M-86.
También se ha creado una carpeta llamada “SOFTWARE” con distintas carpetas donde se han guardado los ficheros de las distintas aplicaciones, o se han agrupado según tipología en caso de ficheros simples.
En esta carpeta hay una llamada “EMULADOR” que contiene los dos emuladores, por si queréis hacer pruebas con ellos.
El equipo funciona perfectamente en MS-DOS y en cualquier versión de Windows. También lo he hecho funcionar en el DOSBox sin problemas. Sus requisitos de memoria y espacio en disco son mínimos.
Ahora solo queda conseguir nuevo software en CP/M-86 y comprobar si funciona correctamente en el emulador.
Descargar el pack:
La otra opción es virtualizar el CP/M-86 en el WM-Ware o el Virtual Box de Oracle, pero lo dejamos para otro día.
Avanzo que ya lo he conseguido en el Virtual Box.
Simulador / Emulador de CP/M-86
- zup
- Amiga 2500
- Mensajes: 3013
- Registrado: 04 Sep 2009, 20:07
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Nintendo DS/3DS
- Primera consola: Nintendo GameBoy
- Ubicación: Navarra
- Gracias dadas: 86 veces
- Gracias recibidas: 359 veces
- Contactar:
Re: Simulador / Emulador de CP/M-86
Mejor usa un PCem, es más fácil hacer configuraciones concretas (8086@8Mhz con 512Kb) que en un VirtualBox. Además, se comportan mejor para experimentos con sistemas operativos minoritarios.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!
Además vendo cosas!
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 13 invitados