

    ######+  ########++      ######+   ########+  ####    ####++  ##++     ##++

  ##++++++   ##+++++##++   ##++++++    ##++++++   ##+##  ##+##++  ##++     ##++

 ##++        ##++   ##++  ##++         ##+++      ##++ ##++ ##++  ##++     ##++

 ##++        ########++   ##++         ########+  ##++ +++  ##++  ##++     ##++

 ##++        ##++++++     ##++         ##++++++   ##++      ##++  ##++     ##++

  ##++       ##++          ##++        ##++       ##++      ##++  ##++     ##++

    ######+  ##++            ######+   ########+  ##++      ##++   #########++

    +++++++  ++++            +++++++   +++++++++  ++++      ++++   ++++++++++



                                                                      v3.0





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





                                     (c) Marco Vieth 2001

                        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



  e:



         Rainer Loritz

         Rosenbachweg 4/Whg. 1

         D-37075 Gttingen



  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 {DOS}

    ALT a la izquierda {No-DOS}



  - 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. {DOS solamente}



  - 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. {DOS solamente}

  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

------



