Contenido

Introducción:

CP/M Box es un emulador de ordenadores de la arquitectura Amstrad PCW, es decir: 8256, 8512, 9512, 9256, 9512+ y PcW10. También es capaz de emular hardware adicional, diferentes opciones y configuraciones, etc.

No emula el modelo PcW16, pues pertenece a una arquitectura distinta; este tiene su emulador propio.

La versión actual del emulador es la 1.9.2, siendo a la cual hace referencia este manual.

El objetivo es lograr una emulación lo más fiel posible a la máquina original.

Características:

Requerimientos:

Rollo legal:

Instalación y uso:

Instalación:

Este emulador no precisa de instalación alguna, simplemente basta con descomprimir los contenidos del fichero ZIP en alguna carpeta y proceder a ejecutarlo.

Adicionalmente, el programa soporta la automatización de comandos a través de la línea de comandos, siendo su sintaxis idéntica a las de las macros. Se puede utilizar para asociar extensiones de ficheros, ejecutarlo desde lanzadores externos, etc.

Snapshots:

Un fichero de snapshot es un estado completo de la máquina (incluyendo memoria, estado del hardware, contenido de discos, etc.) junto con metadatos sobre la máquina emulada.

Al arrastrarse un fichero sobre la ventana este se cargaría sin más. Si durante el soltado sobre la ventana estuviese apretada la tecla de mayúsculas, la emulación se activaría en caso de estar desactivada.

Acciones:

Un fichero de acciones es un snapshot junto con datos adicionales que describen los eventos sucedidos tras ese momento. Es útil para guardar tutoriales o partidas de forma más compacta que un video.

Al arrastrarse un fichero sobre la ventana este se cargaría sin más. Si durante el soltado sobre la ventana estuviese apretada la tecla de mayúsculas, la emulación se activaría en caso de estar desactivada.

Discos:

Un fichero de disco contiene los datos de usuario de un disquete físico, junto con información geométrica del mismo.

El emulador es capaz de cargar tanto discos en formato DSK del CPCEmu (normales y extendidos, con o sin protección) como imágenes crudas con extensión IMG.

El emulador trabaja con imágenes de disco en memoria, con la opción de volcarlas al ser desmontadas. También tiene la opción de montarlas con protección de escritura.

Al arrastrarse un fichero sobre la ventana este se montaría en la unidad A. Si durante el soltado sobre la ventana estuviese apretada la tecla control, este se insertaría en la unidad B; si estuviese apretada la tecla de mayúsculas, el emulador se reiniciaría y la emulación se activaría en caso de estar desactivada (opción interesante para discos de arranque).

Adicionalmente, el emulador permite acelerar la emulación durante las cargas de disco.

Videos:

El emulador permite la grabación de videos, grabando exactamente lo mostrado en la pantalla emulada y el sonido emitido.

Esta opción requiere Windows 7 o superior, así como de un ordenador capaz de comprimir video en tiempo real.

Teclado:

El emulador intenta mapear por defecto las teclas del PCW sobre la más cercana en posición respecto al teclado del PC. Pueden cambiarse por las que el usuario desee en las opciones de emulación, así como consultar su asignación.

Además, los cursores del PC y las teclas * y / numéricas pueden emular un joystick en caso de no tener conectado uno al PC.

Joystick:

