
                            
                        
                                      
                                 
                                       
                                               
                                
                                

                                                                      v1.5


                                  D O C U M E N T A C I O N


                                  (c) Marco Vieth, May 1998
                        Traducido por Gerardo Briseo, Junio de 1998




-------------------------------------------------------------------------------




Tabla de Contenidos:

       1.  Introduccin
           1.1  Consejos sobre como se debera leer esta documentacin
           1.2  Copyright, garantas
           1.3  Qu es un CPC?
           1.4  Qu cosas te ofrece CPCEMU?

       2.  Instalacin de CPCEMU
           2.1  Ficheros que contiene el paquete CPCEMU
           2.2  Requisitos del sistema e instalacin
           2.3  Indicaciones sobre memoria y tarjetas de sonido
             2.3.1  Usando Memoria EMS
             2.3.2  Definiendo el entorno BLASTER
             2.3.3  Definiendo el entorno ULTRASND

       3.  Diferencias entre el CPC y CPCEMU
           3.1  Teclado
           3.2  Cargando Programas, Mens
             3.2.1  Cargando desde Disco, Mens
                    - El Men de Insercin de Discos
                    - El Men de Seleccin de Ficheros
             3.2.2  Cargando y guardando con el casete
             3.2.3  Cargando y guardando snapshots

       4.  Cambiando la Configuracin
           4.1  El men de configuracin
           4.2  El fichero de configuracin
           4.3  Parmetros en lnea de comandos

       5.  Transferencia de datos CPC <-> PC
           5.1  El disco como intermediario
             5.1.1  El programa para transferencia de discos CPCTRANS
             5.1.2  La utilidad de formateo y copia 22DISK por SYDEX
           5.2  El interface paralelo
             - El adaptador paralelo
           5.3  El interface serie
           5.4  Otras posibilidades

       6.  Fuentes de Suministro, Soporte y Reconocimientos
           6.1  Dnde conseguir software para el CPC?
           6.2  Noticias, intercambio de experiencias
           6.3  Si tienes preguntas o sugerencias
           6.4  Otros emuladores del Amstrad CPC
           6.5  Planes para futuras versiones de CPCEMU
           6.6  Reconocimientos
           6.7  Marcas registradas

       7.  Informacin Interna de CPCEMU
           "Caja Negra", con su propia tabla de contenidos


       Apndice:

       A.1  Glosario
       A.2  Bibliografa
       A.3  Indice


---------------------------





1.  Introduccin



Bienvenido al mundo de los emuladores!

Cmo?! Que quieres saber qu es CPCEMU, y qu es lo que puedes hacer
con este extrao programa que escribe en amarillo sobre un fondo azul y
que muestra "Syntax Error" despus de cada entrada?


Para evitarte largas bsquedas aqu te lo pongo:
        CPCEMU emula un Amstrad CPC 464, 664  6128 con muchas
        extensiones. En otras palabras, el programa imita el
        comportamiento de los ordenadores Amstrad ms antiguos
        en tu ms reciente PC.

Con qu propsito?
Veamos, si an no lo sabes me temo que CPCEMU no te har falta para nada.

Algunas razones:
        - nostalga (ah, que agradable era mi viejo CPC ...)
        - mejores prestaciones comparado con el original
        - mejor entorno para el desarrolo de programas
        - para jugar
        - trabajo (s, un CPC es suficiente para un simple tratamiento
          de textos)
        - [                                  ] <- aade otras razones por
                                                  tu cuenta.




1.1  Consejos sobre como se debera leer esta documentacin
===========================================================


  Lo primero sera darse una vuelta por la ayuda en lnea, luego, si
  necesitas profundizar o informacin ms precisa, contina leyendo...


  He intentado organizar la documentacin de un modo ordenado. Si an
  tienes dudas (despus de haberla ledo varias veces!), puedes ponerte
  en contacto conmigo. Por supuesto puedes hacerlo an cuando tengas
  todo perfectamente claro. Mira el captulo 6 (Fuentes, Soporte, ...)
  para ver la manera de contactar.

  En el captulo 1 (Introduccin) describo la mejor forma de leer esta
  documentacin, quin posee el copyright y algunas cosas del CPC en
  general.

  En el captulo 2 (Instalacin) por fin empieza todo. Se te indicar
  como instalar y ejecutar CPCEMU.

  El captulo 3 (Diferencias entre el CPC y CPCEMU) trata las
  caractersticas del emulador que deberas conocer si ya ests
  familiarizado con un CPC real. Fundamentalmente describo el teclado,
  los discos, las cintas y los snapshots.

  En el captulo 4 (Cambiando la Configuracin) describo como adaptar
  CPCEMU a tus necesidades. Puede que para entonces ya seas capaz de
  ejecutar tus programas favoritos.

  En el captulo 5 (Transferencia de datos CPC <-> PC) descubrirs como
  traspasar tus antiguos programas para el CPC al PC. Ms adelante se
  describen las utilidades que acompaan a CPCEMU.

  En el captulo 6 (Fuentes, Soporte y Reconocimientos) se te indicar
  cmo conseguir la ltima versin de CPCEMU y a quin acudir si tienes
  alguna pregunta.

  El captulo 7 (Informacin Interna de CPCEMU) es slo para expertos. La
  parte "oficial" del manual de usuario finaliza en el captulo anterior.
  Aqu describo como va uno de aqu para alla programando un emulador, y
  qu es necesario saber para realizarlo. Tambin se explica el men de
  depuracin, que te permite analizar el procesador y la memoria en
  *cualquier* momento durante la emulacin. Los usuarios ocasionales
  deberan saltarse este captulo, por lo menos en la primera lectura.

  El Apndice A.1 contiene un glosario con descripciones de los trminos
  tcnicos ms importantes. El Apendice A.2 es la bibliografa y el A.3
  el ndice.



1.2  Copyright, Garantas
=========================

  CPCEMU ha sido desarrollado por (ver tambin la seccin 6.3):

         Marco Vieth
         Auf dem Uekern 4
         D-33165 Lichtenau
         Alemania


  CPCEMU es Freeware, lo que significa que puedes pasar el programa a
  amigos y conocidos *gratis*. Los mantenedores de archivos tienen
  permitido incluir CPCEMU en sus colecciones para "downloading". Los
  distribuidores de shareware tienen permitido distribuir CPCEMU,
  siempre y cuando slo cobren una pequea cantidad por cada copia.
  En comparacin al Dominio Pblico, Freeware no significa que es
  "gratuito" y puedes hacer lo que te de la gana con el. Yo sigo
  manteniendo el copyright.

  Tanto el software como la documentacin se entregan "como tal", sin
  ningn tipo de garanta.


  Aunque este programa es freeware, desde luego aceptara cualquier clase
  de apoyo, tcnico o financiero.
  Para ms detalles mira el captulo 6.



1.3  Qu es un CPC?
===================

  Si ya sabes lo que es un CPC sltate esta seccin y contina leyendo
  la 1.4.




  Sigues aqu?

  No quiero meterme en detalles tcnicos ahora, en cambio voy a darte una
  visin retrospectiva para que puedas comprender mejor qu es un CPC.

  CPC es la abreviatura de Colour Personal Computer (Ordenador Personal
  en Color). Los ordenadores de este tipo se empezaron a fabricar en 1984
  por la compaa britnica Amstrad y se vendieron con distinto nombre
  en otros pases.
  Fu la poca de los ordenadores domsticos; Commodore C64, Sinclair
  Spectrum, Atari 800XL, ... entonces se desvel el CPC 464. Tena tanta
  RAM como el Commodore C64 (en concreto 64 KB), una grabadora de casetes
  incorporada y el Locomotive BASIC 1.0. Le sigui el CPC 664, que tena
  incorporada una unidad de disco de 3" y un Locomotive BASIC 1.1
  ligeramente ampliado. El CPC 6128 sali en 1985, con 128 KB de RAM y
  prcticamente las mismas caractersticas que el CPC 664. Los discos de
  3" eran extremadamente caros, pero ms fiables que los discos de 5.25"
  (casi tan fiables como los de 3.5" actuales), y eran notablemente ms
  rpidos en contraposicin a la velocidad de la cinta, muy distinto a
  lo que pasaba con el C64 ...
  Los tres modelos se vendan con monitor en color o fsforo verde, el
  cual llevaba incorporada la fuente de alimentacin. Ms adelante se
  introdujeron dos o tres modelos ms (el CPC+ por ejemplo). El BASIC
  tena casi 178 intrucciones potentes y rpidas. Se poda programar
  grficos, sonido e incluso control de interrupciones, todo en BASIC
  sin utilizar PEEKs o POKEs. El suministro de software se increment
  espectacularmente segn pasaron los aos.




1.4  Qu cosas te ofrece CPCEMU?
=================================

  La siguiente es una visin general de lo que te ofrece CPCEMU.
  En las siguientes secciones de la documentacin se profundizar ms.


  Grficos del CPC en 3 modos de pantalla diferentes (X x Y x COLORES):
       Modo 0: 180x200x16
       Modo 1: 320x200x4
       Modo 2: 640x200x2
       (Con BIOS VESA estos grficos pueden visualizarse en resoluciones
        que van desde 640x400x16 hasta 1280x1024x16, dependiendo del
        monitor y la tarjeta VGA que uses.)

  Sonido: por el altavoz interno del PC, la Soundblaster (3 canales + ruido,
       en estreo), la Soundblaster (3 canales con sonido FM, en estreo)
       o por la Gravis UltraSound (3 canales + ruido, en estreo)

  Memoria:
       ROM: OS, BASIC, AMSDOS, hasta 13 ROMs adicionales (con EMS)
       RAM: 64KB, 128KB, hasta 576KB de RAM compatibles con Dk'tronics
            (con EMS)

  Disco: Imgenes de disco especiales, con extensin .DSK

  Casete: Ficheros normales bajo DOS, p.ej. ficheros BASIC y binarios del
       CPC con extensiones .BAS y .BIN respectivamente.

  Snapshots: Puedes realizar volcados de memoria de programas que se esten
       ejecutando para poder continuar con ellos ms tarde. Los Snapshots
       llevan extensin .SNA .

  Velocidad: En un 386/33 con memoria EMS, CPCEMU es ms rpido que el
       original. Un modo de tiempo real permite ralentizar la emulacin
       a la velocidad exacta del CPC. Este modo de tiempo real funciona
       bien en un 486DX2/66.




2.  Instalacin de CPCEMU


En este captulo aprenders como instalar y ejecutar CPCEMU. La seccin
2.3 expone algunas razones por las que se debera usar memoria EMS y
explica como configurar el entorno de la Soundblaster. Ms adelante,
en el captulo 4 (Cambiando la Configuracin), se describe la instalacin
completa definida por el usuario junto al fichero de configuracin



2.1  Ficheros que contiene el paquete CPCEMU
============================================

  Tienes en tu poder el paquete CPCEMUxx.xxx, el cual contiene los
  siguientes ficheros:
  (He puesto los directorios entre parntesis, puesto que ese ser el
  lugar donde se encontrarn los ficheros despus de la instalacin.)

  COPYMATE.ROM   ROM con un programa para copia (ROM)
  CPC464.BAT     fichero de arranque para el CPC 464
  CPC464.ROM     ROM (firmware+BASIC) de un CPC 464 (ROM)
  CPC664.BAT     idem, para el CPC 664
  CPC664.ROM     (ROM)
  CPC6128.BAT    idem, para el CPC 6128
  CPC6128.ROM    (ROM)
  CPC6128P.BAT   idem, para el CPC 6128 plus
  CPCADOS.ROM    AMSDOS para todos los CPCs (ROM)
  CPCEMU.CFG     fichero de configuracin para todos los CPCs (o CPCEMU0.CFG)
  CPCEMU.DAT     fichero de datos de CPCEMU
  CPCEMU.DBF     fichero de pokes
  CPCEMU.EXE     el emulador
  CPCEMU.HLP     la ayuda en lnea, prueba a pulsar F1...
  CPCEMU.MSG     el fichero de mensajes (necesario)
  CPCEMU_D.TXT   documentacin en Alemn
  CPCEMU_E.TXT   documentacin en Ingls
  CPCEMU_F.TXT   documentacin en Francs
  CPCEMU_S.TXT   documentacin en Espaol (este fichero)
  CPCPARA.BAS    programa en Locomotive-BASIC para el adaptador paralelo
                 (UTILITY)
  CPCPD1.DSK     imagen de disco con algunos programas de Dominio Pblico
                 de ejemplo (DISC)
  CPCREC.BAS     programa en Locomotive-BASIC para recibir programas
                 (UTILITY)
  CPCT0.BAT      fichero batch para CPCTRANS.EXE (ejemplo) (UTILITY)
  CPCTRANS.CFG   fichero de configuracin para CPCTRANS (UTILITY)
  CPCTRANS.EXE   programa para transferir imgenes de disco (UTILITY)
  CPMDISKS.DEF   definiciones de formato para 22DISK (UTILITY)
  FILE_ID.DIZ    descripcin de archivo para BBSes
  INSTALL.BAT    fichero batch para la instalacin
  KCC.BAT        fichero de arranque para el KC compact
  PCPARA.EXE     parte PC del adaptador paralelo (UTILITY)
  README_D.TXT   Readme en Alemn
  README_E.TXT   Readme en Ingls
  README_F.TXT   Readme en Francs
  README_S.TXT   Readme en Espaol
  ROMGET.BAS     programa en Locomotive-BASIC para guardar ROMs (UTILITY)
  SNA2GIF.EXE    un conversor de snapshot a GIF: consigue las pantallas
                 de tu CPC...


  Se incluyen las ROMs de Amstrad originales. El Firmware tiene copyright
  de Locomotive Software; el BASIC tiene copyright de Amstrad. Amstrad y
  Locomotive me han dado permiso para distribuir las ROMs con CPCEMU.



2.2  Requisitos del sistema e instalacin
=========================================

  Necesitars como mnimo (no hay lmite superior por supuesto)
  - PC AT 386 con grficos VGA
  - MS-DOS, posiblemente con EMS,  o
    Novell DOS (DRDOS)  o
    Sesin DOS en Windows 95 (o 3.1)  o
    Sesin DOS en OS/2 2.x.
  - Si quieres ejecutar programas desde archivos ZIP, para poder
    extraerlos necesitars el programa PKUNZIP disponible en algn
    directorio que este en el path de bsqueda del DOS.


  La instalacin es muy simple:
  Copia el archivo CPCEMUxx.ZIP en tu disco duro y descomprmelo
  con el siguiente comando 'PKUNZIP CPCEMUxx.ZIP'. Ejecuta INSTALL.BAT
  para crear los subdirectorios necesarios. Arranca CPC464.BAT,
  CPC664.BAT o CPC6128.BAT dependiendo del CPC que quieras emular.
  Cuando lo ejecutes por primera debers seleccionar tu idioma, pulsando
  "0" se elige Ingls, para elegir otro pulsa otro distinto.
  (La configuracin se guarda en el directorio TMP como CPCEMU.CFG.)
  Despus de mostrarse la configuracin, aparecer la conocida pantalla
  de inicio del CPC en amarillo y azul.
  Puedes salir del emulador con F12 y ver la ayuda en lnea con F1.
  Lo mejor es que lo pruebes ahora mismo antes de seguir leyendo ...




  Si se produce algn error durante la configuracin se te llevar al
  llamado men de depuracin, del cual puedes salir pulsando 'q' <INTRO>.
  En tal caso es til, algunas veces, redirigir los mensajes de
  inicializacin a un fichero, p.ej. con el comando 'CPCEMU > INIT.TXT'.
  Con esto puedes analizar el problema ms adelante.



2.3  Indicaciones sobre memoria y tarjetas de sonido
====================================================

  Lo que viene a continuacin te ayudar si deseas una emulacin
  especialmente rpida, o si tu tarjeta de sonido no es detectada
  correctamente.
  Si usas Windows 95 sin configuraciones especiales esto no debe
  preocuparte. Windows 95 suministra EMS en las sesiones DOS, y
  define el entorno BLASTER automticamente si tu tarjeta de sonido
  es una Soundblaster.


  2.3.1  Usando Memoria EMS
  -------------------------

    Es aconsejable tener EMS por hardware o emulada en tu PC (EMS=Expanded
    Memory System, que significa Sistema de Memoria Expandida). Esto
    incrementa la velocidad de la emulacin de manera significativa,
    en particular en el BASIC. El EMS simulado es demasiado lento.
    Todo lo que necesitas es un EMM (Expanded Memory Manager, que
    significa Gestor de Memoria Expandida) que soporte el estndar
    LIM 4.0 (LIM EMS 4.0).

    Si es posible usar EMS aparecer un contador de memoria
    'EMS xxx Bytes ok.' durante la inicializacin.
    De lo contrario vers un "Sorry, using conventional memory"
    ("Lo siento, usando memoria convencional").

    Ejemplo bajo OS/2 2.x (valores de configuracin para la sesin):
        EMS_FRAME_LOCATION = auto
        EMS_HIGH_OS_MAP_REGION = 32     (o ms)
        EMS_LOW_OS_MAP_REGION = 0       (o ms)

    Ejample bajo DOS en el fichero CONFIG.SYS:
        DEVICE=C:\DOS\HIMEM.SYS
        DEVICE=C:\DOS\EMM386.EXE 1024
        ...






  2.3.2  Definiendo el entorno BLASTER
  ------------------------------------

    Para poder escuchar sonido por la Soundblaster debes definir la
    variable de entorno BLASTER adecuadamente. Bien usando el programa
    'SET-ENV.EXE' (o 'SBTEST.EXE') includo con tu tarjeta o modificando
    el AUTOEXEC.BAT directamente. En el AUTOEXEC.BAT deberas tener una
    lnea similar a la siguiente:
        SET BLASTER=A220 I7 D1 T3

    Donde:
      A especifica la direccin base (0x220)
      I especifica la IRQ (7)
      D especifica el canal DMA (1)
      T especifica el tipo de tarjeta de sonido:
          1 : Soundblaster 1.0/1.5
          2 : Soundblaster Pro
          3 : Soundblaster 2.0/2.5
          4 : Soundblaster Pro 3/Pro 4.0
          5 : Soundblaster Pro (Microchannel)
          6 : Soundblaster 16

    Para las versiones 2,4,5 & 6 se activa el sonido estreo.

    Hay algunos parmetros ms que se ignoran:
      H especifica el canal DMA de 16 bits para tarjetas de 16 bits (5)
      M especifica la direccin base del mixer de la soundblaster  (224)
      P especifica la direccin del puerto para el MIDI (330)



    Si no escuchas sonido prueba a usar A388 (en lugar de A220). Esto
    funciona en la tarjeta Media Vision Pro Audio Spectrum 16 y puede
    que en otras tarjetas con emulacin de SB. Tambin podra funcionar
    en una tarjeta Adlib (Joe Cotroneo)




  2.3.3  Definiendo el entorno ULTRASND
  -------------------------------------

    Para tener sonido en tu GUS (Gravis Ultrasound Classic/ MAX/ACE)
    debes tener definida la variable de entorno ULTRASND.

    Tu fichero AUTOEXEC.BAT debera contener la lnea siguiente:
      SET ULTRASND=220,1,1,11,7

    Donde el significado de los nmeros es (en el orden mostrado):

        220 es la direccin base (0x220)
          1 es el canal DMA de la GUS
          1 es el canal DMA de la SoundBlaster
         11 es la IRQ de la GUS 
          7 es la IRQ de la SoundBlaster

    Lo ms importante son la direccin base y la IRQ de la GUS. El resto
    de valores deben especificarse para que la emulacin funcione
    correctamante.




3.  Diferencias entre el CPC y CPCEMU


En este captulo se describen aquellas caractersticas que diferencan a
CPCEMU de un CPC real. La seccin siguiente explicar qu teclas tienen
un cometido especial durante la emulacin, principalmente las teclas de
funcin. Despus se te indicar como cargar desde disco o casete.



3.1  Teclado
============

  Puede que ya hayas notado que las teclas de funcin del PC no tienen
  la misma disposicin que las del CPC. Esto provoca una salida extraa
  que describo ms abajo. Tambin puede que lleves horas buscando la
  tecla COPY...
  Todas las teclas del CPC estn emuladas de alguna forma, puedes estar
  seguro de ello. Aqu se desvelan todos los secretos al respecto:

  - ALT, ALTgr : COPY en el CPC

  - Tecla de PAUSA : detiene el PC hasta que se vuelve a pulsar.
    Si las teclas de funcin del PC dejan de responder es porque
    habrs activado la tecla de PAUSA.

  - Teclado numrico : Dependiendo del estado de "Bloq Num" el teclado
    numrico funciona de distinta forma. Con "Bloq Num" activado el
    teclado numrico representa las teclas de funcin del CPC, de lo
    contrario emular el joystick 0. Si quieres utilizar un joystick
    de PC analgico tendrs que calibrarlo primero. (Ver captulo 4 -
    Cambiando la Configuracin).

  Para completar:
  - Av Pg/Re Pg: Mueve la pantalla entera del CPC.
    (No me preguntes con qu propsito.)

  Y, por supuesto, las teclas de funcin.
  F1  : Tecla de Ayuda en Lnea. Podra ser la tecla ms importante al
        principio.
  F2  : Cambia entre la pantalla del CPC (visin normal) y la pantalla de
        mensajes (la que tiene un borde rojo). Esta ltima pantalla puede
        mostrar mensajes de control.
  F3  : Inserta un disco, ver seccin 3.2.1
  F4  : Activa y desactiva el sonido
  F5  : Carga un snapshot (volcado de memoria), ver seccin 3.2.3
  F6  : Guarda un snapshot, ver seccin 3.2.3
  F7  : Men de configuracin, ver seccin 4.1
  F8 :  Reset de hard, acta como el botn de reset en un CPC (o apagar
        el CPC y volver a encenderlo). Usa esto si CTRL+MAYS+ESC deja
        de funcionar.
  F9  : Permite/desactiva actualizacin de paleta.
  F10 : Men de depuracin, explicado en el captulo 7. Si entras por
        accidente en este men pulsa 'r' para R)un (ejecutar) o 'q'
        para Q)uit (salir)
  F11 : Reservada para uso prximo
  F12 : Salir del emulador




