                         APF_EMUW  versión 2.0.1

APF_EMUW emula en un PC un ordenador APF Imagination Machine.

Requerimientos:
===============

Windows 95,98,ME,NT,2000 o XP.
La velocidad del programa depende de las características del PC, de
los recursos que se usen y de la frecuencia con que haya que actualizar 
la pantalla.
El emulador funciona a velocidad similar a la del APF en un Pentium a 133
MHz si la pantalla tiene 256 colores como máximo y no se utiliza el tamaño
doble en el emulador.
Es aconsejable una tarjeta de sonido. El sonido a través del altavoz es 
bastante desagradable (además no puede funcionar en Windows NT,2000,XP).
Es necesaria la tarjeta de sonido si se quiere grabar audio en las 
imágenes de cinta y si se quiere oir el audio grabado en las mismas.
Es necesario un teclado normal tipo AT o superior.


Instalación:
============

Copiar el fichero Apf_emuw.exe en una carpeta del ordenador donde se puedan
crear y modificar ficheros. Si se quiere, puede crearse un acceso directo 
a este fichero en el menú inicio o en el escritorio. Pueden copiarse también 
en esta carpeta los ficheros de ejemplo.


Lo que se emula:
================

El ordenador emulado tiene aparentemente las características siguientes:

CPU M6800.

Controlador de video M6847.

1 Kb de RAM en la dirección 0000-03ff , visible también en las
direcciones 0400-1fff. Esta es la memoria accesible por el controlador
de video.

2 Kb de ROM, en la dirección 4000-47ff. Se ve también en las direcciones
4800-5fff y e000-ffff.

4 Kb de ROM en la dirección 6800-77ff. y 8Kb de ROM en 8000-9fff, que
corresponderían a un cartucho insertable.

8 Kb de RAM en la dirección a000-bfff, ampliable a 16K (hasta dfff).

2 unidades de diskette de 68 Kb cada una.

Una unidad de Cassette.

Interface serie.

Altavoz.

Un teclado QWERTY

Dos teclados auxiliares, cada uno con 12 teclas y una especie de
joystick.


Como se emula:
==============

De la CPU se emulan sólo las instrucciones documentadas, aunque sería
fácil añadirle las no documentadas, que según mi conocimiento son
duplicadas de las otras, con la única excepción de STAa,inmediato, que
tiene una utilidad muy dudosa. Tampoco se emulan las instrucciones 3E
(WAI) y 3F (SWI), que con la ROM actual no sirven para nada.

Del controlador de video solo se emulan los modos que pueden usarse en
el APF, es decir, el modo de texto, el modo gráfico monocromo de 256x192, 
que en realidad funciona como un modo de texto con caracteres programables 
y el modo gráfico multicolor de 128x192.

Los diskettes están sustituidos por imágenes de los mismos en ficheros
de 68 Kb seleccionables, con la extensión .APD. El funcionamiento del
controlador se ha deducido de la ROM del BASIC. No se emula la función
de formatear pista, que simplemente se ignora.

El cassette está representado por un fichero seleccionable de longitud
variable. Existen dos modalidades:
Una con extensión .APT. Sólo tiene la posibilidad de grabar del modo que 
lo hace el BASIC: un ciclo de 500 microsegundos para representar un 0 y 
uno de 1 milisegundo para un 1. La imagen de la cinta no es más que la 
sucesión de los bits grabados.
Una con extensión .APW. Permite grabar en formatos especiales y almacenar 
audio. Es un fichero de audio muestreado a 11025 Hz 8 bits mono sin signo,
sin ningún tipo de cabecera. El bit 1 se dedica a guardar el estado de la
cabeza de grabación. Como es natural estos ficheros son mucho más grandes
que los del otro formato.

La interface serie se emula con dos ficheros. Uno en el que se graba la
salida y otro del que se lee la entrada. Puede utilizarse el fichero de
entrada para cargar un programa de un fichero de disco (con PRINT=2). En 
este caso es conveniente poner una o varias líneas en blanco al principio
del fichero y escribir al final PRINT=0 para que el control vuelva al
teclado.

El teclado y los dos teclados auxiliares, así como las teclas del
cassette se hacen corresponder a teclas de un teclado estándar de AT. La
equivalencia depende del idioma del teclado tal como se define en el panel 
de control. Si el teclado es Español Tradicional o Inglés USA la equivalencia
debería ser la que se ve en el fichero TECLADO. Si el teclado está 
configurado de otra manera o si se quieren asignar otras teclas, habrá que 
crear un fichero llamado APF_EMU.KYS con las teclas que se quieran cambiar.
En cada línea aparecerán dos números. En primer lugar el valor producido por
Windows al apretar la tecla (puede verse entre las dos N) y en segundo lugar
el valor correspondiente del teclado del APF. Pueden exportarse los valores 
actuales con la opción "Exportar teclas" del submenú "Utilidades" del menú
que aparece con el botón derecho del ratón, y luego editar las líneas 
necesarias.
En cualquier caso, hay que tener activado el Bloqueo Numérico para no tener 
valores repetidos en las teclas del teclado numérico.
Algunas teclas tienen funciones especiales:
F12 activa los botones.
F11 corresponde a Audio Record en el cassette.
/ gris corresponde a Rewind en el cassette.
* gris corresponde a Play en el cassette.
- gris corresponde a Fast Forward en el cassette.
Espero que estas teclas tengan valores constantes independientes de la definición
del teclado. 


Opciones del menú.
=================

Con la tecla F12 se sale del emulador y se activan los botones de la ventana 
permitiendo:

Elegir ficheros con imágenes de Disco y Cinta.
Desactivar/Activar la ROM insertada en la zona del cartucho. Sirve
para ejecutar el Rocket Patrol.
Cargar en la memoria del APF un fichero en formato .S19.
Elegir ficheros correspondientes a la entrada y salida de la Interface serie.
Conmutar entre la imagen de la pantalla a tamaño doble o a tamaño sencillo.
Elegir una de las tres posibilidades de sonido.
 -Sin sonido
 -Por el altavoz (disponible sólo en Windows 95,98,ME)
 -Por la tarjeta de sonido.
Continuar con el emulador.
Hacer un Reset.
Apagar el APF (salir del emulador).

Todas estas opciones y algunas más se tienen en un menú que aparece pulsando 
el botón secundario del ratón.


Configuración:
==============

El programa no escribe nada en el registro. La configuración se guarda en el 
directorio Windows en un fichero llamado apf_emuw.ini.
También se lee la disposición del teclado del fichero apf_emu.kys, ya mencionado,
en el mismo directorio del programa.


Agradecimiento:

Agradezco a Larry Greenfield toda la ayuda que me ha prestado y me ha ofrecido.
Igualmente el que me haya animado a hacer público el emulador y el brindarse 
a presentarlo en su página Web.
Brian Weith también me ha ofrecido información sobre el funcionamiento del APF.
También quiero agraceder los comentarios que me han hecho diversas personas sobre 
la anterior versión del emulador y su funcionamiento.

Me gustaría hacer este emulador lo más compatible posible con un APF
real, por lo menos en cuanto se refiere al software existente, así que
agradecería cualquier programa que funcione en APF. Por ejemplo me
vendría bien un fichero .WAV generado a partir de un programa en cinta.
con 11 KHz 8bits es suficiente.


Agradecería cualquier comentario o sugerencia sobre el emulador.



Enrique Collado

e-mail: collado@ebd.csic.es