El emulador reconoce cualquier joystick / pad que Windows reconozca, mapeando directamente el eje X, Y y los dos primeros botones hacia el joystick emulado (Cascade, Kempston, Spectravideo, DK'tronics, Electric Studio), y convirtiendo la señal a digital en caso de ser necesario.

Si se habilita la opción keypad, el joystick emulará adicionalmente las flechas del teclado numérico del PCW con los ejes, y el espacio y tab con los botones.

Ratón:

El emulador es capaz de emular un ratón de PCW (AMX, Kempston, KeyMouse, Electric Studio). Para poder manejar el puntero en el PCW emulado debemos capturar el puntero, lo cual se efectúa haciendo click con el botón derecho sobre la pantalla emulada. Para liberarlo de nuevo, basta pulsar la tecla escape.

Lápiz óptico:

El emulador es capaz de emular un lápiz óptico de PCW (Trojan, Electric Studio) usando el ratón. Las instrucciones son las mismas que en el caso anterior.

Adicionalmente existe la opción de mostrar un cursor especial sobre la pantalla para ver su posición.

Almacenamiento masivo:

El emulador es capaz de emular varios dispositivos de almacenamiento masivo (Gem, Flash Disk, uIde). Se pueden utilizar tanto imágenes crudas como ficheros HDF que incluyen información geométrica del disco.

Dado el tamaño de dichos ficheros su información no se almacena en los snapshots, sino un vínculo al fichero que lo contiene.

Adicionalmente, el emulador permite mapear un directorio sobre la unidad M virtual bajo CP/M.

Interfaz:

En modo de ventana, se disponen de los siguientes elementos:

Título:

En la parte superior de la ventana, como en cualquier otra aplicación, se encuentra la barra de título.

Esta incluye el título de la aplicación y además el nombre del disco insertado en la unidad A.

Por último, se incluyen los típicos iconos de minimizar, maximizar y cerrar la ventana, los cuales tienen el comportamiento esperado de cualquier otra aplicación, con la excepción del maximizar: pulsando sobre él se activa el modo de pantalla completa, del cual puede salirse pulsando Escape.

Menús:

Barra:

Bajo los menús tenemos la barra, la cual se divide en tres secciones:

Pantalla:

Esta sección representa la pantalla del ordenador emulado, con sus correspondientes opciones visuales.

Admite el arrastre de ficheros de snapshots, acciones y discos.

Hardware:

En esta ventana se pueden escoger las opciones hardware a emular. La aceptación de las mismas provocará un reinicio de la emulación. Las opciones se dividen en varias pestañas:

Emulación:

En esta ventana se pueden escoger las opciones del emulador. La aceptación de las mismas no provocará un reinicio. Las opciones se dividen en varias pestañas:

Uso avanzado:

Depurador:

La ventana del depurador es flotante, redimensionable y queda siempre por encima de la del emulador. Mientras esté abierta, el emulador trabaja en modo de depuración.

Al ejecutar código ésta adquiere transparencia para indicar indisponibilidad y poder ver lo que tenga debajo. Con la tecla Escape se puede detener siempre la ejecución.

Si no ejecuta código, sobre la pantalla del PCW estará marcada la posición de vídeo actual con dos líneas rojas.

La ventana consta de varias secciones:

Registros:

En esta sección se muestra el valor de los diferentes registros del Z80, en rojo si fueron modificados desde la última operación. El valor de los mismos se puede modificar de forma directa.

Además se puede ver el estado de los distintos flags. Con doble click sobre los mismos se cambia su valor.

Por último, si se está usando el modo decimal, los valores de los registros muestran sus partes altas y bajas separadas si se posa el ratón encima.

Desensamble:

Esta sección representa un desensamble de la memoria, por defecto a partir del registro PC.

Las filas en rojo indican que causarán ruptura; además, la correspondiente al valor de PC tiene fondo naranja. Con doble click sobre una fila se rellenan los datos para poner un punto de ruptura en esa dirección.

Debajo existen los siguientes botones:

Puntos de ruptura:

Esta sección permite definir puntos de ruptura. Cada uno tiene las siguientes propiedades:

En la parte de abajo se encuentran botones para añadir, eliminar y editar un punto de ruptura. Un doble click sobre uno existente también lo edita, y además pueden arrastrarse para reordenar la lista.

La expresión determina a qué direcciones debe aplicarse. Su sintaxis puede describirse como:

Notas sobre la semántica:

Ejemplos:

Otros:

Registros hardware:

Aquí se muestra el valor de algunos registros hardware; de nuevo, en rojo los que han cambiado.

Memoria:

Esta ventana representa un volcado de la memoria. El valor de cada posición puede ser cambiado escribiendo otro valor en su casilla.

Debajo existen los siguientes botones y opciones:

Aparte, mientras se está en modo de depuración se admiten ciertas instrucciones Z80 especiales:

Formato PCW:

El formato de snapshot PCW nace de la necesidad de representar todo lo necesario para la emulación (incluyendo discos) en un solo archivo y al mismo tiempo ser manipulable por el usuario avanzado de forma sencilla.

Por eso mismo cada archivo PCW no es más que un archivo ZIP, el cual contiene dentro otros archivos. De esta forma puede manipularse con cualquier programa compresor.

Dentro hay dos tipos de archivos: textuales (INI, legibles y editables con cualquier editor de texto) y volcados de datos (resto, normalmente BIN).

Siempre se hayan presentes "Config.ini" (configuración hardware del emulador), "Hardware.ini" (estado de dicho harware) y "RAM.bin" (volcado de la memoria).

Cada linea en los archivos de texto es de la forma "A=B", asignando el valor B a la propiedad A. Dentro de "Hardware.ini", los registros del Z80 son las propiedades "Z80_xxx".

Las acciones son exactamente un snapshot junto con un fichero extra que contiene los valores que han de ser leídos en los puertos, así como los correspondientes al teclado.

Macros:

El emulador tiene un pequeño intérprete de macros, las cuales consisten en la ejecución de uno o más comandos del emulador.

Estos pueden lanzarse desde la línea de comandos o bien almacenarse como macreos en la carpeta macros del emulador.

En el caso de almacenarse en la carpeta, estas constan de dos ficheros con el mismo nombre y extensiones TXT y PNG respectivamente. Al arrancar el emulador estas se enumeran y se añaden en forma de botones al emulador, en la barra superior, y se pueden invocar apretando dicho botón.

El lenguaje de macros está compuesto por tokens (comandos o parámetros de los mismos) separados por blancos (espacios, tabuladores, retornos de carro). En el caso que un parámetro contenga espacios, puede rodearse de comillas para no ser fragmentado en tokens.

El lenguaje es muy simple: una sucesión de comandos separados entre sí, cada uno seguido de sus parámetros igualmente separados. Cada comando tiene una forma corta (un carácter, menos escritura) y una larga (una palabra, más intuitiva), pudiendo emplearse ambas de forma indistinta.

Los comandos no distinguen mayúsculas de minúsculas. En forma corta los comandos pueden de forma opcional estar precedidos de - o /, por compatibilidad.

La ejecución de dichos comandos es asíncrona a la emulación en caso de estar activa, salvo que se indique lo contrario.

Los comandos son:

CortaLargaDescripción
8EXITSin parámetros. Salir del emulador.
9WAITKSin parámetros. Espera a que el buffer de teclado quede vacío.
@EXECToma cinco parámetros. El primero es el valor del registro PC del Z80, los otros cuatro la configuración de memoria (puertos $F0-$F3 del GA).
RRESETToma un parámetro opcional. Reinicia el emulador, y en caso de haber un parámetro especifica un fichero con la definición hardware a hacer efectiva, o hace un hard reset si es *.
MMAPToma un parámetro. Mapea la unidad M emulada, el parámetro especifica la carpeta a mapear o . para desactivarlo.
ADISKAToma un parámetro. Si el valor es . entonces extrae el disco de la unidad A, en caso contrario inserta el fichero imagen de disco especificada en el parámetro. Obsoleto.
BDISKBIgual que el caso anterior, pero para la unidad B.
DDISKSimilar a los dos casos anteriores, pero toma dos parámetros. El primero es la unidad (A o B), el segundo el fichero especificado o bien si es . extrae el actual.
ESYNCSin parámetros. "Sincroniza" estado (detiene el emulador y lo pone a velocidad normal). Obsoleto.
TTYPEToma un parámetro. Añade el parámetro como cadena de caracteres al buffer de teclado. Admite el carácter # como escape para caracteres, en formato de dos dígitos hexadecimales.
WWAITToma un parámetro. Esperar el número determinado por el mismo de milisegundos. En caso de estar detenida la emulación, la inicia.
FFULLToma un parámetro de forma opcional. Este puede ser OFF o 0 para modo ventana, ON o 1 para modo pantalla completa, ninguno para alternar.
GSPEEDToma un parámetro de forma opcional. OFF o 0 para modo normal, ON o 1 para el modo rápido, ninguno para alternar.
OTURNToma un parámetro de forma opcional. OFF o 0 para emulación detenida, ON o 1 para iniciada, ninguno para alternar.
XEXTERNALToma dos parámetros. Ejecuta el programa externo indicado por el primero con los parámetros indicados en el segundo.
PPOKEToma dos parámetros. Escribe en la dirección de memoria absoluta indicada por el primero el valor indicado por el segundo. Ambos son números en hexadecimal.
QDEBUGSin parámetros. Abre el debugger.
SSNAPLOADToma un parámetro. Carga el fichero de snapshot indicado por él.
USNAPSAVEIgual que el caso anterior, pero grabando.
YBINLOADToma dos parámetros. Carga en la dirección de memoria absoluta indicada por el primero el fichero binario indicada por el segundo.
ZBINSAVEIgual que el caso anterior, pero grabando.

Notas:

F.A.Q.:

Errores comunes:

Más información:

Contacto:

Agradecimientos:


© 2011- HabiSoft.