3.2  Cargando Programas, Mens
==============================

  En esta seccin aprenders como cargar programas desde disco, casete o
  snapshots. Obviamente se aplica lo mismo en el caso de guardar. Tambin
  se describe como usar el men.



  3.2.1  Cargando desde Disco, Mens
  ----------------------------------

    En circunstancias normales el AMSDOS (DOS de Amstrad) est activado,
    y todas las instrucciones para trabajo con ficheros usan el disco.
    No hace falta que insertes un disco del CPC real en la unidad del PC
    cada vez que accedas a un fichero (eso sin tener en cuenta que,
    posiblemente, todos tus discos del CPC son de 3").
    Para conseguir mayor velocidad se copia el contenido de un disco del
    CPC a la conocida como imagen de disco. Este fichero puede encontrarse
    en cualquier parte del disco duro (o en un disquete de alta densidad).

    Aqu tienes algunas instrucciones BASIC del AMSDOS:
    - CAT <INTRO> : visualiza el catlogo

    - Con 'RUN"<nombre de fichero>"'  se carga y arranca un programa.
      Pueden omitirse las comillas finales. Esta instruccin es til para
      los programas BASIC que tienen extensin .BAS, y en muchos casos
      para programas binarios con extensin .BIN .

      Un modo simple de ejecutar un programa es:
      1. Meter el nombre del fichero, p.ej.  'disc' *sin* pulsar <INTRO>
      2. Mantn pulsada la tecla CTRL y pulsa cursor-izquierda (una vez
         hecho esto el cursor debe haberse movido a la primera columna)
      3. Con la tecla CTRL an pulsada dale a la tecla INTRO que est en
         el teclado numrico (ahora debe aparecer RUN"disc y el programa
         deber ejecutarse)

    - LOAD"<nombre de fichero>" carga un programa pero sin arrancarlo.
      Puedes inspeccionar los programas en BASIC con LIST y ejecutarlos
      con RUN. Normalmente los programas binarios no se cargarn con
      LOAD, se puede intentar usar la instruccin MEMORY primero,
      p.ej. 'MEMORY &1fff'.

    - SAVE"<nombre de fichero>" guarda un programa BASIC. Para programas
      binarios hay que especificar algunos parmetros ms, p.ej.
      'SAVE"<nombrefichero>",b,&c000,&4000' guardar el contenido de la
      pantalla.

    - MERGE"<nombre de fichero>" es otra posibilidad. Combina un programa
      BASIC con otro que ya este en memoria en ese momento.


    Algunas instrucciones especiales del AMSDOS se introducen
    precedindolas del carcter "|":
    - |A, |B para seleccionar la unidad (se puede conseguir lo mismo
      con |DRIVE,0  1)
    - |DIR,"<comodn nombre de fichero>" para ver el directorio.
      Nota importante: Se debe usar lo siguiente en un CPC 464:
           a$="<comodn nombre de fichero>" : |DIR,@a$
    - |ERA,"<nombre de fichero>" para borrar un fichero.
      Nota importante: Se debe usar lo siguiente en un CPC 464:
           a$="<nombre de fichero>" : |ERA,@a$
    - |REN,"<nombre nuevo>","<nombre antiguo>" para renombrar un fichero.
      Nota importante: Se debe usar lo siguiente en un CPC 464:
           a$="<nombre nuevo>" : b$="<nombre antiguo>" : |REN,@a$,@b$
    - |TAPE  para activar el casete. Se explica en la siguiente seccin.
    - |DISC  para volver al disco
    Hay algunas instrucciones ms pero no son tan importantes.



    El Men de Insercin de Discos
    ------------------------------

    Hasta ahora slo podas usar un disco, el que estaba ya "metido" en
    la unidad. Para insertar otro disco tan solo debes pulsar F3 y
    aparecer el siguiente men:

                     Insertar Disco
                     Nmero de Unidad                0
                     Seleccionar Cara                0
                     Proteccin contra Escritura     0
                     Autoarranque                    1

    Con las teclas de cursor <arriba/abajo> puedes seleccionar una lnea.
    Tambin puedes realizar esto pulsando letras (para volver con <SUPR>).
    Para cambiar los nmeros usa las teclas de cursor <izquierda/derecha>
    o mediante introduccin directa de dgitos.
    Con <INTRO> en cualquier lnea (p.ej. la primera) se aceptan los
    cambios. Para descartarlos pulsa <ESC>.
    "Nmero de Unidad" es la unidad deseada (0=A, 1=B); "Seleccionar Cara"
    es para cambiar de cara en los discos de doble cara, no tiene ningn
    efecto cuando se usa en discos de simple cara.
    Con "Proteccin contra Escritura" se puede marcar un disco como
    protegido contra escritura. (0=No, 1=Si, protegido contra escritura).
    Si "Autoarranque" est activado, se ejecuta automticamente el primer
    programa BASIC que haya en el disco nada ms insertarlo (como
    alternativa: DISC.BAS).



    El Men de Seleccin de Ficheros
    --------------------------------

    Pulsa <INTRO> y aparecer el directorio de la unidad de disco.
    Selecciona un nuevo disco de la forma descrita ms arriba.

    Si ya hay un disco metido dentro de la unidad no hace falta que lo
    saques como hay que hacer con el real. Esto se hace automticamente.
    En la parte baja de la pantalla se muestra este disco.

    Vers como mximo 15 ficheros, en caso de haber ms aparecer "[]".
    - <INICIO> se coloca en el primer fichero, <FIN> en el ltimo
    - <Re Pg/Av Pg> para moverse por pginas dentro de la lista
    - <INTRO> acepta el fichero seleccionado, <ESC> cancela.
    Tambin puedes seleccionar nombres directamente pulsando las letras
    iniciales de stos.

    Si ests usando un ratn puedes pinchar "[]" para <pgina arriba>,
    "[]" para <pgina abajo>, "[<]" para <cursor izquierda>, "[>]" para
    <cursor derecha> y [ok] para <intro>.
    Usa "[]" como <ESC>. Usa el botn derecho del ratn para seleccionar
    una lnea.

    ".." es el directorio anterior; [A], [B], ... son las unidades
    disponibles.
    Procura seleccionar unidades de disquete que tengan uno metido. De lo
    contrario podras tener problemas.

    Tambin es posible insertar discos que esten dentro de archivos ZIP.
    Selecciona un archivo ZIP pulsando <INTRO> y se mostrar su contenido
    como si se tratara de un directorio normal. Si eliges un fichero de
    un archivo ZIP ste se extrae automticamente a un fichero temporal.
    Para que esto funcione, hace falta que el programa PKUNZIP se encuentre
    en algn directorio del path de bsqueda del DOS, o en el directorio
    de CPCEMU.
    Los ficheros temporales se borran automticamente cuando ya no se
    necesitan. Los cambios *no* se escriben en el archivo ZIP. Si guardas
    algo en una imagen de disco que est dentro de un ZIP se perder al
    insertar otro disco. Si quieres realizar cambios en imgenes de disco
    que estn dentro de archivos ZIP, debers extraerlas antes de entrar
    en CPCEMU.

    El proceso para crear imgenes de disco a partir de discos tuyos del
    CPC se explica en el captulo 5  (Transferencia de datos CPC <-> PC).




  3.2.2  Cargando y guardando con el casete
  -----------------------------------------

    Qu es realmente un casete para CPCEMU?
    Los ficheros de casete no son ms que ficheros normales en directorios
    del DOS.
    Una vez metida la instruccin '|TAPE' todas las instrucciones BASIC
    para manejo de ficheros hacen referencia al casete. Pero ojo, slo
    las que no empiezan con el caracter "|".
    En est situacin es posible usar las instrucciones explicadas en
    la seccin anterior (CAT, RUN", LOAD", SAVE", MERGE") con el casete.
    Si omites el nombre del fichero aparecer el men de seleccin de
    ficheros tal como se describe en la seccin previa.
    Con SAVE"" puedes bien sobreescribir un fichero que ya existe o
    crear uno nuevo especificando su nombre en la ltima lnea donde
    aparece "(new file)".

    Obviamente puedes cargar programas que esten dentro de archivos ZIP,
    a su vez que guardarlos se ignora.

    La nica forma de tener una unidad de casete tan sofisticada es con
    el emulador!



  3.2.3  Cargando y guardando snapshots
  -------------------------------------

    Los snapshots son volcados de memoria que no solamente guardan
    el contenido actual de la memoria, sino que tambin se guarda el
    estado interno de los chips de hardware, p.ej. el procesador.
    En cualquier momento puedes interrumpir el programa que se este
    ejecutando y guardarlo como snapshot. Ms adelante puedes cargarlo
    y continuar en la misma posicin en la que lo interrumpiste.
    Para crear un snapshot se usa la tecla F6. Hay que especificar el
    tamao del snapshot, bien 64K o 128K. Los snapshots de 128K slo
    tienen sentido si se est utilizando en ese momento el segundo
    banco de memoria. En este ltimo caso se usara "128K Snapshot = 1",
    donde 1=Si.

    El men de seleccin de snapshots es el mismo que el ya descrito
    con el de discos, con el aadido de lo comentado para el casete
    (3.2.1 y 3.2.2).

    Para cargar un snapshot ya creado se usa la tecla F5.




4.  Cambiando la Configuracin


En este captulo se te mostrar como configurar CPCEMU para adaptarlo
a tus necesidades.
Se explican el men de configuracin, el fichero de configuracin y los
parmetros en lnea de comandos.



4.1  El men de configuracin
=============================

  Esta es la forma ms simple de realizar ajustes en CPCEMU. Sin embargo,
  este men no te permite modificar todas las opciones. Por poner un
  ejemplo, si deseas usar ROMs adicionales tendrs que usar el fichero
  de configuracin, explicado en la seccin 4.2.

  Como ya se mencion en la seccin del teclado, para entrar en el men de
  configuracin hay que usar la tecla F7. Hecho esto aparecer el siguiente
  men:

       Opcin:                     Valor:    Breve descripcin:
  -----------------------------------------------------------------------
       ___Emulacin
       Retardo Emulacin           0
       Velocidad Emulacin         1
       Frecuencia Interrupcin     300
       Reanudar Interrupcin       0
       Tiempo Real                 0
       
       ___Pantalla
       Monitor Color               1
       Actualizar Multimodo        0
       Cambio Paleta               1
       Desplazar Pantalla          0
       Modo Video                  0
       Posicin VSYNC              5
       
       ___Sonido
       Sonido Activado             1
       Dispositivo Sonido          3
       Retardo SB                  35
       Retardo0 SB                 6
       Buffer DMA SB               128
       Vel Muestreo SB             0
       SB Estreo                  0
       
       ___Control
       Calibrar JOY0
       Calibrar JOY1
       Idioma Teclado              3
       Ratn Activado              1
       
       ___Opciones PPI
       Fabricante                  7
       PPI 50Hz                    1
       PPI Seal Expansin         1

       ___Miscelnea
       AMSDOS Desactivado          0
       AMSDOS Acelerado            1
       Mscara Ruptura             3
       EMS Activada                1
       Idioma                      3
       Desvo Cinta                1
       Tamao RAM                  128
       Modelo CPC                  2
       Mostrar Configuracin       0
       Cargar Configuracin
       Reiniciar Emulacin
       Guardar Configuracin
       Fichero de Pokes                      fichero con trucos para juegos
       Shell al DOS
       Continuar


  Modifica los valores de las opciones tal como se explic en 3.2.1.


  Retardo Emulacin
    Esta opcin permite ralentizar la emulacin si sta es demasiado
    rpida.
    0 significa sin retardo, 100 un retardo pequeo, 300 algo ms ...

  Velocidad Emulacin
    0   = emulacin del Z80 lenta
    1   = emulacin del Z80 rpida

  Frecuencia Interrupcin
    Sirve para cambiar la frecuencia a la que que se generan las
    interrupciones.
    En un CPC real sta es simpre de 300 Hertzios. Si incrementas este
    valor muchos programas darn la impresin de ir ms rpido, pero hay
    menos capacidad de clculo entre dos interrupciones. Si tienes un
    ordenador lento deberas reducir este valor a 100 o 200 algunas
    veces. Los valores posibles van desde 18 hasta 600.
    Para informacin ms detallada mira el captulo 7.

  Reanudar Interrupcin
    Esta es otra de esas opciones que no pueden explicarse si no se tienen
    suficientes conocimientos tcnicos. Si no hay memoria EMS disponible
    esta opcin se pone a 0, lo que significa que las interrupciones
    pueden ignorarse. Por supuesto esto no es lo ms adecuado, pero con
    1 la emulacin se ralentiza mucho. Con EMS est opcin es 1, de modo
    que CPCEMU procura manejar todas y cada una de las interrupciones.
    Nota importante:
    Parece ser que CP/M Plus funciona solamente teniendo EMS y con esta
    opcin = 0 !
    Para informacin ms detallada mira el captulo 7.

  Tiempo Real
    Activa el CPC en tiempo real. El emulador realiza esperas segn
    convenga para ser igual de rpido que un CPC real.

  Monitor Color
    Emulacin de monitor en fsforo verde o en color mediante cambio
    de paleta.

  Actualizar Multimodo
    Si tienes programas que usan varios modos de pantalla simultneos
    activa esta opcin. De esta forma CPCEMU intentar manejarlo
    correctamente.
    Por defecto esta opcin est desactivada porque no funciona
    adecuadamente en todos los casos.

  Cambio Paleta
    Pon esta opcin a 0 para desactivar los cambios de paleta. Esto viene
    bien cuando es difcil ver lo que aparece en pantalla debido a los
    continuos parpadeos de la misma.
    Si pulsas la tecla F8 para provocar un reset de hardware esta opcin
    se pone a 1 automticamente.
    Consejo: Si la actualizacin de paleta est desactivada y los colores
    de pantalla son errneos prueba a pulsar F2 dos veces seguidas.

  Desplazar Pantalla
    Sirve para especificar el nmero de lneas que debera desplazarse
    la pantalla del CPC.
    Normalmente esta opcin no hace falta. Se consigue el mismo efecto
    pulsando las teclas <Re Pg> y <Av Pg>. Valores posibles:
    0=sin desplazamiento, hasta 25.

  Modo Video
    Especifica el modo de video de la tarjeta VGA.
    0 = 640x200x16 (por defecto)
    1 = 640x350x16
    2 = 640x480x16
    y si tu tarjeta tiene BIOS VESA, principalmente:
    3 = 800x600x16
    4 = 1024x768x16
    5 = 1280x1024x16
    ...
    AVISO:
    Usa modos de vdeo >= 3 slo si tu monitor soporta esas resoluciones!
    Si ves que hace unos ruidos raros desactiva ese modo inmediatamente!
    De todas formas, esto podra pasar slo en monitores antiguos.

  Posicin VSYNC
    De normal esta opcin no te har falta, pero no pasa nada por probarla.
    Por cada vez que se actualiza la pantalla hay un haz vertical con un
    bit especial activado, es el conocido como bit VSYNC (sincronizacin
    vertical). Mediante esta opcin puedes especificar la posicin en la
    que se produce el VSYNC. Los valores posibles son de 0 a 5. Para
    informacin ms detallada mira el captulo 

  Sonido Activado
    Activa el sonido. 1=activado, 0=desactivado. Otra forma de conseguirlo
    es pulsando la tecla F4.

  Dispositivo Sonido
    Especifica el dispositivo para la salida de sonido:
    0 = none
    1 = Altavoz interno del PC
    2 = Soundblaster (Pro), sonido FM
    3 = Soundblaster (Pro), sonido digital, gracias a Ulrich Doewich
    4 = GUS (Gravis Ultrasound), gracias a Ulrich Doewich

  Retardo SB
    Retardo para la tarjeta Soundblaster.
    Especifica el tiempo de retardo despus de un acceso a la tarjeta
    de sonido para escritura.
    Con valores pequeos (p.ej. 0) se incrementa la velocidad en la salida
    del sonido. Si se producen problemas con tu tarjeta de sonido usa el
    valor 35.

  Retardo0 SB
    Otro retardo para la Soundblaster. No lo cambies.

  Buffer DMA SB
    Especifica el tamao del buffer para el sonido digital de la
    Soundblaster.

  Vel Muestreo SB 
    Especifica el ratio de muestreo para el sonido digital de la
    Soundblaster.
    0=22kHz, 1=44kHz

  SB Estreo
    Activa o desactiva el sonido estreo.

  Calibrar JOY0
    Es muy probable que ya conozcas esto por otros programas en los que
    primero hay que calibrar el joystick analgico del PC. Elige esta
    opcin pulsando <INTRO>, mueve el joystick a la esquina superior
    izquierda, luego a la esquina inferior derecha.
    A continuacin se te mostrarn algunos valores. Si vas usar el
    joystick frecuentemente es mejor que te apuntes estos valores
    y los escribas en el fichero de configuracin (mira la siguiente
    seccin). De todas formas tendras que volver a calibrarlo si
    modificas la frecuencia de reloj.

  Calibrar JOY1
    Se aplica lo mismo que en Calibrar JOY0, pero para el joystick 1.

  Idioma Teclado
    Mediante esta opcin se puede seleccionar un esquema de teclado de
    otros paises.
    0 = UK, por defecto
    1 = GR, Teclado "estilo Alemn". Por desgracia es imposible conseguir
        un teclado completamente Alemn, ya que las teclas obtenidas
        mediante MAYS no pueden sustituirse por las obtenidas sin MAYS.
        An y todo la "Z" y la "Y" estan intercambiadas, y hay algunos
        caracteres ms modificados.
    2 = FR, Teclado "estilo Francs". Despus de aadir el teclado Alemn
        el Francs no iba a ser menos. Se ha conseguido implementar
        algunas partes del teclado AZERTY. Pero se dan los mismos
        problemas que en el Alemn.
    3 = SP, Teclado "estilo Espaol"

  Ratn Activado
    Posibilita el uso del ratn en los mens.

  Fabricante
    El nombre del fabricante que aparece en la pantalla de inicio.
    0 = Isp
    1 = Triumph
    2 = Saisho
    3 = Solavox
    4 = Awa
    5 = Schneider
    6 = Orion
    7 = Amstrad

  PPI 50Hz
    El CPC es capaz de funcionar a
      0 - 60 Hz, o
      1 - 50 Hz (el usado en Alemania, Francia)
    Cuando se produce un reset se verifica el bit 4 del puerto B del PPI,
    y el CRTC se inicializa adecuadamente.
    Djalo en 50 Hz.

  PPI Seal Expansin
    Algunas tarjetas de expansin activan esta seal.
    En el CPC 464 est activada cuando tiene conectada una unidad de disco.
    En el CPC 6128 est siempre activada.

  AMSDOS Desactivado
    Impide la inicializacin del AMSDOS. Esto viene bien para cargar
    programas del casete sin tener que introducir la orden '|TAPE'
    cada vez.
    Es cierto que tambin se podra poner como comentario la lnea del
    AMSDOS en el ROM_BLOCK (con ROM_BLOCK se puede especificar la ROM
    a cargar), pero tiene el inconveniente de que el AMSDOS no se
    encuentra presente en el sistema.
    Mediante esta opcin se consigue que el AMSDOS este disponible para
    algunos programas que lo requieren.

  AMSDOS Acelerado
    Posibilita realizar modificaciones en la ROM del AMSDOS para acelerar
    los accesos al disco.
    Esto se consigue minimizando los tiempos de espera para el motor
    de la unidad de disco, que no son necesarios en el emulador.

  Mscara Ruptura
    Esta opcin es slo para depuracin. Con el valor 3 del fichero
    de configuracin se suprimen varios errores provocados por
    instrucciones ilegales.
    No cambies este valor!

  EMS Activada
    Permite el uso de memoria EMS (Expanded Memory System).
    Si no hay EMS disponible o no hay suficiente, CPCEMU usa memoria
    convencional automticamente.
    Para informacin de EMS ms detallada consulta 2.3.1 y el captulo 7.

  Idioma
    Idioma para los mensajes de ayuda.
      0=UK (Ingls)
      1=GR (Alemn)
      2=FR (Francs)
      3=SP (Espaol)

  Desvo Cinta
    Posibilita el uso del casete.
    Hay informacin ms detallada del CASETE en el captulo 7.

  Modelo CPC
    Especifica el modelo de CPC a usar
    0 = CPC 464
    1 = CPC 664
    2 = CPC 6128
    3 = CPC 464+ (?)
    4 = CPC 6128+ (?)
    5 = KC compact
    Para usar los modelos del 3 al 5 debes especificar antes, en el fichero
    CPCEMU.CFG, las imgenes ROM.

  Mostrar Configuracin
    Permite que se muestre la configuracin cuando se arranca el emulador.

  Cargar Configuracin
    Carga un fichero de configuracin guardado con "Guardar Configuracin".
    Algunas opciones pueden no tener efecto hasta que elijas "Reiniciar
    Emulacin".

  Reiniciar Emulacin
    Con esta opcin puedes reiniciar la emulacin con nuevos valores despus
    de cargar un fichero de configuracin con "Cargar Configuracin".

  Guardar Configuracin
    Guarda la configuracin actual.
    Ten en cuenta que no puedes sobreescribir el fichero de configuracin
    maestro CPCEMU.CFG.

  Fichero de Pokes
    Ests con un juego que no puedes terminar? Prueba a usar esta opcin.
    Si el juego est en la lista puedes hacerlo ms fcil obteniendo vidas
    infinitas, p.ej. Tambin puedes ampliar la lista (CPCEMU.DBF) aadiendo
    tus propios pokes. Mira en el captulo 7 la descripcin de este
    fichero.

  Shell al DOS
    Abre un shell de DOS con mucha memoria libre, del cual puedes salir
    con 'EXIT'.

  Continuar
    Acepta los valores introducidos y contina con la emulacin.
    Puedes realizar lo mismo pulsando <INTRO> en cualquier lnea que
    tenga un valor.





4.2  El fichero de configuracin
================================

  Aqu se muestra otra forma de configurar CPCEMU.
  Por defecto, lo primero que CPCEMU hace es leer el fichero de
  configuracin CPCEMU.CFG.
  Fjate que cuando se arranca CPCEMU con un fichero CPCxxx.BAT, el
  fichero de configuracin se localiza en el directorio TMP. Esto
  permite usar configuraciones definidas por el usuario incluso
  cuando CPCEMU est en un CD-ROM.
  A continuacin se explica la estructura de este fichero de modo que
  puedas usar tus propias ROMs, cambiar el idioma del teclado
  permanentemente, etc...


  Echa un vistazo al fichero CPCEMU.CFG:

    ;CPCEMU.CFG - The Configuration File for CPCEMU (v1.5)
    ;Marco Vieth, 20.11.1997
    ;
    ;standard configuration for CPC 464, 664, 6128, 464+, 6128+, KC compact
    ;
    SHOW_CONFIG=0       ;should the configuration be displayed?
    CPC_TYPE = 2        ;CPC 6128, if no command line parameter -t
    ...

  Con tan slo estas lneas puede verse cual es la estructura bsica:
  Los comentarios empiezan por punto y coma (";"). Las opciones se
  modifican escribiendo una palabra clave seguida de "=" y de un
  <valor>. El <valor> depende de la palabra clave y es una cadena o
  un nmero. Los nmeros pueden especificarse en notacin decimal,
  hexadecimal ("0x") o binaria ("%").

  Una vez conocido el significado de las palabras clave podrs adaptar
  los valores a tus necesidades con un editor de texto.


  La mayora de las palabras clave ya las conoces por el men de
  configuracin.
  En primer lugar la lista de todas las palabras clave ordenadas
  alfabticamente:


  #ENDIF
  #IFCPC
  AMSDOS_DISABLED       (AMSDOS_Desactivado)
  AMSDOS_SPEEDUP        (AMSDOS_Acelerado)
  BREAK_MASK            (Mscara_Ruptura)
  COLOUR_SCREEN         (Monitor_Color)
  COMPANY_NAME          (Fabricante)
  CPC_TYPE              (Modelo_CPC)
  DATA_FILE
  DRIVE_A
  DRIVE_A_AUTOSTART
  DRIVE_A_SIDE
  DRIVE_A_WRITEPROT
  DRIVE_B
  DRIVE_B_AUTOSTART
  DRIVE_B_SIDE
  DRIVE_B_WRITEPROT
  EMS_ENABLED           (EMS Activada)
  EMULATION_DELAY       (Retardo Emulacin)
  EMULATION_SPEED       (Velocidad Emulacin)
  HELP_FILE
  INTERRUPT_FREQUENCY   (Frecuencia Interrupcin)
  INTERRUPT_RESUME      (Reanudar Interrupcin)
  JOY0_CALIBRATE        (Calibrar JOY0)
  JOY1_CALIBRATE        (Calibrar JOY1)
  KBD_LANGUAGE          (Idioma Teclado)
  LANGUAGE              (Idioma)
  MOUSE_ENABLED         (Ratn Activado)
  MULTIMODE_UPDATE      (Actualizar Multimodo)
  PALETTE_CHANGE        (Cambio Paleta)
  POKE_DATABASE         (Fichero de Pokes)
  PPI_50HZ              (PPI 50Hz)
  PPI_EXP_SIGNAL        (PPI Seal Expansin)
  PRINTER
  RAM_SIZE              (Tamao RAM)
  REALTIME              (Tiempo Real)
  ROM_BLOCK
  ROM_PATH
  SB_DELAY              (Retardo SB)
  SB_DELAY0             (Retardo0 SB)
  SB_DMA_BUF            (Buffer DMA SB)
  SB_SAMPLE_RATE        (Vel Muestreo SB)
  SB_STEREO             (SB Estreo)
  SCREEN_OFFSET         (Desplazar Pantalla)
  SHOW_CONFIG           (Mostrar Configuracin)
  SNAPSHOT
  SOUND_DEVICE          (Dispositivo Sonido)
  SOUND_ENABLED         (Sonido Activado)
  TAPE_BYPASS           (Desvo Cinta)
  TAPE_PATH
  TMP_PATH
  VIDEO_MODE            (Modo Video)
  VSYNC_POSITION        (Posicin VSYNC)


  En segundo lugar el significado de las nuevas palabras clave:


  - #ENDIF, #IFCPC
    Instrucciones de control para la configuracin condicional dependiendo
    del CPC deseado:
      #IFCPC <modelo de CPC> ... #ENDIF
    Para <modelo de CPC> son vlidos todos los valores de "CPC_TYPE"
    (Modelo_CPC).
    En consecuencia slo se necesita un fichero de configuracin para
    todos los CPCs.
    Los ficheros batch CPC464.BAT, CPC664.BAT y CPC6128.BAT seleccionan
    el modelo deseado mediante parmetros en la lnea de comandos. Estos
    se explican en la seccin siguiente.

  - DATA_FILE = "<path+nombre de fichero>" (Fichero de Datos)
    Especifica el fichero de datos (CPCEMU.DAT).

  - DRIVE_A = "<path+nombre de fichero>" (Unidad A)
    Indica el path donde se encuentran las imgenes de disco. Si se
    especifica un nombre de fichero junto al path, ste se insertar
    automticamente en la unidad A.
    La seccin 3.2.1 explica como Cargar y Guardar en Disco.

  - DRIVE_A_AUTOSTART = 0,1 (Unidad A Autoarranque)
    Cuando se inserta una imagen de disco se ejecuta automticamente el
    primer programa BASIC que haya en el disco. Si existe DISC.BAS en el
    disco ser ste el que se ejecute.
    Puedes utilizar la orden |DIR del AMSDOS para mirar cul el el primer
    programa BASIC.

  - DRIVE_A_SIDE = 0,1 (Unidad A Cara)
    En los formatos de doble cara cuando se selecciona la cara 1, se inserta
    la cara (B).

  - DRIVE_A_WRITEPROT = 0,1 (Unidad A Proteccin contra Escritura)
    La imagen de disco se inserta protegida contra escritura, por tanto
    es de slo lectura.
    Esto viene bien si la imagen de disco est en un soporte de slo lectura
    (p.ej. CD-ROM).

  - DRIVE_B = "<path+nombre de fichero>" (Unidad B)
    Lo mismo que en DRIVE_A, pero para la unidad B.

  - DRIVE_B_AUTOSTART = 0,1 (Unidad B Autoarranque)
    Lo mismo que en DRIVE_A_AUTOSTART, pero para la unidad B.

  - DRIVE_B_SIDE = 0,1 (Unidad B Cara)
    Lo mismo que en DRIVE_A_SIDE, pero para la unidad B.

  - DRIVE_B_WRITEPROT = 0,1 (Unidad B Proteccin contra Escritura)
    Lo mismo que en DRIVE_A_WRITEPROT, pero para la unidad B.

  - HELP_FILE = "<path+nombre de fichero>" (Fichero de Ayuda)
    Especifica el path y nombre del fichero de ayuda (CPCEMU.HLP)
  
  - JOY0_CALIBRATE = <xcen>, <ycen>, <xdead>, <ydead>
    Sirve para definir un calibrado de tu joystick analgico.
    Utiliza los valores mostrados despus de calibrar el joystick en el
    men de configuracin (mira la seccin 4.1, Calibrar_JOY0)
    Esta palabra clave requiere 4 valores. Debes especificarlos todos
    siempre. Poniendo los 4 valores a cero significa que no est
    calibrado.

  - JOY1_CALIBRATE = <xcen>, <ycen>, <xdead>, <ydead>
    Lo mismo que en JOY0_CALIBRATE.

  - POKE_DATABASE = "<path+nombre de fichero>"
    Especifica el fichero de pokes (CPCEMU.DBF).

  - PRINTER = "<path+nombre de fichero>" (Impresora)
    Indica el fichero de impresora donde se vuelcan todas los datos
    dirigidos a la impresora.
    Este fichero se borra cada vez que se inicia la emulacin.
    Al salir del emulador puedes imprimirlo con
    'COPY <nombre de fichero> prn:'.
    Puedes usar la impresora directamente con PRINTER="prn".

  - ROM_BLOCK = <nmero de ROM>,  "<nombre de fichero>", <posicin de ROM>
    (Bloque ROM)
    Indica qu ROM ha de cargarse y dnde.
    Repite esta lnea para cada ROM que quieras cargar.
    El nmero mximo de ROMs son unas 20, usando EMS.

    - <nmero de ROM> es el nmero asignado a la ROM, esto significa que se
      selecciona mediante 'OUT &DF00,<Nmero ROM>' .
      Los valores posibles son los siguientes:
        0       : ROM de primer plano (p.ej. BASIC)
        1 - 251 : ROMs de segundo plano. En un CPC 664/6128 las ROMs
                  1-15 se inicializan con el reset automticamente
                  (en un CPC 464 slo las 1-7).
                  La ROM del AMSDOS lleva siempre el nmero 7.
        255     : ROM baja (p.ej. OS; slo lleva este nmero en el
                  emulador).
    - <nombre de fichero> es un fichero que se encuentra en el directorio
      ROM_PATH, que es donde se hayan todas las ROMs.
      
    - <posicin de ROM> normalmente es 0. Si un fichero contiene ms de una
      ROM, sta es la posicin de la ROM deseada 0, 1, 2, ...
        ROM_BLOCK = 255, "CPC6128.ROM", 0
        ROM_BLOCK = 0  , "CPC6128.ROM", 1
      La ROM baja y la ROM de primer plano se cargan una despus de la
      otra desde el mismo fichero.

  - ROM_PATH = "<path>" (Path ROM)
    Indica el path de las imgenes ROM. En el fichero de configuracin
    este path se especifica como ".\ROM". Las ROMs como ficheros
    individuales se definen con la palabra clave ROM_BLOCK.

  - SNAPSHOT = "<path+nombre de fichero>"
    Indica el path para los snapshots. Si se especifica un nombre de
    fichero junto al path, ste snapshot se cargar automticamente al
    arrancar el emulador.
    Para informacin ms detallada mira la seccin 3.2.3.

  - TAPE_PATH = "<path>" (Path Cinta)
    Indica el path de los ficheros de cinta. En el fichero de configuracin
    este path se especifica como ".\TAPE".
    Para informacin ms detallada mira la seccin 3.2.2.

  - TMP_PATH = "<path>" (Path TMP)
    Especifica el path para ficheros temporales. Tiene relevancia slo si
    se seleccionan ficheros dentro de un archivo ZIP y CPCEMU tiene que
    extraerlos con PKUNZIP.




4.3  Parmetros en lnea de comandos
====================================

  Como ya sabrs por otros programas tambin es posible usar parmetros
  en la lnea de comandos con CPCEMU. De momento slo hay unos pocos.


  Ejecuta CPCxxx.BAT con las siguientes opciones:
       /f       : usa el modo rpido (por defecto)
       /s       : usa el modo lento
       /d       : usa el modo de depuracin, explicado en el captulo 7
       /x       : desactiva el uso de EMS
       /c <file>: especifica otro fichero de configuracin, sustituyendo
                  al usado por defecto CPCEMU.CFG. Ver seccin 4.2.
       /t <modelo>: indica el modelo de CPC deseado 464, 664, 6128, 464+,
                  6128+ o KC compact con  /t 0 a /t 5 respectivamente.
       /h       : muestra una pantalla de ayuda

  La opcin "/d" se usa automticamente cuando se especifica una opcin
  desconocida.
  En lugar de "/" puede usarse tambin "-", como en UNIX.




5.  Transferencia de datos CPC <-> PC


Qu se puede hacer con un buen emulador si no se tienen programas para el,
o si no se vislumbra la posibilidad de traspasar programas del CPC al PC?
En el captulo 6 (Suministro, ...) se listan algunos sitios ftp donde puede
encontrarse software para el CPC.
Este captulo trata de la transferencia de software del CPC al PC.
Se describen algunas utilidades para los distintos mtodos de realizar
esto (disco, mediante interface paralelo o serie).




5.1  El disco como intermediario
================================

  Esta es la forma ms simple de transferir software del CPC al PC. Lo
  nico que hace falta es una segunda unidad de discos del CPC con el
  tamao adecuado. Tamao adecuado significa que los discos que use deben
  encajar tambin en la unidad del PC. (Si no es as, an se podra
  intentar conectar una unidad de 3" al PC.) Al PC se le engaa, para que
  reconozca los discos formateados con el CPC, con una utilidad llamada
  CPCTRANS.



  5.1.1  El programa para transferencia de discos CPCTRANS
  --------------------------------------------------------

    He desarrollado CPCTRANS para crear imgenes de disco a partir de
    discos del CPC.
    Tiene soporte para formatos de CPC estndares, as como para formatos
    Vortex de doble cara.
    CPCTRANS no est preparado para transferir discos protegidos contra
    copia!
    Si se ejecuta CPCTRANS sin parmetros se visualizar una breve ayuda.
    CPCTRANS es similar a la orden COPY del DOS:
    'CPCTRANS <origen> <destino> <opciones>'.
    Ejemplos:
    'CPCTRANS B: DISK1.DSK' copia el disco de la unidad B a la imgen de
    disco DISK1.DSK. Si sta no existe se crear.
    'CPCTRANS DISK1.DSK B:' escribe la imagen de disco de vuelta al disco
    de la unidad B.

    Este primer ejemplo slo funciona con el formato DATA.
    Para copiar otros formatos hay que usar una opcin:
      /f 0    : formato DATA (por defecto)
      /f 1    : formato DATA, doble cara
      /f 2    : formato SYSTEM
      /f 3    : formato SYSTEM, doble cara
      /f 4    : formato VORTEX, doble cara
      /f 5    : desconocido, CPCTRANS intenta averiguarlo
      /f 6    : +3DOS
    Fjate que hay un espacio entre "/f" y el nmero.
    Si usas un formato DATA o SYSTEM de doble cara podrs elegir la cara
    A o B en el men de disco (3.2.1).

    Cuando se vaya a escribir una imagen de disco de vuelta, el disco que
    est en la unidad debe tener el mismo formato! Para formatear con
    formatos simples puede usarse 22DISK, explicado en la siguiente seccin.

    Para copiar la cara B de un disco se usa la opcin "/s 1"
    Con 'CPCTRANS B: DISK1.DSK /s 1' se copia slo la cara B del disco,
    con 'CPCTRANS DISK1.DSK B: /s 1' se escribe de vuelta.

    La opcin "/v" activa la "verificacin", de esta forma CPCTRANS
    comprueba que la copia es correcta. Por supuesto esto hace ms lento
    el proceso, pero se incrementa la seguridad.

    La opcin "/t <nmero>" indica el nmbero de pistas a copiar.
    Normalmente es 40 pistas, slo en los formatos VORTEX es de 80.

    La opcin "/q" (formateo rpido) es una caracterstica con la se puede
    formatear una imagen de disco, en lugar de copiar datos en ella.
    No obstante se debe especificar primero una unidad vlida como
    parmetro.
    Ejemplo:
    'CPCTRANS a: SYSTEM.DSK /f 2 /q' formatea SYSTEM.DSK como imagen
    de disco con formato SYSTEM.



  5.1.2  La utilidad de formateo y copia 22DISK por SYDEX
  -------------------------------------------------------

    Este programa se distribuye como shareware. Con las definiciones
    adecuadas se pueden usar casi todos los formatos CP/M!
    Por desgracia slo los formatos del CPC no estn includos con la
    versin de evaluacin de 22DISK. Por tanto he definido yo los formatos
    en el fichero CPMDISKS.DEF. Este fichero lo encontrars en el
    subdirectorio UTILITY.
    Qu es lo que se puede hacer con 22DISK?
    Pueden transferirse ficheros individuales entre formatos DOS y no DOS
    de un lado para otro, formatear discos y cosas por el estilo.
    Copia los ficheros del CPC en el sirectorio TAPE. Mira en la seccin
    3.2.2 la explicacin de cmo cargarlos.



5.2  El interface paralelo
==========================

  Si no tienes segunda unidad en tu CPC, puedes realizar las transferencias
  mediante el interface paralelo. La idea original proviene de Gilles
  Molinari, adems tambin ha escrito algunos programas en Turbo Pascal.
  Pero probablemente perteneces al grupo de usuarios que no tienen un
  compilador de Turbo Pascal en su CPC, por lo que de poco te servira
  tener el cdigo fuente en Pascal. Debido a esto he re-escrito las
  utilidades en Locomotive BASIC, y las he apliado aadiendo la direccin
  PC->CPC.
  Por tanto es posible transferir ficheros entre el CPC y el PC de un lado
  para otro!
  El CPC y el PC se enlazan mediante sus respectivos interfaces paralelos.

  Si tienes un CPC 6128 con conector Centronics y lo comparas con el de
  impresora te dars cuenta que el CPC y el PC se enlazan perfectamente
  usando un cable de impresora de PC estndar! Un momento, no hagas eso
  ahora, contina leyendo.
  Parece ser que nicamente los CPC Schneider incluan conector Centronics.
  Si tienes un Amstrad CPC 6128 con conector simple, o un CPC 464, 664,
  usa el diagrama que hay al final de esta seccin.

  Lo primero de todo es superar dos obstculos:
  1. construir un adaptador simple
  2. meter un pequeo programa en el CPC

  Alto!   No te saltes lo dems!

  Ambos pasos son muy fciles, ya que
  1. es posible realizarlo sin tener que soldar     y
  2. es realmente muy corto (unas 30 lneas de BASIC)

  Para el paso 2.
  El programa que necesitas se llama CPCREC.BAS y est en el directorio
  UTILITY.
  Est guardado en ASCII, por lo que puedes imprimirlo sin problemas y
  teclearlo en el CPC.
  Su cometido es parecido al de una cuerda fina que se mete en una tubera
  para luego servir de gua a un cable grueso.
  En nuestro caso, la cuerda fina es CPCREC.BAS, que sirve para recibir
  ficheros desde el PC.
  Con esta pequea utilidad se puede transferir CPCPARA.BAS (el cable
  grueso) al CPC. Con CPCPARA.BAS se puede recibir y enviar. Por lo que
  una vez trasferido al CPC ya no har falta para nada CPCREC.BAS.
  Por lado del PC se usa PCPARA.EXE, tambin includo en el directorio
  UTILITY.

  Antes de que teclees CPCREC.BAS echa un vistazo al paso 1:


  El adaptador paralelo
  ---------------------

  Hace falta tener un adaptador entre el cable de impresora del PC y el
  conector de impresora del PC.
  La forma ms sencilla es usar una caja para cableado de tipo RS-232, la
  cual tiene un conector D-Sub macho de 25 pines (clavija) y un conector
  D-Sub hembra de 25 pines (enchufe).
  Puede realizarse cualquier tipo de conexin entre ambos lados conectando
  cables cortos en esta caja. Normalmente esta caja se usa - como su propio
  nombre indica - para adaptar interfaces RS-232. Las conexiones en serie
  no suelen funcionan a la primera, para que sepas.
  Este adaptador lo usamos en sentido inverso, esto es, la clavija es para
  el lado del PC y el enchufe para el cable de impresora.

  Conctalos ahora:

        Clavija para el conector de      Enchufe para el cable de
        impresora del PC                 impresora
        (lado izquierdo):                (lado derecho):

               Pin 2     ---------------       Pin 11
               Pin 10    ---------------       Pin 8
               Pin 11    ---------------       Pin 1
               Pin 12    ---------------       Pin 7
               Pin 13    ---------------       Pin 6
               Pin 15    ---------------       Pin 5
               Pin 19    ---------------       Pin 19


  Como puedes ver no hacen faltan los 25 cables, slo 7 de ellos.

  Aunque la caja para cableado es barata, si se compra en una empresa de
  electrnica de venta por correo, puede salir ms barato todava usando
  una caja para jumper. En este caso habra que soldar los cables. La forma
  ms barata es comprar una clavija D-Sub de 25 pines, un enchufe D-Sub de
  25 pines, una caja y algunos cables.

  En este momento asumo que ya has conectado ambos ordenadores y que tienes
  el programa CPCREC.BAS en el CPC.
  Qu es lo siguiente?

  1. En el CPC :  Ejecuta CPCREC.BAS (despus de habelo guardado)
  2. En el PC  :  Ejecuta 'PCPARA /s CPCPARA.BAS'

  La cosa se pone interesante, si no aparece ningn mensaje de error en el
  PC es que todo funciona correctamente, el fichero debe estar en el CPC.

  Si el PC no enva nada y da un mensaje de error, es posible que la
  conexin no este bien.
  Si est enviando ("Sending block xx"), pero aparecen mensajes de error
  de vez en cuando, puede que tu PC sea, bien demasiado rpido, bien
  demasiado lento. En la direccin PC->CPC es muy importante la medicin
  del tiempo, tenlo en cuenta.
  En mi 386/33 tengo que quitar la memoria EMS, de lo contrario es
  demasiado lento. En un ordenador muy rpido podra hacer falta usar el
  botn de turbo.
  Utiliza el programa bajo DOS puro, ni OS/2 ni Windows.

  Si no funciona en absoluto comuncamelo.
  Mientras tanto puedes ir tecleando el programa CPCPARA.BAS, el cual es
  algo ms largo. La direccin CPC->PC funciona siempre, tambin bajo OS/2,
  debido a que es prcticamente lo mismo que imprimir. El PC se comporta
  como una impresora.

  Ahora asumo que ya tienes CPCPARA.BAS en el CPC.
  Hay que transferir ficheros del CPC al PC de la siguiente forma:
  1. En el PC  : Ejecuta 'PCPARA /r'.
  2. En el CPC : Ejecuta CPCPARA, selecciona S)end (Enviar) e introduce
     todos los ficheros que quieras transferir. (Ejecuta 'PCPARA /r' para
     cada fichero que quieras transferir, CPCPARA se ejecuta en un bucle
     sin fin.)


  Po tanto, usa PCPARA de la siguiente manera:
  - PCPARA /r : inicia PCPARA en modo de recepcin
  - PCPARA /s <fichero> : enva el <fichero> al CPC, si usas 'TRM:' como
    fichero entrars en modo terminal.

  Todos los programas del directorio UTILITY muestran una pequea
  descripcin de sus opciones si los ejecutas sin especificar ningn
  parmetro.


  AVISO:
  An cuando la construccin es muy simple, no puedo garantizar que no
  se pueda daar algo, si el puerto de impresora del CPC queda daado
  despus de todo es una pena y ms bien un accidente desafortunado.
  Es muy posible que tambin se hubiera daado por la simple conexin
  de una impresora.
  Por ejemplo, tengo conocimiento de un antiguo usuario de CPC cuyo
  teclado dej de funcionar correctamente de un da para otro.
  Despus de repararlo le dijeron que no deba conectar el joystick
  mientras el ordenador estaba encendido!
  ( No s, yo siempre lo he hecho as ?!?)

  Donde estaba:
  Yo he construdo el adaptador con xito. Y algunas veces incluso me
  he "olvidado" de insertar el adaptador en la conexin y no he tenido
  ningn problema.





  Diagramas por David Chapeau, en caso de que tu CPC no tenga conector
  Centronics:

   34 <- - - - - - - - 18      \
   ______________________      |
  |   ________________   |     |
  |  |________________|  |   - | ---> Conector de impresora (Hembra) al CPC
  |______________________|     |
                               |
   17 < - - - - - - - - 1      |
                               |
     ||||||||||||||||||        |
     ||||||||||||||||||        \
     ||||||||||||||||||         >   Cable "CPC 6128 a DMP 2160"
     ||||||||||||||||||        /
     ||||||||||||||||||        |
                               |
   1 - - - - - - - - > 18      |
  ________________________     |
  \    ______________    /     |
   \  |______________|  /    - | ---> Conector Centronics (Macho)
    \__________________/       |
                               |
   19 - - - - - - - -> 36      /



   18 < - - - - - - - - 1      \
  ________________________     |
  \    ______________    /     |
   \  |______________|  /    - | ---> Conector Centronics (Hembra)
    \__________________/       |
                               |
   36 <- - - - - - - - 19      |
                               |
     ||||||||||||||||||        |
     ||||||||||||||||||        \
     ||||||||||||||||||         >   Adaptador Paralelo del PC
     ||||||||||||||||||        /
     ||||||||||||||||||        |
                               |
   1 - - - - - - - - > 13      |
  ________________________     |
  \  ..................  /     |
   \  ................  /    - | ---> Conector Sub-D (Macho) al PC (LPT1)
    \__________________/       |
                               |
   14 - - - - - - - -> 25      /


   13 < - - - - - - - - 1      \
  ________________________     |
  \  ..................  /     |
   \  ................  /    - | ---> Conector Sub-D (Hembra)
    \__________________/       |
                               |
   25 <- - - - - - - - 14      |
                               |
     ||||||||||||||||||        |
     ||||||||||||||||||        \
     ||||||||||||||||||         >   "Caja para cableado" RS 232
     ||||||||||||||||||        /
     ||||||||||||||||||        |
                               |
   1 - - - - - - - - > 13      |
  ________________________     |
  \  ..................  /     |
   \  ................  /    - | ---> Conector Sub-D (Macho) al PC (LPT1)
    \__________________/       |
                               |
   14 - - - - - - - -> 25      /



  Conector    Centronics   Centronics    Conector     Conector     Conector
  Impresora    (Hembra)     (Macho)        Sub-D        Sub-D        Sub-D

      1 ---------  1            1 ---------  1           11 ---------  2
            .                         .                   8 --------- 10
            .                         .                   1 --------- 11
            .                         .                   7 --------- 12
     17 --------- 17           14 --------- 14            6 --------- 13
     18 --------- 19           19 --------- 19            5 --------- 15
            .                  21 --------- 20           19 --------- 19
            .                  23 --------- 21
            .                  25 --------- 22
     34 --------- 35           27 --------- 23
                               29 --------- 24
                               30 --------- 25
                               31 --------- 16
                               32 --------- 15
                               33 --------- 18
                               36 --------- 17



  Velocidad de transferencia CPCPARA -> PCPARA (v1.1):

  Tiempo para transferir un bloque de 0x4000 Bytes del CPC al PC con el
  adaptador paralelo:

  Origen en el CPC:             bytes/s:        bit/s:
  -----------------------------------------------------------
  Fichero de disco:             1600            12800

  Bloque de memoria:            2240            17920

  Bloque de memoria, sin ints.: 2445            19560
  (poke &b941,&c9 en el CPC 6128)

  El bloque enviado estaba controlado en BASIC (dentro de CPCPARA):
  defstr a:a="test.$$$":call sstr,@a
  a=string$(&80):for i=1 to &80:call sstr,@a:next:call sbyte,0:stop


  Puedes leer informacin ms detallada acerca del adaptador paralelo en
  el captulo 7.



5.3  El interface serie
=======================

  Si posees un interface serie en tu CPC desde luego puedes usarlo
  para transferencias de datos al PC.



5.4  Otras posibilidades
========================

  Hay otros mtodos ms exticos de poner el software en el PC.

  - Conectar la unidad de 3" al PC. Algunos modelos (antiguos) deberan
    encajar en un conector de 5.25".

  - Mediante un desvo haca el Spectrum+3: leer el disco de 3" en el
    Spectrum+3, convertirlo al formato del Spectrum y usar una utilidad
    para leerlo en el PC. Esta utilidad est disponible en el emulador
    de Spectrum Z80 hecho por Gerton Lunter.

  - Cuando es necesario obtener la ROM tu mismo, alguien me coment este
    mtodo:
    El quit el chip de la ROM del CPC y lo coloc en lugar de la BIOS de
    la VGA. Con un pequeo programa fue capaz de leer el contenido.
    
  - Tal vez t puedas encontrar otras formas?




6.  Suministros, Soporte y Reconocimientos


En este captulo podrs averiguar dnde conseguir software para el CPC,
y a quin preguntar en caso de dudas. Ms an, hago mencin de otros
emuladores para el Amstrad.


6.1  Dnde conseguir software para el CPC?
===========================================

  Si tienes acceso a Internet esto no supone ningn problema.
  De forma parecida a los emuladores de Spectrum existen una serie
  de colecciones "annimas" donde puedes obtener software para el CPC
  mediante FTP o WWW.


  FTP
  ---

  - ftp.nvg.unit.no:/pub/cpc, gracias a Arnt Gulbrandsen por
    crear el lugar, y a Noel Llopis por su mantenimiento,
    una de las colecciones ms grandes de programs para el CPC;
    enva lo que tengas a /pub/cpc/incoming

  - sunshine.informatik.uni-wuerzburg.de:/pub/joscho/cpcemu
    mirror de ftp.nvg.unit.no. Enviar preguntas, comentarios y dems a
    joscho@informatik.uni-wuerzburg.de
    Si tienes problemas accediendo a Noruega puedes intentarlo con ste.

  - ftp://ftp.lip6.fr/pub/amstrad, gracias a Remy Card,
    ftp://ftp.lip6.fr/pub/amstrad/frontend/menu.htm (HTML)
  - todas las preguntas concernientes a este sitio deben dirigirse a
    roussin@genesis8.frmug.org
    Todos los ficheros provienen de 'Genesis the 8bit generation BBS'
    (ver ms abajo)

  - ftp.demon.co.uk:/pub/cpm, gracias a Paul Martin
    ficheros del CP/M especficos para el amstrad
    Paul Martin (pm@nowster.demon.co.uk) enviar a cualquiera, que pueda
    probar poseer una copia original del disco Amstrad CP/M Plus, las
    imgenes ROM binarias de sus "CP/M Plus ROMs" gratuitamente.

  - oak.oakland.edu : /Simtel/msdos/emulator/cpcemu15.zip

  - otros mirrors de Simtel:
    ftp.ibp.fr : /pub3/pc/SimTel/msdos/emulator/
    ftp.demon.co.uk : /simtel/msdos.
    ftp.uni-paderborn.de


  WWW
  ---

  - http://andercheran.aiind.upv.es/~amstrad
    and an UK mirror: http://www.dcs.warwick.ac.uk/~divine/~amstrad/

  - ...



  BBS
  ---

  - Aspects (2:250/107) : +44 1617920260, en el Reino Unido, sysop Dave
    Gorski, V32b, CPCEMU v1.2, programas (la mayora en basic),

  - Genesis the 8bit generation (2:320/220) : +33 1 53 95 32 43, en
    Francia, hasta VFC, sysop : Emmanuel Roussin.
    ltimas versiones de emuladores, ROMs qwerty y azerty del 6128,
    freeware, shareware, PD, revistas en disco, pokes, soluciones, demos
    y unos cuantos juegos comerciales (con el permiso de sus respectivos
    autores).
    De momento hay unos 29,5 Mo de programas comprimidos en zip. Los
    usuarios de fido pueden hacer "file request" de ALLFILES.ZIP, y a
    partir de ah lo que sea de inters.

  - ZNODE 51 : + 49 89 961 45 75, en Alemania, desde las 15:00 hasta las
    3:00 CET (MEZ), hasta V32b, ficheros de CPC

  - ...



6.2  Noticias, intercambio de experiencias
==========================================

  Quieres tener siempre la ltima versin de CPCEMU?
  Quieres estar informado si se publica una nueva?

  De momento se ha puesto en marcha un grupo de noticias especficamente
  para el CPC!
  Se llama

     comp.sys.amstrad.8bit.

  En el encontrars charlas acerca de los CPCs (y tambin del CPCEMU),
  y puedes comentar tus experiencias con los CPCs.

  Hay una FAQ (preguntas ms frecuentes) disponible en este grupo
  (ftp://ftp.lip6.fr/pub/amstrad/amstrad.htm, FAQ en HTML).

  Si no puedes leer el grupo de noticias por cualquier razn, escrbeme
  un email.
  Encontrars mi direccin en la prxima seccin.
  Por supuesto tambin puedes usar correo normal para hacerme preguntas
  (o a David, mirar ms abajo), pero por favor no te olvides del franqueo
  de vuelta.


  Si me envas una contribucin me sentir obligado a enviarte la ltima
  versin por lo menos una o dos veces.




6.3  Si tienes preguntas o sugerencias
======================================


  Puedes escribirme directamente a:

       Marco Vieth
       Auf dem Uekern 4
       D-33165 Lichtenau
       Alemania

       Telfono: +49-5292-1366 (slo fines de semana)

       Internet: cpcemu@hotmail.com
                 (ali@uni-paderborn.de)

       Como probablemente ya habrs deducido, leyendo mi direccin de
       Internet, he estudiado Ciencia de las Computadoras en la Universidad
       de Paderborn. Termin en la primavera de 1997.



  En caso de que hables ingls tambin puedes escribirle a David Cantrell:

       David Cantrell
       116, London Road
       Bexhill-on-sea
       East Sussex
       TN39 4AA
       Inglaterra

       Phone: +44-1424-221015

       Internet: david@diablo.eimages.co.uk
                 ftp://ftp.eimages.co.uk/users/davidc/cpc/
                 http://www.ThePentagon.com/NukeEmUp/uaug


  David se ha ofrecido a ayudarme a contestar el "montn de cartas".
  El ha escaneado el manual de firmware del CPC, de forma que cualquiera
  puede obtenerlo en formato electrnico.




  Aunque este programa es Freeware aceptara cualquier clase de apoyo,
  financiero o tcnico.
  (unos 30-50 Marcos alemanes sera lo apropiado.)
  (Eso equivale a unos 20-33 Dlares americanos o 13-21 Libras esterlinas.)

  An en el caso de que no se me enve dinero, suelo reponder a todas las
  cartas e intento recordar todas las sugerencias (estoy seguro de que
  David hace lo mismo).
  Por eso no tengas reparos en enviarme tus comentarios.



6.4  Otros emuladores del Amstrad CPC
=====================================

  A comienzos de 1994 pensaba que CPCEMU era el nico emulador para el
  Amstrad CPC. Ahora tengo conocimiento de otros tres:
  
  - SIMCPC:
    Presumiblemente el primer emulador de CPC escrito.
    Emulador de CPC para PC/XT/AT   (c) 1989, 90 por GHE, Aachen.
    Slo en blanco y negro, pero con ROMs adicionales;
    tan slo una "muestra de humor".

  - CPC2PCxx:
    En desarrolo desde Octubre de 1993 por Paco Lopez (Espaa), y est
    disponible ahora en algunos sitios. Est escrito completamente en
    modo protegido y usa el mismo formato de disco que CPCEMU.

  - CPE:
    En desarrolo por Bernd Schmidt. Mediante el uso de un modo de video
    especial de 50 hertzios, algunos bloques de colores estn reproducidos
    exactamante.
    Un CPE2 especial de 256 colores muestra bloques de colores con ms
    de 50 hertzios.
    Tambin soportado: Modos mltiples, overscan.
    Ultima versin: v5.2.



6.5  Planes para futuras versiones de CPCEMU
============================================


  - overscan
  - mejoras en modos mltiples
  - centrado de pantalla en modos de alta resolucin
  - scroll por hardware rpido
  - los teclados US no tienen "<>", ALTgr
  - simular el puerto de expansin del CPC
  - cargar discos del CPC directamente
  - cargar cintas del CPC directamente (mediante el puerto de impresora
    o la tarjeta Soundblaster)
  - transferir imgenes de disco enteras mediante el adaptador paralelo
  - control de volumen para la Soundblaster
  - emulacin de digiblaster
  - teclas de joystick redefinibles
  - usar el ratn como joystick
  - autodeteccin de .SNA y .DSK

  Puede que nunca lo realice debido a que tengo trabajo "de verdad"...



6.6  Reconocimientos
====================

  - Agradecimiento especial para Juergen Weber, no slo por muchos
    consejos y sugerencias, tambin, y especialmente, por la rpida
    emulacin del Z80 de su emulador de CP/M ZSIM.

                Juergen G. Weber
                Wiesentalstrasse 1
                74523 Schwaebisch Hall
                Alemania

                email: weberj@dia.informatik.uni-stuttgart.de


  - Tambin gracias a Bernd Schmidt. Debido a que Bernd ha escrito su
    propio emulador hemos tenido los mismos problemas muchas veces. Slo
    si intentas escribir un emulador de este tipo t mismo puedes hacerte
    una idea de los detalles que causan problemas.
    No hay informacin del CPC disponible, lo que condiciona enormemente.
    La mayora de comportamientos del CPC hay que detectarlos por medio
    de experiementos con un CPC real.

  - Gracias a Ulrich Doewich por incluir sonido para la Gravis UltraSound
    en el emulator y leerse completamente la documentacin. Ulrich ha
    escrito una herramienta similar a CPCTRANS. Busca CPDREAD con el cual
    se pueden leer tambin discos protegidos contra copia.

  - Gracias a Emmanuel Roussin por su esfuerzo infatigable por el CPC.
    El realiz los pasos bsicos para crear el grupo de noticias y me
    prest su Multiface II durante meses, de modo que pudiera incluirlo
    en el emulador de alguna forma.

  - Gracias a Arnt Gulbrandsen por el fuente de su JPP, donde encontr
    ideas para el controlador de teclado y la rutina de joystick.
    A propsito, JPP es un emulador de Spectrum muy bueno.

  - Gracias a Martin Zacho por aportar una rutina de joystick.

  - Gracias a Fernando J. Echevarrieta Fernandez por apuntar el primero
    que la versin v0.8 no emulaba un CPC 664.

  - Gracias a Gilles Molinari por su programa para transferencia por el
    puerto paralelo.

  - Gracias a Paul Martin por corregir la documentacin en Ingls de la
    versin 1.0.

  - Gracias a Mark Haigh-Hutchinson por su esfuerzo en hacer los programas
    de la compaa Vortex de dominio pblico.

  - Gracias a Martin Young por sus excelentes ideas de como emular un Z80.

  - Gracias a Linh Hsiesh por muchas ideas para mejoras, la mayora de las
    cuales se habrn incorporado ya.

  - Gracias a Fred Harris por escribir una carta a AMSTRAD acerca de
    las ROMs.

  - Gracias a Amstrad, especialmente a Cliff Lawson por permitirme
    distribur la ROM del BASIC. Amstrad retiene el copyright.

        Amstrad plc, Brentwood House,
        169 Kings Road, Brentwood,
        Essex CM14 4EF

  - Gracias a Richard Clayton de Locomotive por permitirme distribur
    la ROM del Firmware. Locomotive retiene el copyright.

  - Y gracias a los usuarios por enviarme sugerencias o aportar ideas.
    Sin ellos CPCEMU tal vez no habra alcanzado la versin 1.0




6.7  Marcas registradas
=======================

  CP/M, CP/M 2.2 y DRDOS son marcas registradas de Digital Research.
  MS-DOS es marcas registrada de Microsoft.
  IBM PC, PC-XT, PC-AT y OS/2 son marcas registradas de International
    Business Machines.
  CPC, AMSDOS por Amstrad,
  BORLAND C, TASM (Turbo Assembler) por Borland,
  22DISK por SYDEX
  Soundblaster por Creative Labs
  ...





------------------------------------------------------------------------------



7.  Informacin Interna de CPCEMU



Este captulo da informacin ms detallada y contesta la pregunta,
"POR QUE hara yo esto o aquello ahora?"
Tambin se describe el potente men de depuracin. Asimismo encontrars
las estructuras de las imgenes de disco y los ficheros snapshot.
Esta informacin no est orientada a los usuarios de CPCEMU sin
conocimiento de los interiores de un CPC. Podra ser til alguna vez.
He colocado esta informacin al final, incluso despus de las marcas
registradas, en un intento por mostrar su "relativa insignificancia".
Si no te gusta leer frases ininteligibles e informacin desordenada,
no sigas leyendo!
Ve directamente al Apndice.



AVISO:  Contina leyendo a tu propio riesgo !





7.1  Lista de contenidos para el captulo 7
===========================================

  7.2  Minidescripcin de las caractersticas Internas de CPCEMU
    7.2.1  La CPU Z80 (El Procesador)
    7.2.2  El Gate Array (El "Co-Procesador")
    7.2.3  El PAL (Programmable Logic Array)
           (Array Lgico Programable)
    7.2.4  El CRTC 6845 (Cathode Ray Tube Controller)
           (Controlador del Tubo de Rayos Catdicos)
    7.2.5  El PIO 8255 (Programmable Input Output)
           (Entrada Salida Programable)
    7.2.6  El PSG AY 3-8912 (Programmable Sound Generator)
           (Generador de Sonido Programable)
    7.2.7  El FDC 765 (Floppy Disc Controller)
           (Controlador de Unidad de Disco)
    7.2.8  El interface de impresora Centronics
           (Centronics printer interface)

  7.3  El men de Depuracin
    - Breve descripcin del men de depuracin
    - Preliminares
    - Breve descripcin de los commandos
    - Manipulacin de registros

  7.4  Gestin de la memoria
    7.4.1  Una vez ms: configuracin de EMS
    7.4.2  Cmo se ha realizado el Banking?

  7.5  Modificacin de ROM
    7.5.1  Ignorando la ROM con el casete
    7.5.2  Modificaciones de la ROM AMSDOS

  7.6  Miscelnea
    7.6.1  Otra vez: El fichero de configuracin
    7.6.2  El adaptador paralelo
       - Direccin CPC->PC
       - Direccin PC->CPC
    7.6.3  CPCTRANS

  7.7  Estructura de los fichero elegidos para CPCEMU
    7.7.1  Imgenes de Disco
       - El bloque de Informacin de Disco
       - El bloque de Informacin de Pista
    7.7.2  Ficheros Snapshot
    7.7.3  Cabecera AMSDOS
    7.7.4  Fichero de Pokes

  7.8  Histrico Interno




7.2  Minidescripcin de las caractersticas Internas de CPCEMU
==============================================================


  Qu grado de compatibilidad tiene CPCEMU realmente?



  7.2.1  La CPU Z80 (El Procesador)
  ---------------------------------

  + Todas las instrucciones del Z80 estn emuladas, incluyendo las
    conocidas como ilegales.
    Puedes elegir entre una emulacin lenta del Z80 escrita en C y una
    emulacin del Z80 rpida escrita en ensamblador por Jurgen Weber.
    Mediante la tcnica COCPU cada instrucin del Z80 se emula
    simultneamente por la versin lenta y la rpida, de esta forma se
    ralentiza mucho, pero comparando los registros despus de cada
    instruccin se han encontrado muchos errores. Obviamente esto
    se ha usado slamente durante el desarrolo del programa.
  + Instrucciones adicionales 'ED FC xx' slo las conoce el emulador.
    Entre ellas la de ruptura de usuario 'ED FC FC  USER &BCFC'.

  - No hay un temporizador exacto de las instrucciones sino calibracin
    de tiempo en el modo tiempo real.



  7.2.2  El Gate Array (El "Co-Procesador")
  ----------------------------------------

  + Los 32 colores del CPC (27 diferentes)
  + Los tres modos de video (X x Y x COLORES):
        modo 0 = 160x200x16
        modo 1 = 320x200x4
        modo 2 = 640x200x2
  + Banking de ROM (16KB OS, 16KB BASIC, 16KB AMSDOS y ROMs adicionales)

  - Parpadeo en los haces de colores



  7.2.3  El PAL (Programmable Logic Array)
  ----------------------------------------

  El PAL se encuentra lgicamente en la misma direccin que el gate array
  pero en hardware distinto a ste.

  + Banking de RAM (128 KB, hasta 576 KB) con memoria EMS o convencional.
    Con emulacin mediante EMS los bloques se mapean por hardware, de modo
    que la velocidad es adecuada. CPCEMU proporciona una RAM de expansin
    compatible Dk'tronics de hasta 576 KB.

  - Sin EMS, el banking de RAM es muy lento, puesto que los bloques de
    memoria han de moverse de aqu para alla en la memoria base del PC.
    Adems, tan slo se dispone de 128 KB RAM.




  7.2.4  El CRTC 6845 (Cathode Ray Tube Controller)
  -------------------------------------------------

  + Base y desplazamiento de pantalla para scroll por hardware
  + Varios tamaos de pantalla desde 0x0 hasta 80x25 con los registros
    1 y 6 del CRTC
  + Direfentes tamaos de carcteres (1..7) con el registro 9 del CRTC
  + Mltiples modos (usan otros registros)

  - El Overscan no est an implementado



  7.2.5  El PIO 8255 (Programmable Input Output)
  ----------------------------------------------

  + Teclado (connectado al PSG)
  + Emulacin de VSYNC: Un bit que se activa entre dos interrupciones
    durante un refresco de pantalla. Puedes cambiar su posicin.
  + El casete es muy rpido, ignorar la ROM permite acceder a cualquier
    fichero del DOS.

  - El bit VSYNC est activado demasiado tiempo
  - Los puertos de casete no estn emulados, por lo que la mayora de los
    programas que acceden a los puertos directamente no funcionan.


  7.2.6  El PSG AY 3-8912 (Programmable Sound Generator)
  ------------------------------------------------------
  
  + Bien por el altavoz interno del speaker (psimo, puesto que
    los 3 canales se combinan en uno y el volumen no puede cambiarse),
    o por una tarjeta GUS o Soundblaster. Cualquier sonido digital con
    todo el ruido o la parte FM compatible Adlib sin ruido.

  - Sin sonido digital o demasiado bajo.


  7.2.7  El FDC 765 (Floppy Disc Controller)
  ------------------------------------------

  + Todos los comandos FDC necesarios para controlar dos unidades A y B
    (incluyendo lectura/escritura de sector, bsqueda/formateo de pista,
    lectura de sector-ID, ...)
    Formatos de disco muy flexibles (hasta 18 sectores por pista).
    Incluyendo formatos de doble cara, p.ej. VORTEX.

  - No estn soportados los formatos de proteccin contra copia
    complicados.



  7.2.8  El interface de impresora Centronics
  -------------------------------------------

  + Salida de impresora, con parche para impresoras de 8-bits, redirigida
    a un fichero definido en PRINTER.




7.3  El men de Depuracin
==========================

  Se muestra el juego completo de registros de la CPU y puede modificarse.
  Puedes "volcar" la memoria, desensamblarla o modificarla. Puedes
  cargar o guardar reas en memoria. Y la cosa ms interesante:
  Puedes ejecutar paso a paso los programas!
  (Parecido a un depurador de verdad.)
    

  Breve descripcin del men de depuracin
  ----------------------------------------

  R)un T)race S)tep  A)ssem D)ump I)nput  L)oad saV)e  M)ode  F)ast Q)uit
  AF=0000 BC=0000 DE=0000 HL=0000 IX=0000 IY=0000 SP=0000 PC=0000 IR=0000
  AF'=0000 BC'=0000 DE'=0000 HL'=0000 IFF1=0 IFF2=0 IMD=0  NZ NC PO P
  0000 : 01 89 7F       LD BC,&7F89
  -f->

  La primera lnea muestra los comandos disponibles, usa las letras
  maysculas.
  Las dos siguientes lneas muestran los valores actuales de los
  registros del Z80.
  La siguiente desensambla la instruccin que hay en ese momento en
  la posicin PC y la ltima es un indicador de espera para meter
  tus comandos.
  (la 'f' indica que ests usando la CPU rpida.)


  Preliminares
  ------------

  Los parmetros entre corchetes son opcionales [opt].
  Usa slo valores hexadecimales, p.ej. <direccin> = 0000-ffff
  "<ret>" indica que ests en un modo especial. Puedes pulsar <intro>
  para continuar. <Cadena><Intro> mantiene este modo
  (usar p.ej. b<intro>).
  Las letras son comandos, muchas veces seguidos de una direccin
  opcional.
  Entre la letra y esta direccin debe haber un espacio o tabulador.
  Sin una direccin se toma por defecto el PC (contador de programa).


  Breve descripcin de los commandos
  ----------------------------------

  R)un: (Ejecutar)
  r [<direccin>] : comienza la emulacin a partir de PC o de una direccin
    opcional
    Ejemplos:
    -f-> r      comienza la emulacin a partir de PC
    -f-> r 100  pone PC a 0x100 y comienza la emulacin

  T)race (trazar dentro de): (Trazar)
  t [<direccin>] : ejecuta slo la instruccin mostrada en ese momento.
    Usar <intro> para continuar en este modo, y as sucesivamente.
    <cadena><intro> vuelve al estado normal.
    Todos los comandos de un solo paso se ejecutan en la CPU lenta (incluso
    cuando se muestra "-f->"), debido a que ya no hay contador en la CPU
    rpida.

  S)tep (paso adelante): (Paso)
  s [<direccin>] : ejecuta la siguiente instruccin.
    Ms bien todas las instrucciones hasta que PC se iguala a la siguiente
    instruccin. Esto puede llevar mucho tiempo, p.e despus de un 'Ret'.
    En este caso F10 puede ser til (como de costumbre).
    Todos los comandos de un solo paso se ejecutan en la CPU lenta (incluso
    cuando se muestra "-f->"), debido a que ya no hay contador en la CPU
    rpida.

  A)ssemble (en realidad desensamblar): (Ensamblar)
  a [<direccin>] : desensambla las 16 instrucciones siguientes.
    Usa <intro> para continuar en este modo, y as sucesivamente.
    <cadena><intro> vuelve al modo normal.

  D)ump: (Volcar)
  d [<direccin>] : muestra un volcado hex/ASCII de los siguientes 256
    bytes a partir de direccin (o PC).
    Usa <intro> para continuar en este modo, y as sucesivamente.
    <cadena><intro> vuelve al modo normal.

  I)nput (modificando memoria): (Entrada)
  i [<direccin>] : muestra la direccin de memoria en la que se est
    en ese momento con su valor correspondiente, el cual puedes aceptar
    con <intro> o cambiar con <valor-hex><intro>.
    Sal de este modo introduciendo un nmero incorrecto como '-1':
    -1<intro> .

  L)oad (cargando un programa): (Cargar)
  l [<direccin>]  : aparece un indicador para que introduzcas un nombre
    de fichero <nombre> y lo carga desde el directorio TAPE_PATH a
    <direccin>
    Es capaz de reconocer una cabecera AMSDOS.
    Si pulsas <Intro> en el indicador aparecer el ms que conocido
    men de seleccin de ficheros ...
    Ejemplos:
    -f-> l<intro> demo<intro>         :
        carga fichero 'demo' al PC actual
    -f-> l a000<Intro> miprog<Intro>  :
        carga fichero 'miprog' a la direccin 0xA000

  saV)e (guardando un programa): (Guardar)
  v [<direccin>]  : aparece un indicador para que introduzcas un nombre
    <nombre> y la longitud del bloque de memoria. Este bloque se guarda
    desde <direccin> (o PC) como fichero binario en el directorio
    TAPE_PATH, el cual incluye una cabecera AMSDOS.
    Ejemplo:
    -f-> v<intro> demo<intro> 4000<intro>    :
        guarda fichero "demo" desde PC con longitud 0x4000.

  M)ode (cambiando el modo de video): (Modo)
  m : Cambia el modo de video: visualizacin de registros, desensamblado
      de instructiones activado/desactivado.

  F)ast (seleccionando el tipo de emulacin): (Rpido)
  f : Intercambia la emulacin rpida del Z80 (desarrollada en ensamblador
    por Juergen Weber, por defecto) y la lenta (escrita en C).
    El indicativo cambia a "-f->" para rpida y "-s->" para lenta.
    Todos los comandos r, s, y t se refieren al tipo de emulacin
    elegida en ese momento.

  Q)uit (saliendo del programa): (Salir)
  q : sale del emulador.


  Manipulacin de registros
  -------------------------

  Adems de los comandos de una letra puedes cambiar los valores de los
  registros con la siguiente sintaxis:  '<registro>=<valor-hex>'
  Ejemplos:
  - af=345        : pone el registro AF a 0x0345
  - pc=a000       : pone le contador de programa a 0xA000

  Tambin puedes escribir '<registro><espacio><valor-hex>'.
  Puedes modificar todos los registros mostrados, p.ej.
  AF, BC, DE, HL, IX, IY, SP, PC, IR, AF', BC', DE', HL',
  y tambin IFF1, IFF2 y IMD.





7.4  Gestin de la memoria
==========================


  7.4.1  Una vez ms: configuracin de EMS
  ----------------------------------------

    Necesitas un gestor de memoria expandida que soporte el estndar
    LIM 4.0 (LIM EMS 4.0). Este gestor de memoria debe suministrar pginas
    EMS extensas en cualquier regin, ya que CPCEMU buscar 6 pginas
    fsicas en direcciones contiguas. Si el uso de EMS es posible aparecer
    un contador de memoria 'EMS xxx Bytes ok.' durante la inicializacin

    Se te indic que usars los siguientes parmetros bajo OS/2:

        EMS_FRAME_LOCATION = auto
        EMS_HIGH_OS_MAP_REGION = 32     (o ms)
        EMS_LOW_OS_MAP_REGION = 0       (o ms)

    Qu significa eso?
    "Low region" es para pginas EMS en memoria convencional. Si CPCEMU
    ha de usar estas pginas pon al menos 6*16KB = 84KB.

    "High region" es para pginas EMS por encima de los 640K, aadidos
    a los 64KB del marco estndard. Pon al menos 2*16KB = 32KB.


    Para DOS Se te indic que incluyeras las siguientes lneas en tu
    CONFIG.SYS:

        DEVICE=C:\DOS\HIMEM.SYS
        DEVICE=C:\DOS\EMM386.EXE 1024
        ...

    Modifica el 1024, dependiendo de la cantidad de memoria disponible en
    tu ordenador.

    Comentarios:
    EMM386 suministra varias pginas extra en memoria convencional.
    La direccin mnima puede cambiarse con la opcin /B=<segmento>
    (por defecto es 4000).
    Con /P<nmero>=<segmento> es posible cambiar los segmentos de
    pginas fsicas.




  7.4.2  Cmo se ha realizado el Banking?
  ----------------------------------------

    El Banking se usa para permitir que algunos ordenadores domsticos
    tengan RAM y ROM en las mismas direcciones. De modo que la lectura
    se haga en ROM y la escritura en RAM. El Amtrad CPC tiene 64K de RAM,
    una ROM de 16K en 0-3fff y otra en c000-ffff:

        0 RAM 0000-3fff
        1 RAM 4000-7fff
        2 RAM 8000-bfff
        4 RAM c000-ffff
        L ROM 0000-3fff
        U ROM c000-ffff

    La idea bsica es tener diferentes segmentos y desplazamientos para
    leer y escribir. Para cada acceso de lectura se aade un
    desplazamiento de lectura a la direccin deseada, y se hace lo mismo
    con un desplazamiento de escritura para cada acceso de escritura.

                        estado 0                 estado 1

        bloque 5   M       L   c                W  0       <
        bloque 4   M    W  C   c                W  C   c    | intercambio
        bloque 3   M    W  8 b c                W  8 a c    | en el cambio
        bloque 2   M    W  4 b c                W  4 a c    | de estado
        bloque 1   M    W  0 b                     L a c   <
        bloque 0   M       U b                     U a


    (M = memoria convencional o pginas EMS fsicas)

    a = ROM baja activada,    ROM alta activada
    b = ROM baja desactivada, ROM alta activada
    c = ROM baja activada,    ROM alta desactivada
    W = ROM baja desactivada, ROM alta desactivada

    Para cambiar de uno a otro estado el bloque '0' y el 'L' deben
    intercambiarse. Para banking de RAM un '0' nuevo debe intercambiarse
    con el viejo. La seleccin de ROM se realiza copiando la nueva ROM
    a 'U'.

    Con memoria EMS, el banking se realiza por el hardware de EMS (o por
    su emulacin). Esto incrementa la velocidad de la emulacin en BASIC
    y en CP/M Plus. Ahora puedes comprender porqu se hacen necesarios
    6 pginas fsicas de EMS contiguas; el marco estndar de 4 pginas
    es insuficiente.





7.5  Modificacin de ROM
========================


  7.5.1  Ignorando la ROM con el casete
  -------------------------------------

    Introduciendo el comando '|TAPE', o si la ROM AMSDOS est desactivada,
    se direcciona el casete. Los accesos del casete se transforman en
    acceso a ficheros de un directorio. Esta redireccin se consigue
    ignorando una ROM.
    Con 'TAPE_BYPASS=1' activas que se ignore la ROM en los vectores
    del casete.
    Si CPCEMU encuentra una ROM conocida de un CPC 464/664/6128, sta
    se modifica segn el caso. Es necesario ignorar la ROM si quieres
    usar el casete.

    Algunas instrucciones especiales estn implementadas en la emulacin
    del Z80. Estas realizan llamadas a funciones especiales que slo
    estn soportadas por el emulador. Tales funciones se introducen
    directamente en la ROM, por lo que sigue siendo posible parchear
    los vectores de la RAM.

    Estn disponibles las siguientes instruciones:
    ED FC xx  USER &BCxx    (slo vlidos para algunos vectores de la RAM)
    Parecido a una instruccin de llamada a una funcin interna.
    Los siguientes valores para xx son legales:
        65      :       CASSETTE INIT (BC65)
        77      :       CASSETTE IN OPEN (BC77)
        7A      :       CASSETTE IN CLOSE
        7D      :       CASSETTE IN ABANDON
        80      :       CASSETTE IN CHAR
        83      :       CASSETTE IN DIRECT
        86      :       CASSETTE RETURN
        89      :       CASSETTE TEST EOF
        8C      :       CASSETTE OUT OPEN
        8F      :       CASSETTE OUT CLOSE
        92      :       CASSETTE OUT ABANDON
        95      :       CASSETTE OUT CHAR
        98      :       CASSETTE OUT DIRECT
        9B      :       CASSETTE CATALOG

    Adems de eso, puedes utilizar la instruccin de ruptura de usuario
    ED FC FC  USER &BCFC. Esto detiene la emulacin enseguida.



  7.5.2  Modificaciones de la ROM AMSDOS
  --------------------------------------

    - Con 'AMSDOS_DISABLE=1' inhabilitas la inicializacin del AMSDOS.
      Por lo que se desactiva el parcheo de los vectores de casete por
      la ROM AMSDOS. (Luego los vectores de casete siguen apuntando al
      casete, aun cuando la ROM AMSDOS se inicialice.) Esto es necesario
      si quieres seguir cargando de casete despus de un reset de disco,
      pero sin haber introducido el comando '|TAPE' antes.
      (Esto se hace con 'poke &CCF2,&18: poke &CCF3,&05' en la ROM AMSDOS.)
      Las instrucciones para sector no se ven afectadas, ya que siempre
      direccionan el disco.

    - 'AMSDOS_SPEEDUP=1' habilita una modificacin de la ROM AMSDOS, la
      cual minimiza los tiempos de espera del motor lo que redunda en un
      acceso a disco ms rpido.
      (La gestin de estas cosas la reliza DOS, por lo que no son
      necesarios los bucles de espera.)
      Los bytes siguientes se modifican en la ROM AMSDOS:
          poke &C5D4,&01  :'tiempo de carga del motor
          poke &C5D8,&01  :'tiempo de formateo de pista
          poke &C5D9,&01  :'espera corta
          poke &C5DA,&01  :'espera corta
          poke &C602,&01  :'slo 1 reintento en caso de error
          poke &C784,&01  :'bsqueda rpida
          poke &C7E2,&01  :'bsqueda rpida




7.6  Miscelnea
===============



  7.6.1  Otra vez: El fichero de configuracin
  --------------------------------------------

    Puede que recuerdes que los comentarios empiezan con punto y coma ';',
    y pueden comenzar en cualquier sitio de una lnea. El resto de la lnea
    se ignora.
    Los blancos, tabuladores, nuevas lneas y ';' son delimitadores, y no
    importa cuantos uses.
    Muchas de las definiciones tienen la forma sintctica
    <palabra-clave> '=' <valor> {T}
    {T} es una secuencia de al menos un delimitador.
    Ejemplo:
      ROM_PATH = ".\ROM"

    <nmero> puede especificarse en formato decimal, hexadecimal (con 0x)
             o binario (%).
    <nombrepath> puede tener una longitud de hasta 80 caracteres y
    <nombre de fichero> hasta 20 caracteres.

    Informacin suplementaria para seleccionar palabras-clave:


    BREAK_MASK = <nmero>               (3)

      De cara a depuracin slo.
      Algunos eventos interrumpen la emulacin normal. Con esta flag
      puedes desactivar tales eventos. Usalo con precaucin!
      Deja todos los bits activados excepto aquellos para los eventos
      que no quieras que ocurran.
      b2 = 0 -> desactiva la visualizacin de errores en el puerto (usa 3)
      El significado de los bits puede cambiar ms adelante!





  7.6.2  El adaptador paralelo
  -----------------------------

    Lo primero, la construccin del adaptador, ahora con descripcin
    funcional:


    PC  D-SUB   Cent.   CPC             Funcin
    --------------------------------    ---------------------------
    GND    19 ---- 19   GND             GND
    BUSY   11 <--- 1    -STROBE         Synchro (Dato disponible)
    -ACK   10 <--- 8    D6              |
    PE     12 <--- 7    D5              | Data
    SELECT 13 <--- 6    D4              |
    -ERROR 15 <--- 5    D3              |
    D0      2 ---> 11   BUSY            Synchro (Listo para recibir)


    Direccin CPC->PC
    -----------------

    De normal el adaptador est diseado para esta direccin solamente.
    El envo en un CPC es, en principio, lo mismo que imprimir en una
    impresora en lnea. Si el PC activa Not-BUSY (no ocupado), el CPC
    escribe un nibble (4 bits de un byte) al puerto, activa STROBE como
    seal de que el dato ya est ah, y lo desactiva a continuacin. De
    modo que el PC tan solo necesita desactivar BUSY (con D0), esperar
    el STROBE (su lnea BUSY) y tomar el nibble (de la lnea de entrada
    impresora->PC), y activar BUSY.
    Pregunta: Por qu no enviar 8 bits en paralelo?
    Respuesta:
    1. El puerto de impresora del PC debe reprogramarse para la entrada
       y no estoy seguro de que esto sea posible en todos los PCs y
    2. El CPC tan solo tiene un puerto de impresora de 7 bits.


    Direccin PC->CPC
    -----------------

    Un da me plante la posibilidad de enviar datos en la otra direccin.
    Desgraciadamente el CPC nicamente tiene una sola lnea de entrada en
    el puerto de impresora, llamada seal BUSY. As que no mejorara la
    situacin si se intentara disear un adaptador mejor para esta
    direccin.
    Por lo tanto, toma lo que ya tienes y scale todo lo que puedas
    desarrollando un protocolo ms sofisticado.
    Un interface serie tambin tiene una nica lnea de entrada para cada
    direccin.
    Pero, el interface serie usa sincronizacin por hardware, normalmente
    mediante cuarzo, y ambos lados han de usar exactamente la misma
    velocidad en baudios (p.ej. 1200 baudios).
    Es muy complicado hacer todo eso por software solamente.
    Qu puedo hacer?
    La idea es aprovechar la ventaja de velocidad del PC respecto del CPC.
    Cada byte se divide en 8 bits y se transmiten en serie, el PC tiene
    que activar la lnea BUSY segn cada caso.
    Durante estos 8 bits el CPC funciona a su mxima velocidad y el PC ha
    de adaptarse a sta. El CPC escribe una "solicitud de bit" con una
    instruccin en ensamblador. En ese momento el PC debe reaccionar
    puntualmente activando la lnea BUSY de acuerdo al siguiente bit.
    Puesto que con la siguiente-excepto-una (?) instruccin el CPC
    lo leer.
    Para no tener que inhabilitar las interrupciones durante toda la
    transferencia se establece una conexin por cada byte.
    El CPC dice "Oye, envame algo", y el PC responde "De acuerdo,
    pero esperar hasta que tu lo quieras." activando la lnea BUSY.
    El proceso entero est protegido con un temporizador, de modo que
    ningn extremo pueda bloquearse cuando este esperando una seal
    que nunca se ha enviado.
    Por esto puedes salir de los programs con <ESC> o <CRTC>+<BREAK>
    en cualquier momento.




  7.6.3  CPCTRANS
  ---------------

    Otra opcin no mencionada es "/d 0" or "/d 1". Con 1 se selecciona
    un modo especial de doble paso, en unidades de 80 pistas cada
    segunda pista se omite al trabajar con discos de 40 pistas.
    Esta opcin no debera hacer falta, ya que CPCTRANS cambia
    automticamente a doble paso cundo detecta un disco de 5.25" de
    360 KB.

    Normalmente es muy simple leer o escribir sectores usando la BIOS.
    Pero la BIOS no puede manejar la cara B de discos con marca-cabezal = 0.
    Por esto tuve que programar las funciones del FDC yo mismo, con la
    ayuda del fuente del MINIX como esquema base. Desgraciadamente el
    fuente del MINIX contiene algunos errores, y la temporizacin en
    partes crticas estaba hecha mediante simples bucles de retardo,
    posiblemente diseados para un procesador 8086.




7.7  Estructura de los fichero elegidos para CPCEMU
===================================================


  7.7.1  Imgenes de Disco
  ------------------------

    Las imgenes de disco se componen de un bloque de informacin de
    disco de 0x100 bytes, y para cada pista un bloque de informacin de
    pista de 0x100 bytes, seguido de los datos para cada sector en esa
    pista.
    El nuevo formato extendido de disco est orientado a los discos
    protegidos contra copia. Las partes que son nuevas en el formato
    extendido estn marcadas con *E*
    (sacado de nuestra Propuesta de Formato Extendido de DISCO, Rev.5.)


    El bloque de Informacin de Disco
    ---------------------------------
    Byte (hex): Significado:
    00 - 21      "MV - CPCEMU Disk-File\r\nDisk-Info\r\n"
                 ("MV - CPC" es lo distintivo)
            *E*  "EXTENDED CPC DSK File\r\n\Disk-Info\r\n"
            *E*  ("EXTENDED" es lo distintivo)
    22 - 2F      sin usar (0)
            *E*  creador del DSK (nombre de la utilidad) (no hace falta
                 que termine en \0 !)
    30           nmero de pistas (40, 42, puede que 80)
    31           nmero de cabezales (1  2)
    32 - 33      tamao de una pista (incluyendo los 0x100 bytes de la
                 informacin de pista)
                 Con 9 sectores * 0x200 bytes + 0x100 bytes por pista
                 info = 0x1300.
            *E*  sin usar (0)
    34 - FF      sin usar (0)
            *E*  bytes altos de los tamaos de pista para todas las pistas
                 (calculado de la misma forma que 32-33 para el formato
                 normal).
                 Para formatos de una sola cara la tabla contiene los
                 tamaos de pista de una sola cara, de lo contrario es
                 para dos caras alternantes.
                 Un tamao con valor 0 indica una pista sin formato.
                 Tamao real de los datos de la pista =
                 = valores de la tabla * 256
                 Hay que tener en cuenta siempre que la imagen contiene
                 256 bytes adicionales por cada informacin de pista.


    El bloque de Informacin de Pista (para cada pista)
    ---------------------------------------------------
    Byte (hex):  Significado:
    00 - 0C      Track-Info\r\n
    0D - 0F      sin usar (0)
    10           nmero de pista (0 al nmero de pistas-1)
    11           nmero de cabezal (0 or 1)
    12 - 13      sin usar (0)
    Parmetros del formato de pista:
    14           BPS (bytes por sector) (2 para 0x200 bytes)
    15           SPT (sectores por pista) (9, como mucho 18)
    16           Formato GAP#3 (gap para formatear; 0x4E)
    17           Byte de relleno (byte de relleno para formatear; 0xE5)
    Informacin del sector (para cada sector de una vez):
    18+i         nmero de pista    \
    19+i         nmero de cabezal   | informacin ID del sector
    1A+i         nmero de Sector    |
    1B+i         BPS               /
    1C+i         Cdigo de error en estado 1 (0)
    1D+i         Cdigo de error en estado 2 (0)
    1E+i,1F+i    sin usar (0)
             *E* Tamao de los datos del sector en bytes (pequea notacin
                 final)
                 Esto permite distintos tamaos de sector en una pista.
                 Se calcula como  (0x0080 << BPS reales).


    Anotaciones:
    Los datos del sector deben estar a continuacin del bloque de
    informacin de pista en el orden de los IDs de los sectores.
    No puede omitirse ninguna pista o sector.
    En los formatos de doble cara las pistas son alternativas,
    p.ej. pista 0 cabezal 0, pista 0 cabezal 1, pista 1 ...
    Usa CPCTRANS para copiar discos del CPC con este formato.



  7.7.2  Ficheros Snapshot
  ------------------------

    Los ficheros snapshot se componen de una cabecera de 0x100 bytes
    y un volcado de memoria.

    La cabecera Snapshot:
    Byte (hex):  Significado:
    00 - 07      'MV - SNA' (como distintivo)
    08 - 0F      sin usar (0)
    10           versin de snapshot (2, antes 1)
    11 - 1A      registros Z80 AF, BC, DE, HL, R, I
    1B - 1C      flags Z80 IFF0, IFF1 (0=desactivado, 1=activado)
    1D - 24      registros Z80 IX, IY, SP, PC
    25           modo de interrupcin del Z80 IMD (0 - 2)
    26 - 2D      registros Z80 AF', BC', DE', HL'
    2E           Gate Array: nmero de registro de tinta
    2F - 3F      Gate Array: valor de registro de tinta (0, 1, ..., 15, 16)
    40           Gate Array: registro de multi configuracin
    41           Gate Array: registro de configuracin de RAM
    42           CRTC: registro de direccin
    43 - 54      CRTC: registro de datos (0, 1, ..., 17)
    55           Nmero de ROM alta
    56 - 59      PIO: puerto A, puerto B, puerto C, puerto de control
    5A           PSG: registro de direccin
    5B - 6A      PSG: registro de datos (0, 1, ..., 15)
    6B - 6C      tamao del volcado de memoria (64K  128K)
    (los parmetros siguientes aparecen slo en snapshot con versin 2.0
     en adelante:)
    6D           modelo de CPC en el que se ha generado el snapshot
                 (0=CPC 464, 1=CPC 664, 2=CPC 6128, 3 = desconocido)
    6E           nmero de interrupcin (0..5), la ltima interrupcin
                 ocurrida durante un ciclo de refresco de pantalla.
    6F - 74      6 bytes multimodo, por tanto modos de pantalla (0..2)
                 para las interrupciones 0..5.
    75 - FF      sin usar (0), puede que ms adelante para configuracin
                 de emuladores





  7.7.3  Cabecera AMSDOS
  ----------------------

    Byte (hex):  Significado:
    00           nmero de usuario (0 , valores posibles 0-15)
    01 - 0F      nombre de fichero+extensin (posiblemente rellenado con 0)
    10           nmero de bloque (0)
    11           flag del ltimo bloque (0)
    12           tipo de fichero (0=basic, 1=basic protegido, 2=binario,...)
    13 - 14      tamao del bloque (0)
    15 - 16      direccin de carga (0-FFFF)
    17           primera flag de bloque (0)
    18 - 19      tamao lgico (0-FFFF)
    1A - 1B      direccin de entrada (0-FFFF)
    1C - 3F      de uso libre para el usuario (0)
    40 - 42      tamao real de un fichero (1-FFFFFF)
    43 - 44      checksum de los bytes 00-42
    45 - 7F      sin usar (valores aleatorios del buffer del sector)

    Anotacin:
    Hay una cabecera al principio de todos los ficheros que no son ASCII.
    Se le identifica calculando el checksum.
    Los bytes 00-3F se originan en el "area de casete", donde los ficheros
    se habrn distribudo en bloques.
    Los bytes 12, 15-16, 1A-1B, 40-42, 43-44 son necesarios.


  7.7.4  Fichero de Pokes:
  ------------------------

  Un elemento (una lnea) se compone de 7 partes, cada un encerrada
  entre '"', y separadas por comas.
  1. nmero de la parte (1 caracter, 0-F):
     El primer elemento tiene nmero 0 y es seleccionable.
     Si un programa necesita ms de un poke el resto de elementos tiene
     los nmeros 1, 2, ...
  2. Nombre del programa (hasta 20 caracteres)
  3. Descripcin (hasta 20 caracteres)
  4. Tipo (1 caracter):
     ('t'=Cinta, 'd'=disco, 'a'=todos), actualmente ignorado.
  5. Direccin del poke (4 caracteres, hexadecimal):
     Especifica la posicin de memoria a modificarse
  6. Byte para el poke (2 caracteres, hexadecimal o '??'):
     Si es '??' debes introducir un valor, p.ej. nmero de vidas.
  7. Byte antiguo (2 caracteres, hexadecimal o '??'):
     Permite verificar si el poke modifica el entorno correcto.
     Si el byte en esa direccin es distinto al byte antiguo, se muestra
     un mensaje de aviso. No hay verificacin cuando se usa '??'.

  Ejemplo:
    "0","Devils Crown","oxgeno infinito","t","863b","00","??"
    "1","","","t","863c","00","??"
    "2","","","t","863d","00","??"

    Aqu se mustran tres pokes para el programa "Devils Crown", los tres
    van juntos. Los valores antiguos se desconocen por lo que el byte
    antiguo es '??'.
    Puedes omitir el nombre y la descripcin en los elementos siguientes.





7.8  Histrico Interno
======================


  Z80EMU (slo un Z80 con poco CPC)
  ---------------------------------

  - v1.0 (1991)
    primera versin en Pascal (slo emulacin del Z80)
  - v1.2 (12/8/1992 - 16/8/1992)
    primera versin en C (traducido con TPTC)
    problemas en el Z80: ADD HL..., DAA, LDIR activaban P-flag
    incorrectamente. BIT... activaba Z-flag incorrectamente, las
    intrucciones rotate activaban Z-flag y S-flag incorrectamente;
    ya es posible usar ROMs.
  - v1.3 (18/8/1992)
    direccionamiento de puerto errnea: byte bajo incorrecto. Nueva gestin
    de memoria con RAM de 128 KB y ROM de 32 KB
  - v2.0 (18/8/1992 - 22/8/1992)
    implementada la tnica de COCPU para encontrar errores (la COCPU usa
    memoria aparte y slo se activa en un modo especial de depuracin).
    problemas en el Z80: AND... activa H-flag incorrectamente,
    CPI... activa N-flag incorrectamente. Anteriormente la pantalla slo
    estaba en blanco y negro, ahora ya es azul y amarillo como en un CPC
    real.
  - v2.1 (25/8/1992 - 27/8/1992)
    Emulacin de todos los pinceles, colores en todos los modos. La
    escritura se realiza slo en la pantalla activa, que es la que tu
    ves. La COCPU encontr un error: todas las instrucciones que contenan
    (IX+zz) con una separacin negativa  eran errneas ! Se haba olvidado
    tomar el "caracter signo".
  - v2.2 (30/8/1992 - 3/9/1992)
    Nueva rutina de teclado, la paleta se actualiza sin parpadeos
    (esperando el HSYNC).
    Se introduce la "ROM necesaria" con COPYMATE.
  - v2.3 (15/9/1992 - 19/9/1992)
    Emulacin de FDC para cargar/guardar sectores. La COCPU encontr un
    error: LD XH,... era LD H,...
  - v2.3b (19/9/1992)
    Se realiza actualizacin de pantalla slo si la pantalla est en
    los bloques de RAM 0..3 (y no 4..7);
    Se hace el puerto FCxx un alias para FBxx (para CP/M Plus). En ese
    momento no saba que OUTI... pre-decrementaba el registro B.
  - v2.4 test (25/10/1992)
    Ya slo se desea emular el registro R (para "DEFINE"). Ahora la
    actualizacin de pantalla se realiza cada interrupcin nth y no
    por cada byte individual escrito en memoria.
    (An muy lento, debido a que est todo hecho en C). Nueva gestin
    de memoria con bloques alineados a segmentos.
  - v2.5 test (31/10/1992)
    Se cambia la gestin de memoria. Scroll por hardware y tamaos
    diferentes de pantalla son ya posibles.
  - v2.6 test (5/11/1992)
    Nuevo controlador de teclado por Arnt Gulbrandsen: son posibles todas las
    combinaciones de teclas. Actualizacin de pantalla en ensamblador.
  - v2.7 test
    Intento sin xito de incluir la rpida emulacin del Z80 de Juergen
    Weber.
  - v2.8
    Mejorada la actualizacin de Pantalla: Slo las partes que cambian
    son modificadas en pantalla.
  - v2.9
    Se usa el Timer del PC para generar interrupciones con 300 Hertzios.
    La emulacin rpida funciona slo si no se usa banking de ROM.

  CPCEMU (ahora un CPC)
  ---------------------
  - v0.2 (23/12/1992), continuacin de Z80EMU v2.9
    Despus de casi 4 horas analizando con el Turbo Debugger, he encontrado
    el fallo que bloqueaba la emulacin rpida: PUSH ES en lugar de PUSH DS.
  - v0.3 (28/12/1992 - 29/12/1992)
    Activar N-flag para INI, OUTI. En el Z80 rpido CPI activa las flags
    errneas. RL (HL) utilizaba lectura de segmento (en DS) en lugar de
    escritura de segmento (en ES). LD A,R ahora produce nmeros aleatorios.
    Se incorporan todas las rutinas de Casete (aunque CASSETTE IN CHAR era
    incorrecto).
  - v0.4 (1/1/1993)
    IN A,(n): A a b8..b15 (en lugar de B). Configuracin de RAM 0xC3:
    corregida a 0,3,2,7 (para CP/M Plus). El KC-Compact (un compatible CPC
    del antiguo DDR) usa los puertos EE00 - EE3D, pero para qu?
  - v0.5 (28/1/1993 - 8/2/1993)
    INIR,... el incremento del regsitro R depende de B, no de BC.
    CASSETTE IN CHAR arreglado (parche errneo para el CPC 6128).
  - v0.6 (23.3.1993 - 24.5.1993)
    Alguien coment que las instrucciones OUTI pre-decrementaban el
    registro B! Se compilan las partes en C con cdigo 386 (con Borland
    C++ v3.1). Las imgenes de disco llevan el sufijo .DSK. CPCREAD.PAS
    corregido (el cabezal no se inicializaba a 0) y convertido a CPCREAD.C.
    Mejorado el direccionamiento de puertos del PIO (la CPU puede leer,
    incluso cuando el puerto est programado para salida, ...)
  - v0.7 (26/7/1993 - 29/8/1993) (no publicada)
    Fuente renovado completamente, modularizado, ...  Fichero de
    configuracin, es posible incluir ms ROMs. Cambiado el nombre de
    la compaa de 'Schneider' a 'Amstrad'. (Se puede seleccionar entre
    varios nombres.)  Error en el banking de RAM removido. Nueva
    documentacin en Alemn.
  - v0.8 (30/8/1993 - 9/9/1993)
    Emulacin lenta: mejoradas las instrucciones con paridad mediante el uso
    de una tabla que no slo sirve para paridad. Z80: Se ignora ED xx con
    xx ilegales. Nueva documentacin en Ingls.
  - v0.8a (10/9/1993 - 15/9/1993)
    Error grave en la emulacin rpida: Si se ejecuta una instruccin
    DD CB xx y se produce una interrupcin, la instruccin se ignora!
  - v0.8b (16/9/1993 - 21/9/1993)
    Implementado un VSYNC "real", si VSYNC_CT = 0. Problema en el puerto
    PIO A arreglado: OUT &F400,xx con el Puerto A en modo de entrada era
    ignorado. Nueva rutina para joystick de Martin Zacho.
  - v0.8c (22/9/1993 - 13/12/1993)
    Verificada la documentacin con "ispell". La emulacin no comenzaba si
    "USE_JOYSTICK=1" y no haba un joystick disponible (PUSH AX en el sitio
    equivocado). Emulacin lenta: DAA corregido (los corchetes haban
    desaparecido desde la versin v0.8). Parche errneo para el CPC 664
    en la rutina de interrupciones. Este parche reemplazaba EI con NOP
    para evitar el problema con EI (activar las interrupciones una
    instruccin ms tarde). Ahora corregido para todos los CPCs.
  - v0.8d (14/12/1993 - 29/12/1993)
    Emulacin de FDC re-escrita para formatos de doble cara. CPCTRANS
    sustituye al antiguo CPCREAD y permite leer discos Vortex una vez
    instalado el parche 720KB.COM. Aparte de eso, se pueden escribir
    imgenes de disco de vuelta al disco. Nueva seleccin de ficheros
    al pulsar F3. Se introducen algunos alias para direcciones de puertos,
    p.ej. &7000 - &7f00 para direccionar el gate array, &0c00, &1c00, &2c00,
    &3c00, &bc00 para el CRTC. Se activa la emulacin del registro R.
  - v0.9 alfa (30/12/1993 - 20/1/1994)
    Memoria EMS posible con una configuracin especial de EMS/UMB. Dgitos
    binarios en el fichero de configuracin. Direccionamiento del banking
    de RAM arreglado: el emulador aceptaba &d0-&ff como &c0-&c7.
    Ahora hasta 576 KB de RAM con EMS.
  - v0.9b (21/1/1994 - 31/1/1994)
    Uso de EMS simplificado mediante EMS extendida (o LIM EMS 4.0) con ms
    de 4 pginas fsicas de EMS. Seleccin de ficheros aadida a 'l' (men
    de depuracin), RUN" .
  - v0.9c (1/2/1994 - 29/4/1994)
    Algo de sonido psimo por el altavoz interno del PC (desactivarlo con
    F4). Seleccin de ficheros tambin con 'v'; corregida la documentacin
    en Ingls; sonido por Soundblaster (puede mejorarse); nuevo CPCTRANS
    con lnea de comandos, acceso directo al FDC; testeado el adaptador
    paralelo y mejorado el software. Z80 rpido: INC (HL), DEC (HL),
    INC (IX+n), DEC (IX+n) para RAM por debajo de la ROM arreglado.
    PgUp, PgDn para mover pantallas demasiado grandes; se muestran partes
    de pantallas overscan.
    Ahora es posible: snapshots de 64K.
  - v0.9d (30/4/1994 - 12/5/1994)
    Las interrupciones durante DI no se omiten, y stas ya no se activan
    directamente despus de una instruccin EI. Nuevas funciones para el
    color: ahora sin nieve en OS/2. Z80 rpido: incrementada la velocidad
    de lectura de cdigo.

  - v1.0 (13/5/1994 - 20/5/1994)
    Mejorada la parte de pantalla: direfentes tamaos de caracter desde 1
    hasta 8. Seleccin de ficheros aadida a SAVE" , aadida seleccin
    rpida pulsando una letra. Mejorado CPCTRANS con una opcin de
    verificacin. Nuevo men de configuracin pulsando F7. De este modo
    se puede desactivar el parpadeo de color.

  - v1.0a (21/5/1994 - 9/6/1994)
    Mejorado el men de configuracin con entrada directa o teclas de
    cursor, aadido esquema de teclado Alemn, aadida opcin de retardo
    simple. Visualizacin correcta de tamaos de pantalla ms pequeos
    (sin trozos de las ms grandes). Mejorada la parte rpida del Z80:
    RRA,RLA, ... ms rpidos, instrucciones CB xx ms rpidas. Aadidas
    ms instrucciones ilegales (ED xx).  Faltaban LD D,XH y LD YL,YH !
    Corregido CPDR, CPIR con BC=0 (0 equivale a 65536 en un Z80, pero
    si que es 0 para el prefijo REPE del 80x86!). Corregidas las flags
    DAA. Nuevo software para el adaptador paralelo: ahora es posible
    enviar al CPC. Gracias a Bernd Schmidt por apuntarme que una
    interrupcin incrementa el registro R en 1. Con esta ayuda la
    emulacin del registro del puerto C del PIO se ha mejorado.

  - v1.1a (10/6/1994 - )
    Surge una nueva era para CPCEMU: Amstrad ha permitido el uso de las
    ROMs!
    Cambios en el fichero de configuracin: ROM_BLOCKS -> ROM_BLOCK,
    DISC_BYPASS -> DISABLE_ADOS, ya no hace falta un espacio de separacin
    para '='. Cambios en la parte del sonido, en la parte grfica: tamao
    vertical por el VGA-CRTC. La calibracin del Joystick se encuentra ahora
    en el men de configuracin, se han mejorado las rutinas de casete para
    guardar. Mejorada la parte del FDC: ahora puede usarse COPYMATE. Puede
    insertarse discos con formato distinto al de datos (data) sin error de
    lectura (sin bsqueda de la pista 0). Un retardo ms en CPCTRANS,
    espero que yano haga falta usar el botn de turbo; formateo de imgenes
    de disco. Corregido una vez ms el puerto C del PIO: se desactiva
    despus de out &7f00,n. Grandes cambios en el fichero de configuracin:
    Ahora con configuracin condicional (#IFCPC, #ENDIF). Cambiadas algunas
    palabras clave (VSYNC_CT -> /, DISC_PATH -> /, SNAP_PATH -> SNAPSHOT,
    DRV_A -> DRIVE_A, DRV_B -> DRIVE_B). Craga de programas desde archivos
    ZIP. Hace falta PKUNZIP.

  - v1.1b (17/8/1994 - 2/9/1994)
    Se introducen los multimodos, eso significa que puede haber varios
    modos de pantalla simultneos en la misma pantalla. La actualizacin
    de pantalla se ha dividido en hasta 6 reas, cada una de ellas se
    actualiza cuando se produce una interrupcin. (Puede mejorarse.)
    Ahora es posible: Snapshots de 128K, ampliado para multimodos.
    CPCPARA mejorado: Ahora pueden transferirse ficheros binarios con
    cabecera. Se ha incluido deteccin del CPC 6128 Plus. Se han incluido
    ms alias para puertos.

  - v1.2 (3/9/1994 - )
    Esta versin se public. Fundamentalmente hay cambios en el men de
    ayuda.

  - v1.2a (27/9/1994 - )        (estuvo disponible como UPD12A.ZIP)
    Seleccin de Ficheros: Slo se muestran las unidades disponibles.
    Y: Con el driver ANSI.SYS el fondo de algunos textos era negro.
    TMP_PATH: Se puede especificar una unidad sin path.
    Shell de DOS (F7): CPCEMU se mueve primero a XMS, EMS o disco, de modo
    que hay mucha ms memoria en el shell de DOS. (Esta caracterastica
    se ha tomado del Programa de Dominio Pblico SWAP300.ZIP por Marty
    Del Vecchio.)
    La actualizacin de pantalla podra corromperse si el ancho de
    pantalla no era divisible por 4.
    Otra versin de CPCEMU para lograr ms velocidad si cabe: C2.EXE. Usa
    una gestin de memoria distinta, con dos marcos de EMS de 64KB cada.
    Uno para lectura y otro para escritura. Pero funciona nicamente con
    EMS.
    Las ROMs tambin tienen (c) de Locomotive Software, no slo de Amstrad.

  - v1.2b (  )
    No haba sonido estreo en una Soundblaster Pro, incluso si as lo
    pona la configuracin. Si no se encontraba una Soundblaster no haba
    sonido hasta que se usaba USE_SB=0.
    Z80 rpido: Cambiados algunos accesos word a accesos byte.
    Es un poco ms lento pero no bloquea el ordenador cada vez que se
    realiza un acceso word a la direccin 0xffff.
    Z80 rpido: Corregido el problema con EI HALT DI: La direccin a HALT
    era metida en la stack en lugar de la de DI.
    Documentacin en Ingls corregida.
    Mejorados CPCPARA y PCPARA v1.1: test del adaptador test, mucha ms
    velocidad en CPC->PC: approx. 1600 bytes por segundo leyendo de
    disco! (486/66) llegaron a medirse.
    De este modo pueden transferirse 16KB en 10 segundos! Gracias a Klaus
    Weber por apuntarme que era demasiado lento.
    En PCPARA haba un DELAY(1) despus de cada nibble para esperar un
    milisegundo. Esto no hace falta.

  - v1.2c (28/2/1995 - )        (estuvo disponible como UPD12C.ZIP)
    Algunas partes de CPCEMU re-escritas en C++. Esto permite funciones
    inline e interface mejorado para mantener un mejor control del
    proyecto.

  - v1.2d (16/3/1995 - )      (slo para 'subscriptores' del mailing list)
    Z80 rpido: Cambios internos no visibles para el usuario, excepto un
    pequeo incremento de velocidad. Ahora todos los datos se mantienen
    en el segmento de datos en lugar del segmento de cdigo.
    Por fin se introdujo el modo absolutamente necesario para ordenadores
    rpidos: 'realtime CPC' ('CPC a velocidad real') (Seleccionable en el
    men de configuracin o con REALTIME=1).

  - v1.3 (16/4/1995 - )
    Fichero de pokes para pokear fcilmente, documentacin en
    Francs, comando para formateo en el FDC (re-formatea imgenes de
    disco del mismo tamao), nuevo sistema de mans con soporte de ratn
    (MOUSE=1), pueden insertarse imgenes de disco con atributo de
    slo-lectura (deben insertarse como "read only"), men de depuracin:
    aadido 'find'

  - v1.3a (30/4/1995 - )        (estuvo disponible como UPD13A.ZIP)
    Con la versin v1.3 Boulder Dash no funcionaba, an cuando s lo
    haca en la v1.2. El modo 2 de interrupciones del Z80 no estaba
    simulado correctamente (omitido PUSH/POP). La emulacin lenta del
    Z80 tena un bug parecido.
    CPCTRANS: Opcin -f 6 activada.

  - v1.3b (20/5/1995 - )        (est disponible como UPD13B.ZIP)
    Algunos usuarios comunicaron que no haba sonido en la Soundblaster
    desde la versin 1.3.

  - v1.4 (v1.3c)
    Soporte de sonido GUS por Ulrich Doewich; ayuda en lnea en Ingls,
    Alemn, Francs y Espaol; documentacin en Francs completa;
    soporte para 2 joysticks; modos de video VESA para altas resoluciones;
    mejorado el men y el fichero de configuracin; aadidas opciones para
    cargar y guardar en el men de configuracin; mejoradas las rutinas
    del FDC para formatos no estndares; formato de disco extendido;
    colores y teclas configurables por el usuario;
    CPCTRANS mejorado (v2.3); nuevo SNA2GIF (v1.1);
    emulacin del Z80 rpida: algunas veces la pantalla no se borraba
    completamente despus de un reset (problema con HALT);



  CPCEMU est escrito en C++ y ensamblador, usando Borland C 3.1 con
  optimizacin para 386 y Turbo Assembler. Para Depuracin se ha usado
  el Turbo Debugger.
  Los colores se obtuvieron mediante el programa VGAMETER por J. Stephen
  Shattuck, Jr., con el CPC conectado a un TV mediante un adaptador Scart.



------------------------------------------------------------------------



(A partir de este punto puedes continuar leyendo sin ningn riesgo.)



Apndice




A.1  Glosario


Aqu se explican algunos trminos relacionados con ordenadores. No pretendo
dar definiciones completas o precisas. Los trminos se describen desde el
punto de vista del CPC.
Las referencias se marcan con "".


386/33 (AT 386/33)
  Abreviacin de PC AT con procesador 80386, a velocidad de 33 MHz.
  Debido al "alto" ndice de velocidad debera ser un 386DX con un bus de
  datos de 32 bits, real, no el barato 386SX con bus de datos de 16 bits.

AMSDOS (DOS de Amstrad)
  DOS desarrollado por Amstrad, para los ordenadores CPC.

Amstrad
  Fabricante de ordenadores Britnico, el cual ha diseado los CPCs.

Archivo
  Almacenamiento de ficheros.
  O: Un fichero que incluye otros varios.
  En archivos ZIP los ficheros se comprimen antes de ser includos.

ASCII (Abreviacin de: American Standard Code of Information Interchange,
  que significa Cdigo Estndar Americano para Intercambio de Informacin)
  En un ordenador todos los caracteres y nmeros se representan internamente
  como nmeros.
  La mayora de los ordenadores usan ASCII, con la letra "A" codificada como
  65. El PC y el CPC tambin usan ASCII. En el Locomotive-BASIC puede
  guardarse un fichero ASCII tecleando 'SAVE"<nombre de fichero>",A'.

BASIC (Abreviacin de: beginners all purpose symbolic instruction code,
  que significa Cdigo de Instrucciones Simblicas para cualquier propsito
  orientado a Principiantes)
  Ampliamente usado, lenguaje de programacin, fcil de aprender, para
  ordenadores domsticos y personales. Antes cada ordenador tena que
  tener su propio dialecto BASIC.
  Los BASICs modernos permiten programacin estructurada, de forma que ya
  no se est obligado a programar "cdigo espagueti".
  Asimismo el CPC tiene su propio BASIC, el Locomotive BASIC por la
  compaa del mismo nombre.

BBS

C64:
  Ordenador domstico hecho por la compaa Commodore con 64 KB de RAM,
  muy popular.
  Debido a la inmensa cantidad de software que tena disponible fue
  "el ordenador para juegos" muchos aos. Ms tarde fue apartado en
  importancia por el Commodore AMIGA, pero a pesar de estar obsoleto
  sobrevivi un poco ms.

Caja para cableado
  Un adaptador para realizar cualquier conexin entre dos conectores
  mediante el uso de cables cortos. En comparacin a la caja para jumper,
  los cables no necesitan estar soldados.

Caja para jumper
  Un adaptador para realizar cualquier conexin entre dos conectores
  usando cables cortos que han de estar soldados.
  Ver tambin Caja para cableado.

Chips hardware
  Componentes dentro del ordenador, p.ej. procesador, chips de memoria,
  controlador de la unidad de disco, ...
  Dentro del CPC se encuentra el procesador Z80, el Gate Array, el CRTC
  6845 para direccionamiento de la memoria de pantalla, el PIO 8255 para
  entrada/salida, el chip de sonido PSG AY 3-8912, el controlador de la
  unidad de disco FDC 765, ...

Configuracin
  Aqu: Configurar un programa para sus propias necesidades.
  Puede realizarse con el Men de configuracin o un fichero de
  configuracin.

Controlador de teclado
  Un programa al que se llama cuando el teclado genera una interrupcin.
  El controlador toma el nmero de la tecla que se ha pulsado o soltado.

CPC (Abreviacin de: Colour Personal Computer,
  que significa Ordenador Personal a Color)
  Desarrollado por la compaa Amstrad, estuvo disponible en varios
  modelos.
  Vuelve a leer la introduccin.

CPC puerto de impresora
  Interface Centronics del CPC para conectar una impresora.
  Desgraciadamente los diseadores del CPC fueron demasiado ahorrativos:
  Tan slo tena 7 bits.
  Mediante un pequeo cable era posible ampliarlo a 8. Para conseguirlo
  el puerto de casete se "desaprovechaba", no siendo necesario para
  imprimir.

CPC manual de firmware
  Libro acerca del CPC, describa especialmete el interface del sistema
  operativo del CPC.

CPC grupo de noticias
  Grupo de noticias slo para el CPC. Su nombre es "comp.os.amstrad.8bit"
  y se cre en agosto de 1994.

CP/M Plus (Abreviacin de: control program for microcomputers,
  que significa programa de control para microordenadores)
  Sistema operativo de la compaa Digital Research, orientado
  principalmente a microordenadores de 8 bits. Ampliamente usado hasta
  que IBM decidi usar MS-DOS para sus PCs.
  El CP/M Plus (CP/M 3.0) fue el sucesor del CP/M 2.2 y fue includo en
  el paquete de software para el CPC 6128.

CTRL/MAYS/ESC (control/maysculas/escape)
  "Combinacin de tres dedos" en un CPC para provocar un reset.
  Es parecido a la combinacin 'CTRL/ALT/Del' para reset en un PC.
  Algunos programas bloquean tal reset de forma que hay que apagar el
  ordenador o usar el botn de reset. Los CPCs no tenan ese botn,
  pero era fcil construir uno.
  En CPCEMU la tecla de funcin F8 es el botn de reset.

Cursor
  Caracter en la pantalla que muestra la posicin de escritura actual.
  En algn lugar del teclado hay unas teclas de cursor que sirven para
  moverlo por la pantalla.

D-Sub
  Conectores con una forma especial.

Definiciones de formato
  Definiciones de formatos de disco.
  
Direccin Base
  Esto hay que especificarlo en muchas configuraciones si se posee una
  tarjeta de sonido.
  CPCEMU busca en una variable de entorno.

Dk'tronics
  Compaa Britnica que ofreca extensiones del hardware para el CPC,
  p.ej. expansiones de memoria.

DMA (Abreviacin de: Direct Memory Access,
  que significa Acceso Directo a Memoria)
  Acceso directo a la memoria del ordenador sin usar el procesador.
  Se usa con unidades de disco, pero para ahorrar costes no se
  implement en los CPCs.
  La tarjeta Soundblaster tambin puede usar un canal DMA, leyendo datos
  de sonido digital "a travs" de el.

DOS (Abreviacin de: disk operating system,
  que significa sistema operativo de disco)
  Siatema operativo orientado al disco, p.ej. AMSDOS, DRDOS, MS-DOS.
  Hoy en da es sinnimo para MS-DOS.

DRDOS
  DOS compatible MS-DOS por la compaa Digital Research.

E-Mail (Abreviacin de: Electronic Mail,
  que significa Correo Electrnico)
  Usar un ordenador como buzn de correo.


EMM (Abreviacin de: Expanded Memory Manager,
  que significa Gestor de Memoria Expandida)
  Parecido a EMS.

EMS (Abreviacin de: Expanded Memory System,
  que significa Sistema de Memoria Expandida)
  Ampliacin de memoria para el PC, sirve para sobrepasar el lmite de
  640KB.
  Con la tcnica de banking otras pginas de memoria se mapean en una
  ventana EMS. EMS fue desarrollado por Lotus, Intel y Microsoft, por
  esto es conocida como LIM-EMS.
  Hay EMS por hardware, emulada y simulada.
  Tarjetas de memoria especiales suministran EMS por hardware,
  principalmente usado en viejos PCs XT.
  En un PC AT con al menos procesador 80386 es posible tener EMS emulada
  usando el mecanismo de paginacin para el banking.
  Este tipo est suministrado por el EMM386.EXE y debera usarse para
  incremetar la velocidad de CPCEMU.
  La EMS simulada es demasiado lenta, tiene que copiar las pginas de
  memoria.

Emular
  Imitacin de un sistema (hardware o software) por otro.
  El sistema imitador calcula los mismos resultados basados en los mismos
  datos que el sistema imitado.
  CPCEMU emula un CPC en un PC.

Emulador
  El sistema que emula otro.

Fichero
  Coleccin de datos que estn todos juntos. En el CPC hay ficheros de
  varios tipos, p.e ficheros BASIC con programas BASIC, normalmente con
  la extensin '.BAS', ficheros ASCII con cualquier texto, y ficheros
  binarios con todo tipo de bytes, normalmente con la extensin '.BIN'.
  Los ficheros binarios pueden contener programas en cdigo mquina o
  cualquier otro dato.

Fichero BASIC
  Ver Fichero.

Fichero Batch
  Contiene instrucciones que normalmente se teclean en el ordenador. Si se
  realiza una llamada a tal fichero, las instrucciones se van ejecutando
  una por una, incluso cuando tu las introduces.

Fichero Binario
  Ver Fichero.

Frecuencia de reloj
  Mide la velocidad del procesador conectado al ordenador. Determina
  la velocidad del procesador de manera significativa. Hoy en da el
  procesador 486DX2/66 funciona a una velocidad interna de 66 MHz.
  El Z80A en el CPC tiene una velocidad de 4 MHz, funcionando de hecho
  a 3.3 MHz ya que tiene que esperar peridicamente al refresco de
  pantalla.

FTP (Abreviacin de: File Transfer Protocol,
  que significa Protocolo para Transferencia de Ficheros)
  Un protocolo para transferir ficheros en una red de ordenadores.
  Al programa que ejecuta este protocolo tambin se le suele llamar "FTP".

Hardware
  Partes de un ordenador que pueden "tocarse", p.ej. perifricos como la
  impresora, monitor; internos como el procesador y otros chips hardware.

Imagen ROM
  Fichero con el contenido de una ROM. Si lees el contenido de una ROM y
  escribes los bytes en un fichero obtienes una imagen ROM.

Inicializar
  Rellenar la memoria con valores especficos, de modo que las variables
  queden definidas.

Interface
  Conexin de un ordenador a sus perifricos o desde un programa a otro.
  Por tanto hay interfaces hardware y software.
  El tambin llamado interface Centronics es un interface paralelo,
  trasfiere los bits de un byte en paralelo. Con los interfaces serie es
  necesario transferir los bits de uno en uno.

Internet
  Una Internet est compuesta de varias sub-redes de ordenadores.
  Aqu: *La* Internet, es una red de ordenadores mundial para comunicacin.

Interrupcin
  Si el procesador recibe una seal con prioridad alta, interrumpe el
  programa que se est ejecutando y llama a un controlador especial para
  interrupciones. Cuando termina contina con el programa interrumpido.
  En un PC hay distintas seales de interrupcin, p.ej. cuando se pulsa
  una tecla, cuando un temporizador finaliza, cuando llegan datos
  procedentes del interface serie (p.ej. cuando se mueve el ratn)
  cuando la tarjeta de sonido termina de tocar su ltima muestra y
  necesita ms datos, ...
  Al Z80 en el CPC se le interrumpe unas 300 veces por segundo.

LIM estndar (Abreviacin de: Lotus Intel Microsoft)
  Expansin de memoria (EMS), desarrollada por Lotus, Intel y Microsoft.

Locomotive
  Compaa Britnica que escribi el BASIC de los CPCs.

Mailing list
  Un servicio mo, mediante el cual yo aado tu direccin email a una
  lista. De esta forma sers informado de novedades relacionadas con
  CPCEMU.

Men de configuracin
  Para cambiar los parametros de un programa, de modo que funcione de
  forma distinta.
  Puedes decirle al men de configuracin que tienes una tarjeta de sonido,
  que quieres usar un joystick, ...

Microchannel
  Arquitectura de bus especial.

MS-DOS (Abreviacin de: Microsoft Disk Operating System,
  que significa Sistema Operativo de Disco de Microsoft)
  Sistema operativo, desarrollado por la compaa Microsoft para
  procesadores de 16 bits (8086). El sistema operativo ms popular en el PC.
  Sigue usndose en los procesadores de 32 bits 80386 y 80486.

Multi Modos
  Tcnica de programacin que permite tener distintos modos de pantalla
  simultneamente en la pantalla. El modo de pantalla se cambia durante
  un refresco de pantalla ms de una vez. En el CPC se obtienen zonas con
  alta resolucin y pocos colores, y zonas con baja resolucin y muchos
  colores.

Multiface II (Abreviacin de: Multipurpose Interface,
  que significa Interace Multipropsito)
  Una extensin hardware para el CPC. permite interrumpir cualquier
  programa en cualquier momento y analizarlo o guardarlo.
  Desarrollado por la compaa Britnica Romantic Robot.

Nmero de Interrupcin IRQ (IRQ=Abreviacin de: Interrupt Request,
  que significa Peticin de Interrupcin)
  En un PC las distintas interrupciones tienen asignados nmeros
  diferentes.
  Por ejemplo, la interrupcin del teclado tiene el nmero 9,
  la interrupcin del temporizador tiene el nmero 8. Si se pulsa una
  tecla el teclado enva una peticin de interrupcin al procesador,
  de modo que ste este informado.
  
OS (Abreviacin de: Operating System,
  Significa Sistema Operativo)
  Programa necesario para usar un ordenador. Suministra funciones bsicas
  a las aplicaciones. Los nuevos sistemas operativos realizan complicadas
  tareas como programacin de eventos en sistemas multitarea, ...

Overscan
  Es el borde que est alrededor de la zona de escritura en pantalla.
  En el PC es muy pequeo pero se le puede cambiar el color, p.ej. en
  CPCEMU con 'BORDER 10'. En el CPC el overscan es mucho ms amplio,
  por esto los programadores han buscado la forma de escribir en el.
  Mediante trucos de programacin es posible escribir en toda la
  pantalla.
  A esta tcnica de programacin se le llama overscan.

Parmetro
  Variable con un significado especfico, el comportamiento del programa
  se basa en esto.

Parmetro en lnea de comandos
  Parmetro que se especifica en la lnea de comandos despus del
  fichero al que se quiere llamar.

Path de Bsqueda en DOS
  El DOS usa un path compuesto por subdirectorios para buscar un fichero.
  Esta especificado en la variable de entorno 'PATH'.

PC (Abreviacin de: Personal Computer,
  que significa Ordenador Personal)
  Ordenador con un microprocesador como procesador (o CPU=central processing
  unit, que significa unidad central de proceso). Hoy en da es sinnimo del
  IBM PC con procesador 8086  8088.
  Los PC AT (advanced technology, que significa tecnologa avanzada) son
  ordenadores con procesador 80286, 80386  80486.

PEEKs y POKEs:
  Instrucciones BASIC para modificar la memoria directamente.
  'PEEK(<direccin>)' se usa para leer un byte de memoria,
  'POKE <direccin>,<nmero>' modifica la memoria. Los programas con
  muchos PEEKs y POKEs son difciles de comprender, pero algunas veces
  es necesario superar los lmites del BASIC, especialmente si el BASIC
  tiene pocas instrucciones.

PKUNZIP
  Programa de PK-Software para descomprimir archivos ZIP.

RAM (Abreviacin de: Random Access Memory,
  que significa Memoria de Acceso Aleatorio).
  Chip de memoria. Memoria del ordenador.
  Los CPCs tienen bien 64KB (kilo bytes) de RAM  o 128KB. Con extensiones
  hardware podan llegar a tener hasta 576KB de RAM.


Representaciones numricas
  Dependiendo de la base elegida hay distintas representaciones para el
  mismo nmero.
  Es bien conocida la representacin decimal con base 10 y los dgitos del
  0 al 9.
  Los ordenadores usan la representacin binaria (base 2) con los dgitos
  0 y 1. Los programadores prefieren la representacin hexadecimal con
  base 16, ya que 16 es una potencia de 2 (2 elevado a 4). Por esto las
  representaciones pueden calcularse fcilmente de una a otra. Adems un
  byte necesita slo 2 dgitos (0 a 9, A a F) en la notacin hexadecimal.

ROM (Abreviacin de: read-only-memory,
  que significa memoria de slo lectura).
  Chip de memory. Memoria que slo puede leerse pero no modificarse.
  Est disponible nada ms encender el ordenador.
  Los CPCs tienen 16KB de ROM del OS, 16KB de ROM del BASIC y 16KB de ROM
  para el AMSDOS.

RS-232
  Interface serie para conectar monitores o impresoras al ordenador.
  (RS 232 C).

Schneider
  Compaa Alemana, fue la que vendi los CPCs en Alemania.

Screen mode

Scroll por hardware
  Mover la pantalla sin que el procesador tenga que copair de una parte a
  otra. El procesador slo tiene que modificar la direccin base de la
  pantalla, el resto lo hace el chip hardware.

Sesin DOS en OS/2
  Una ventana, bajo el sistema operativo de 32 bits de IBM, donde se
  pueden ejecutar programas DOS. La tambin conocida como
  "DOS compatibility box" (ventana de compatibilidad DOS).

SIMTEL
  Un archivo enorme de software que est en USA.
  El Depsito de Software Simtel (SimTel Software Repository) lo
  mantiene Coast to Coast Telecommunications, Inc. (CCT) en su servidor
  de Internet situado en "SimTel.Coast.NET". Este archivo tiene mirrors
  (copias) en otros lugares. Uno de los mirrors es la Universidad de
  Oakland situado en "OAK.Oakland.Edu".

Snapshots
  Un volcado de memoria completado con estados internos de los chips
  hardware.
  Este contiene la descripcin completa de un estado momentneo del
  ordenador.
  Si el snapshot se vuelve a cargar el ordenador vuelve al estado que
  est descrito en el snapshot.
  Por tanto es similar a un snapshot (foto) real, solo que dentro del
  ordenador.

Software
  Programas de un sistema computerizado.

Soundblaster
  Tarjeta de sonido de la compaa Creative Labs.

Spectrum
  El Sinclair Spectrum es un ordenador domstico desarrollado por la
  compaa Sinclair.

Compilador de Turbo Pascal
  Pascal es un lenguaje de programacin de alto nivel que permite
  programacin estructurada, hoy en da es usado en muchos centros de
  enseanza.
  Si alguien habla de Pascal, puede que se refiera ms a Turbo Pascal,
  an cuando ste es slo un Pascal extendido hecho por la compaa
  Borland. El compilador de Turbo Pascal es particularmente rpido
  porque compila el programa en una sola pasada.

Utilidad
  Programa muy til.

Variable de entorno BLASTER
  Ver Variable de entorno.

VGA (Abreviacin de: Video Graphics Array,
  que significa Vector para Grficos de Video)
  Grficos estndar en el PC. Sucesor de la CGA (Colour Graphics
  Adapter, que significa Adaptador para Grficos en Color), de la MCGA
  (Multi Colour Graphics Adapter, que significa Adaptador para Grficos
  en Multiples Colores) y EGA (Enhanced Graphics Adapter, que significa
  Adaptador para Grficos Mejorado). Ampliado a la SVGA (Super VGA) con
  resoluciones mayores.

VGA-BIOS (Abreviacin de: VGA Basic Input Output Operating System,
  que significa Sistema Operativo Bsico de Entrada Salida para la VGA)
  El sistema operativo para la tarjeta grfica VGA.

Windows
  Algo que puede ponerse en DOS.

Z80
  Un procesador de 8 bits desarrolado por la compaa Zilog. Es compatible
  con el 8080 de Intel y fue muy popular.
  En el CPC hay un Z80A que funciona a una velocidad de 4 MHz.

Z80, instrucciones
  Instrucciones mquina que el Z80 entiende.
  No son ms que cifras numricas, por lo que para recordarlas ms
  fcilmente se crearon los mnemonicos, que son traducidos por un
  ensamblador en cdigos binarios.
  La instruccin "LD A,B" carga el registro A con el conenido del
  registro B y es lo mismo que el cdigo binario 0x78.
  
ZIP
  Un proceso especial de comprimir ficheros.
  Los archivos llevan la extensin "ZIP".





A.2  Bibliografa



El manual del CPC es indispensable para principiantes del CPC:
- Spital Ivor und Perry, Roland und Poel, William und Lawson,Cliff:
    CPC 6128 Benutzerhandbuch, Schneider Computer Division 1985,
    Originalausgabe (c) 1985 (my one contains 1895)
    by AMSOFT, AMSTRAD Consumer Electronics plc and Locomotive
    Software Ltd.

Un listado de la ROM muy bien comentado, con captulos iniciales que
tratan especialmente del CPC por el lado del software:
- Janneck, Joern W. und Mossakowski,Till: ROM-Listing CPC 464/664/6128,
    Markt & Technik Verlag 1986

Por el contrario: mal estructurado, comentado extraamente, trata ms
el lado del hardware:
- Brueckmann, Englisch, Gertis: CPC 464 Intern mit kommentiertem
    ROM-Listing, Data Becker 1985

Es bueno aprender C, con muchos ejercicios:
- Kellay, Al and Pohl, Ira: A Book on C, Second Edition, 1990 by
    Benjamin/Cummings Publishing Company, Inc.

El libro estndar de C++:
- Stroustrup, Bjarne: The C++ Programming Language, Second Edition,
  Addison-Wesley, 1992

Otro buen libro de C++:
- Eckel, Bruce: C++ Inside & Out, 1993 by Osborne McGraw-Hill

Consejos, como escribir un manual legible y bueno, nos lo da:
- Boedicker, Dagmar: Handbuch-Knigge, Software Handbuecher schreiben
    und beurteilen. Wissenschaftsverlag 1990





A.3  Indice


Los nmeros detrs de los elementos muestran el captulo en el cual estn
descritos.

(incompleto)

#ENDIF 4.2
#IFCPC 4.2
22DISK 5.1.2
Adaptador, paralelo 5.2
AMSDOS_DI 4.2
AMSDOS_SPDUP 4.2
BLASTER Entorno 2.3.2
BREAK_MASK 4.2
Casete 3.2.2
COLOUR 4.2
CPC 1.3
CPC Grupo de noticias 6.2
CPCEMU.CFG 4.2
CPCPARA.BAS 5.2
CPCREC.BAS 5.2
CPCTRANS.EXE 5.1.1
DELAY 4.2
Disco 3.2.1
DRIVE_A 4.2
DRIVE_B 4.2
EMS_EI 4.2
Fichero de configuracin 4.2
Imagen de disco 3.2.1
INT_FREQ 4.2
INT_RESUME 4.2
JOY_CALIBRATE 4.2
KBD_LANGUAGE 4.2
Keyboard 3.1
Memoria EMS 2.3.1
Men de depuracin 7.3
Men de configuracin 4.1
Menus 3.2.1
Multi Modo 4.1
MULTIMODE 4.2
PCPARA.EXE 5.2
PIO_PORT_B 4.2
PRINTER 4.2
RAM_SIZE 4.2
ROM_BLOCK 4.2
ROM_PATH 4.2
SBLASTER 4.2
SB_DELAY 4.2
SHOW_CONFIG 4.2
SNAPSHOT 4.2
Snapshot 3.2.3
SOUND 4.2
Soundblaster 2.3.2
TAPE_BYPASS 4.2
TAPE_PATH 4.2
TMP_PATH 4.2
Teclas de funcin 3.1
VSYNC Bit 4.1


------------------------------------------------------------------------------
final
------

