
    ²²²²²²±  ²²²²²²²²±±      ²²²²²²±   ²²²²²²²²±  ²²²²    ²²²²±±  ²²±±     ²²±±
  ²²±±±±±±   ²²±±±±±²²±±   ²²±±±±±±    ²²±±±±±±   ²²±²²  ²²±²²±±  ²²±±     ²²±±
 ²²±±        ²²±±   ²²±±  ²²±±         ²²±±±      ²²±± ²²±± ²²±±  ²²±±     ²²±±
 ²²±±        ²²²²²²²²±±   ²²±±         ²²²²²²²²±  ²²±± ±±±  ²²±±  ²²±±     ²²±±
 ²²±±        ²²±±±±±±     ²²±±         ²²±±±±±±   ²²±±      ²²±±  ²²±±     ²²±±
  ²²±±       ²²±±          ²²±±        ²²±±       ²²±±      ²²±±  ²²±±     ²²±±
    ²²²²²²±  ²²±±            ²²²²²²±   ²²²²²²²²±  ²²±±      ²²±±   ²²²²²²²²²±±
    ±±±±±±±  ±±±±            ±±±±±±±   ±±±±±±±±±  ±±±±      ±±±±   ±±±±±±±±±±

                                                                      v1.4


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


                                  (c) Marco Vieth, March 1996

                                        Traduction
                                   par Emmanuel Roussin
                                (du d‚but … la section 5.2)

                                  par Jean-Pierre MARQUET
                           (de la section 5.2 … la fin, avec des
                          retouches d'Emmanuel Roussin d'aprŠs la
                             documentation anglaise de la v1.4)

                                     (voir section 6.1)
                                  


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



Sommaire

       1.  Introduction
           1.1  Conseils pour lire cette documentation
           1.2  Copyright, garantie
           1.3  Qu'est-ce qu'un CPC ?
           1.4  Que peut faire CPCEMU pour vous ?

       2.  Installation de CPCEMU
           2.1  Fichiers qui composent CPCEMU
           2.2  Configuration n‚cessaire et installation
           2.3  Conseils au sujet de la m‚moire et de la carte son
             2.3.1  Utiliser la m‚moire EMS
             2.3.2  D‚finir la variable d'environnement BLASTER
             2.3.3  D‚finir la variable d'environnement ULTRASND

       3.  Differences entre un CPC et CPCEMU
           3.1  Clavier
           3.2  Chargement de programmes, de menus
             3.2.1  Chargement depuis une disquette, Menus
                    - le menu d'insertion d'une disquette
                    - le menu d'affichage des fichiers
             3.2.2  Chargement et sauvegarde sur cassette
             3.2.3  Chargement et sauvegarde de snapshots

       4.  Changer la Configuration
           4.1  Le menu de configuration
           4.2  Le fichier de configuration
           4.3  Les paramˆtres de commande en ligne

       5.  Transferts de fichiers entre CPC et PC
           5.1  A partir d'une disquette
             5.1.1  Le programme de transfert de disquette CPCTRANS
             5.1.2  L'utilitaire de formatage et copie 22DISK par SYDEX
           5.2  L'interface parallŠle
             - L'adaptateur parallŠle
           5.3  L'interface s‚rie
           5.4  D'autres possibilit‚s

       6.  Sources d'approvisionnement, Aide en ligne, Remerciements
           6.1  O— puis-je obtenir des programmes pour CPC ?
           6.2  Nouvelles, ‚change d'exp‚riences
           6.3  Si vous avez des questions ou des suggestions
           6.4  D'autres ‚mulateurs CPC
           6.5  Plans pour de futures versions de CPCEMU
           6.6  Remerciements
           6.7  Marques d‚pos‚es

       7.  Informations internes sur CPCEMU
           "la boite noire", avec son propre sommaire


       Annexe:

       A.1  Glossaire
       A.2  Bibliographie
       A.3  Index


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





1.  Introduction
________________


Bienvenue dans le monde des ‚mulateurs !

Comment ! Vous voulez savoir ce qu'est CPCEMU, et ce que vous pouvez
faire avec l'‚trange programme avec une ‚criture jaune sur un ‚cran bleu
qui vous affiche 'Syntax Error' … chaque saisie ?


Bien, pour ‚viter une longue recherche, et voila :

        CPCEMU ‚mule un Amstrad CPC 464, 664 ou avec de nombreuses
        extensions. En d'autres mots, ce programme imite le comportement
        d'un des vieux micro-ordinateurs … base de Z80 sur votre PC.

Dans quel but ?

Et bien, si vous n'avez pas encore d'id‚es, alors vous n'avez pas besoin
de CPCEMU.

Quelques raisons :

        - la nostalgie, comme mon bon vieux CPC ‚tait bien...
        - de meilleurs performances compar‚ … l'original
        - un meilleur environnement pour d‚velopper des programmes
        - jouer … des jeux
        - travailler, oui, un CPC is assez bien pour faire du traitement
        de texte
        - [                                  ] <- ins‚rer vos propres
                                                  raisons.




1.1  Conseils pour lire cette documentation
===========================================

  Vous devriez d'abord essayer l'aide en ligne, si vous voulez plus
  d'informations, vous pouvez lire ceci...

  J'ai essay‚ d'‚crire clairement cette documentation (NDT : et moi de la
  traduire correctement). Mais si vous avez encore des questions, aprŠs
  l'avoir lu plusieurs fois, vous pouvez me contacter. Vous pouvez le
  faire aussi, mˆme si tout est clair, regardez au chapitre 6.

  Dans le chapitre 1, introduction, je d‚cris comment lire cette
  documentation, qui a le copyright, et certaines choses sur les CPC en
  g‚n‚ral.


  Dans le chapitre 2, installation, cela commence enfin. Vous pourrez
  lire comment installer et d‚marrer CPCEMU.

  Le chapitre 3, diff‚rences entre un CPC et CPCEMU, traite de certaines
  aspects que vous devez connaitre si vous ˆtes familiers avec un vrai
  CPC, et que vous voulez utiliser l'‚mulateur maintenant. Je d‚cris
  principalement le clavier, les disquettes, les cassettes et les
  snapshots.

  Dans le chapitre 4, changer la configuration, je d‚cris comment
  configurer CPCEMU selon vos besoins. Votre programme pr‚f‚r‚ pourra
  ainsi sans doute fonctionner.

  Dans le chapitrer 5, transfert entre un CPC et un PC, vous pourrez
  d‚couvrir comment transf‚rer vos programmes du CPC au PC. Les
  utilitaires fournis avec CPCEMU pour effectuer le transfert sont aussi
  d‚crits dans ce chapitre.

  Le chapitre 6, sources d'approvisionnement, aide en ligne,
  remerciements, vous apprend comment obtenir la derniŠre version de
  CPCEMU, et … qui vous pouvez poser des questions, si vous en avez.

  Le Chapitre 7, informations internes sur CPCEMU est pour les
  professionnels seulement. La partie officielle pour les utilisateurs
  finit avant ce chapitre. Je d‚cris comment programmer un tel
  ‚mulateur, et ce que vous avez besoin de savoir. Je d‚cris aussi le
  menu de debuggage de CPCEMU, qui vous permets d'analyser le processeur
  et la m‚more … n'importe quel moment. Les simples utilisateurs
  devraient ‚viter ce chapitre, du moins … leur premiŠre lecture.

  Dans l'annexe A.1, il y a un glossaire avec les descriptions des
  termes techniques les plus importants. L'annexe A.2 est une
  bibliographie, l'annexe A.3 est l'index.



1.2  Copyright, garantie
========================

  CPCEMU est d‚velopp‚ par (voir aussi section 6.3):

         Marco Vieth
         Auf dem Uekern 4
         D-33165 Lichtenau
         ALLEMAGNE

  CPCEMU est freeware, ce qui signifie que vous pouvez donner ce
  programme … vos amis et … vos connaissance GRATUITEMENT.

  Les sysops de BBS sont autoris‚s … mettre CPCEMU sur leur BBS pour
  t‚l‚chargement.

  Les distributeurs de shareware sont autoris‚s … distribuer CPCEMU,
  seulement s'ils prennent une petite somme repr‚sentant les frais de
  copie pour leurs clients.

  Compar‚ au domaine public, freeware ne signifie pas que le programme
  est gratuit et que vous pouvez faire tout ce que vous voulez avec.
  Cela signifie que le copyright, les droits juridiques m'appartiennent
  toujours.

  Le programme et sa documention (ainsi que cette traduction) est
  fournie telle quelle, sans aucune garantie.


  Bien que ce programme soit freeware, j'accepterai volontiers toute
  sorte de support, technique ou financier, voyez le chapitre 6 pour
  plus de d‚tails.

  (Note du traducteur : j'ai moi mˆme envoye‚ de l'argent … Marco Vieth
  tout simplement par mandat postal international, en allant dans une
  poste. Pensez un peu … ce que le programme repr‚sente comme travail,
  et au plaisir que vous aurez sans doute … l'utiliser, cela vaut bien
  un peu d'argent, n'oubliez qu'il ne fait pas le bonheur, alors qu'une
  bouff‚e de nostalgie peut faire du bien)



1.3  Qu'est-ce qu'un CPC ?
====================

  Si vous savez d‚j… ce qu'est un CPC, sautez simplement cette section
  et continuez … lire la section 1.4

  Encore la ?

  Je ne veux pas diss‚quer le CPC maintenant, je vais seulement donner
  une retrospective pour que vous puissiez comprendre ce qu'est un CPC.

  CPC est une abbr‚viation pour 'Colour Personal Computer' soit
  Ordinateur Personnel en Couleur. Les ordinateurs de ce type furent
  tout d'abord construits en 1984 par le constructeur britannique
  Amstrad, et furent vendus sous diff‚rents noms dans d'autres pays.

  C'‚tait la p‚riode des ordinateurs familiaux : Commodore C64, Sinclair
  Spectrum, Atari 800XL... Quand le CPC 464 fut con‡u, il avait autant
  de m‚more vive (RAM) que le Commodore 64, un lecteur de cassette
  incorpor‚, le basic Locomotive 1.0. Le micro-ordinateur suivant fut le
  CPC 664 avec un lecteur de disquette 3" et le langage basic ‚tendu
  (Locomotive Basic 1.1). Le CPC 6128 arriva en 1985, avec 128 Ko de RAM
  et presque toutes les possibilit‚s du 664. Les disquettes 3" ‚taient
  chŠres, mais plus stable que les disquettes 5,25", presque aussi
  stables que les disquettes 3,5" d'aujourd'hui, de plus, c'‚tait
  notablement plus rapide que le lecteur de cassettes, ce qui n'‚tait
  pas le cas avec le C64...

  Ces trois modŠles (464, 664 et 6128) ‚taient vendus avec un moniteur
  couleur ou monochrome (vert), avec alimentation int‚gr‚e. Plus tard il
  y eut d'autres modŠles, le CPC+ par exemple.

  Le basic avec prŠs de 178 instructions ‚tait puissant et rapide.
  Quelqu'un pouvait programmer du graphisme, des sons et mˆme des
  interruptions tout en ‚vitant des PEEKs et des POKEs. L'offre
  logicielle s'‚toffa au fil des ans.




1.4  Que peut vous offrir CPCEMU ?
=================================

  Ce qui suit est un bref aper‡u de ce que CPCEMU peut vous offrir. Dans
  les sections suivantes de la documentation, cela vous est expliqu‚
  plus clairement.

  Du graphisme dans 3 modes d'‚cran diff‚rents (X x Y x COLEURS):

       Mode 0: 180x200x16
       Mode 1: 320x200x4
       Mode 2: 640x200x2
       (Avec un BIOS VESA, ces graphiques peuvent ˆtre affich‚s dans une
       r‚solution de 640x400x16 au 1280x1024x16, suivant votre moniteur
       et votre carte VGA)

  Son : soit … partir du haut-parleur du PC, d'une soundblaster (3
        voies en st‚r‚o) ou GUS (Gravis Ultrasound Spectrum)

  M‚moire :
       ROM: OS, BASIC, AMSDOS, jusqu'… 13 ROMs additionnelles (avec de l'EMS)
       RAM: 64KB, 128KB, jusqu'… 576 Ko de m‚moire compatible avec
            l'extention Dk'tronics (avec de l'EMS)

  Disquette : des fichiers MS-DOS repr‚sentant un image de disquette,
              ayant l'extension .DSK, ces fichiers se retrouvent dans un
              sous-r‚pertoire sp‚cial : DISC

  Cassette: des fichiers standard sous DOS, par exemple des programmes
            basic et binaire avec les extensions .BAS et .BIN
            respectivement. Ces fichiers se trouvent dans un
            sous-r‚pertoire sp‚cial : TAPE

  Snapshots : vous pouvez faire des copies de la m‚moire alors que vous
              utilisez un programme, pour le reprendre plus tard au mˆme
              point, exactement comme avec une Multiface II. Les
              snapshots sont des fichiers ayant l'extension .SNA, se
              trouvant dans un r‚pertoire sp‚cial : SNAP

  Vitesse : avec un 386/33 et de la m‚moire EMS, CPCEMU est plus rapide
            qu'un vrai CPC. Avec un mode 'temps r‚el', vous pouvez
            ralentir l'‚mulateur pour obtenir la vitesse exacte d'un
            CPC.




2.  Installation de CPCEMU
__________________________

  Dans ce chapitre vous allez apprendre comment installer et d‚marrer
  CPCEMU. Dans la section 2.2, vous lirez des astuces au sujet de
  l'utilisation de la m‚moire EMS et de la carte sound blaster.


  L'installation complŠte modifiable par l'utilisateur avec le fichier
  de configuration est d‚fini dans le chapitre 4 (modifier la
  configuration)



2.1  Fichiers composants l'‚mulateur CPCEMU
============================================

  Vous avez re‡u CPCEMUxx.xxx avec les fichiers suivants  (j'ai indiqu‚
  entre crochet le r‚pertoire o— se trouve le fichier aprŠs
  installation) :

  COPYMATE.ROM   ROM avec un programme de copie (ROM)
  CPC464.BAT     batch de lancement avec une ROM de CPC 464
  CPC464.ROM     ROM (firmware+BASIC) d'un  CPC 464 (ROM)
  CPC664.BAT     mˆme chose pour un 664
  CPC664.ROM     (ROM)
  CPC6128.BAT    mˆme chose pour un CPC 6128
  CPC6128.ROM    (ROM)
  CPCADOS.ROM    AMSDOS pour tous les CPCs (ROM)
  CPCEMU.CFG     le fichier de configuration pour tous les CPC  (ou CPCEMU0.CFG)
  CPCEMU.DAT     le fichier de ressource pour CPCEMU
  CPCEMU.DBF     base de donn‚es en asci de pokes
  CPCEMU.HLP     l'aide en ligne, appurez sur F1
  CPCEMU.EXE     l'‚mulateur
  CPCEMU.MSG     le fichier de messages (n‚cessaire)
  CPCEMU_D.TXT   documentation en allemand
  CPCEMU_E.TXT   documentation en anglais
  CPCEMU_F.TXT   documentation en fran‡ais (ce fichier)
  CPCPARA.BAS    programme en basic Locomotive pour le port parallŠle (UTILITY)
  CPCPD1.DSK     image d'une disquette avec des programmes du domaine public (DISC)
  CPCREC.BAS     programme en basic Locomotivepour recevoir des programmes du PC(UTILITY)
  CPCT0.BAT      exemple d'un fichier batch pour CPCTRANS.EXE (UTILITY)
  CPCTRANS.CFG   le fichier de configuration pour CPCTRANS
  CPCTRANS.EXE   programme pour trransf‚rer des images de disquettes (UTILITY)
  CPMDISKS.DEF   fichier de d‚finition de formats disquette pour l'utiltaire externe 22DISK (UTILITY)
  FILE_ID.DIZ    fichier de description de l'archive CPCEMUxx.xxx
  INSTALL.BAT    batch d'installation
  PCPARA.EXE     programme de transfert du cot‚ PC par le port parallŠle (UTILITY)
  README_D.TXT   lisezmoi allemand
  README_E.TXT   lisezmoi anglais
  README_F.TXT   lisezmoi fran‡ais
  README_S.TXT   lisezmoi
  ROMGET.BAS     programme basic Locomotive-pour r‚cup‚rer les ROMs utilisables par CPCEMU (UTILITY)
  SNA2GIF.EXE    un programme de capture d'‚crans d'un snapshot en GIF

  Les ROMs originales d'Amstrad sont aussi incluses.

  Le copyright du Firmware est d‚tenu par Locomotive Software, le
  copyright du BASIC est d‚tenu par Amstrad. Amstrad et Locomotice
  Software me permettent de distribuer les ROMs avec l'‚mulateur.



2.2  Configuration n‚cessaire et Installation
==================================

  Vous aurez besoin au moins (tout en pouvant avoir plus ‚videmment) :

  - PC AT 386 avec carte graphique VGA
  - MS-DOS, EMS de pr‚f‚rence, ou
    Novel DOS (DRDOS) ou
    une boite DOS sous OS/2 2.x, 3.0
  - PKUNZIP.EXE dans le chemin du DOS, si vous voulez lancer des
  programmes … partir d'une archive ZIP.


  L'installation est trŠs simple :

  Copiez l'archive CPCEMUxx.ZIP sur votre disque dur, et d‚compressez la
  avec la commande 'PKUNZIP CPCEMUxx.ZIP'. Lancez INSTALL.BAT pour cr‚er
  certains sous-r‚pertoires.

  Lancez CPC CPC464.BAT, CPC664.BAT ou CPC6128.BAT suivant le CPC que
  vous pr‚f‚rez. AprŠs l'‚cran pr‚sentant la configuration utilis‚e (cet
  ‚cran peut ˆtre ‚vit‚, voir plus bas), appuez sur <ENTREE> et l'‚cran
  bien connu du CPC apparait avec les caractŠres jaunes sur fond bleu.

  Vous pouvez quitter l'‚mulateur avec la touche de fonction F12.

  Essayez donc avant de continuer … lire plus en avant cette
  documentation.

  Si certaines erreurs apparaissent durant l'‚cran pr‚sentant la
  configuration utilis‚e, vous ˆtes plac‚ dans le menu debug, que vous
  pouvez quitter avec la commande 'q'.

  Dans certains cas, il est parfois utile de rediriger les messages dans
  un fichiers, lan‡ant l'‚mulateur de cette fa‡on : CPCEMU > INIT.TXT
  Vous pourrez ainsi analyser le problŠme plus tard.



2.3  Conseils … propos de la m‚moire et de la carte son
=======================================================

  Ce qui suit vous aidera si vous appr‚ciez une ‚mulation rapide, ou si
  votre carte son n'est pas reconnu.


  2.3.1  Utiliser la m‚moire EMS
  ------------------------------

    Vous devriez avoir de la m‚moire EMS, soit grace … du mat‚riel, soit
    le plus souvent par voie logicielle. Cela augmente la vitesse de
    l'‚mulation de fa‡on significative, surtout avec le basic.

    Tout ce dont vous avez besoin est un EMM (Expanded Memory Manager,
    soit un gestionnaire de m‚moire 'expans‚e') supportant la norme the
    LIM 4.0 qui est le standard (LIM EMS 4.0)

    Si vous avez de l'EMS, un compteur apparaittra ('EMS xxx Bytes ok.')
    pendant l'‚cran pr‚sentant la configuration utilis‚e. Sinon vous
    lirez "Sorry, using conventional memory".

    Exemple sous OS/2 2.x (configuration pour la fenˆtre DOS)

        EMS_FRAME_LOCATION = auto
        EMS_HIGH_OS_MAP_REGION = 32     (ou plus)
        EMS_LOW_OS_MAP_REGION = 0       (ou plus)

    Exemple sous DOS dans le fichier CONFIG.SYS

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






  2.3.2  D‚finir la variable d'environnement BLASTER
  --------------------------------------------------

    Pour obtenir le son … partir de votre carte soundblaster, vous devez
    d‚finir la variable d'environnement BLASTER correctement. Utilisez
    soit le programme SET-ENV.EXE ou SBTEST.EXE qui vient avec votre
    carte, soit modifiez le fichier AUTOEXEC.BAT directement.

    Dans AUTOEXEC.BAT, vous devez avoir une ligne similaire … ce qui
    suit :

    SET BLASTER=A220 I7 D1 T3

    A d‚finit l'adresse de base (0x220)
    I d‚finit l'IRQ (7)
    D d‚finit le canal DMA (1)
    T d‚finit la version de votre carte :
        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

    Pour les versions 2, 4, 5 et 6, le son st‚r‚o est suppos‚.

    Il y a d'autres paramˆtres qui sont ignor‚s :

        H sp‚cifie le canal DMA 16 bits pour les cartes 16 bits (5 et 6)
        M sp‚cifie l'adresse de base du mixer de la sound blaster (224)
        P sp‚cifie l'adresse MIDI (330)


  2.3.3  D‚finir la variable d'environnement ULTRASND
  ---------------------------------------------------
    Pour
    Pour obtenir le son … partir de votre carte GUS, vous devez d‚finir
    la variable d'environnement ULTRASND correctement.





3.  Differences entre CPC et CPCEMU
______________________________________

  Dans ce chapitre, je d‚cris certaines caract‚ristiques qui sont
  diff‚rentes dans CPCEMU par rapport … un vrai CPC. Dans la prochaine
  sections, certaines touches sp‚ciales sont mentionn‚es,
  particuliŠrement les touches de fonctions. Plus en avant, les sections
  vous apprennent comment charger un programme … partir d'une disquette
  ou du lecteur de cassette.



3.1  Le clavier
===============

  Vous avez peut-ˆtre remarqu‚ que les touches de fonctions du PC ne
  sont pas g‚r‚es comme celles du CPC. Elles produisent certaines choses
  qui sont d‚crites ici. Ou peut-ˆtre avez-vous cherch‚ la touche COPY
  pendant des heures.

  Toutes les touches CPC sont r‚ellement localis‚es … un endroit, vous
  pouvez en ˆtre assur‚s. Le secret est ici d‚voil‚ :

  - ALT, ALTgr : la touche COPY du CPC

  - la touche grise PAUSE : bloque le PC jusqu'… qu'elle soit press‚e …
    nouveau. Si les touches de fonction de votre PC ne r‚agissent plus,
    vous avez sans doute appuy‚ sur la touche PAUSE.

  - le bloc num‚rique : suivant l'‚tat de la diode Num Lock, le bloc
    num‚rique agit diff‚remment. Quand Num Lock est allum‚e, le bloc
    repr‚sente les touches de fonction du CPC, sinon c'est le
    joystick qui est ‚mul‚.

    Si vous voulez utiliser un joystick analogique PC, vous aurez besoin
    de le calibrer tout d'abord (voir le chapitre 4, changer la
    configuration).


  Et pour ˆtre complet :

  - Page up/down: d‚place entiŠrement l'‚cran CPC (ne me demandez pas
    son utilit‚)

  Et bien s–r les touches de fonction :

  F1  : l'aide en ligne, sans doute la touche la plus utile au d‚but.
  F2  : basculer entre l'‚cran du CPC et l'‚cran de message (celui avec
        un bord rouge). Sur ce dernier ‚cran, certains messages de
        contr“le peuvent apparaŒtre. Utilisez le deux fois de suite
        quand les couleurs de l'‚cran CPC ne vous apparaissent pas comme
        ‚tant les bonnes.
  F3  : pour ins‚rer une disquette, regardez la section 3.2.1
  F4  : basculer le son/pas de son.
  F5  : Charger un snapshot (une copie de la m‚moire du CPC … un moment
        donn‚, comme avec une Multiface), regardez la section 3.2.3
  F6  : Sauvegarder un snapshot, regardez la section 3.2.3
  F7  : Le menu de configuration, regardez la section 4.1
  F8  : Relancer le micro (reset), comme le bouton reset pour le CPC.
        Utilise le si la combinaison de touches CTRL/SHIFT/ESC ne
        fonctionne plus.
  F9  : R‚serv‚ pour un futur usage.
  F10 : Menu de debuggage, expliqu‚ dans le chapitre 7. Si vous y
        arrivez par idnavertance, tapez 'r' pour R)un ou 'q' pour Q)uit.
  F11 : R‚serv‚ pour un futur usage.
  F12 : Quitter l'‚mulateur




3.2  Chargement de programmes, de menus
=======================================

  Dans cette section, vous apprendrez comment charger des programmes …
  partir d'une disquette, du lecteur de cassette ou de snapshots.
  Evidemment la mˆme chose est valable pour la sauvegarde. Il est aussi
  expliqu‚ l'utilisation des menus.



  3.2.1  Chargement … partir d'une disquette, de menus
  ----------------------------------------------------

    Dans des conditions normales d'utilisation, AMSDOS (Amstrad DOS) est
    actif, et toutes les instructions de fichiers utilisent le lecteur
    de disquette.

    Vous n'avez pas besoin d'ins‚rer une v‚ritable disquette CPC dans
    votre lecteur PC chaque fois que vous acc‚der … un fichier (surtout
    que vous n'avez sans doute que des disquettes 3 pouces).

    Pour obtenir une meilleure vitesse, les disquettes CPC sont
    contenues dans une image de disquette, des fichiers DOS ayant une
    extension .DSK qui peuvent se trouver n'importe ou sur votre
    disque dur, ou lecteur de disquette, mais de pr‚f‚rence dans le
    sous-r‚pertoire DISC.

    Voici  quelques instructions en BASIC AMSDOS :

    - CAT <RETURN> : affiche le catalogue


    - avec 'RUN"<nom de fichier>"', vous pouvez charger et lancer un
      programme. Vous pouvez ne pas mettre le guillemet de fin. Cette
      instruction is utile pour les programmes BASIC ayant l'extension
      .BAS, et dans de nombreux cas pour les programmes binaires ayant
      l'extension .BIN

      Un moyen simple de lancer un programme :
      1. tapez le nom du fichier, 'disc' par exemple, sans appuyez sur
         <RETURN>
      2. Appuez sur la touche CTRL et la flŠche cuseur gauche (le
         curseur se d‚place sur la premiŠre colonne)
      3. Toujours en maintenant la touche CTRL, appuez sur la touche
         ENTER du bloc num‚rique (RUN"disc apparait et le programme se
         charge)

    - LOAD"<nom du fichier>" charge un fichier sans le lancer. Vous
      pouvez afficher des programmes en BASIC avec la commande LIST, et
      les lancer avec la commande RUN. Habituellement les programmes
      binaires ne se chargeront pas avec LOAD, mais essayez la commande
      MEMORY d'abord, par exemple 'MEMORY &1fff'

    - SAVE"<nom de fichier>" sauvegarde un programme en BASIC. Pour les
      programmes binaires, vous devez sp‚cifier d'autres paramˆtres, par
      exemple  'SAVE"<nom de fichier",b,&c000,&4000' sauvegardera
      l'‚cran, que vous pourrez recharger avec 'LOAD"<nom de fichier>",&C000

    - MERGE"<nom de fichier>" est aussi possible. Il fusionne un
      programme en BASIC avec celui d‚j… en m‚moire.

    Certaines commandes sp‚ciales d'AMSDOS n‚cessitent un tiret vertical :

    - |A, |B pour choisir le lecteur disquette (possible aussi avec
      |DRIVE,0 ou 1)
    - |DIR,"<sp‚cification de fichier>" pour voir le catalogue.
      Note important, utilisez ceci sur un CPC 464 :
           a$="<sp‚fication de fichier>" : |DIR,@a$
    - |ERA,"<nom de fichier>" efface un fichier.
      Note important, utilisez ceci sur un CPC 464 :
           a$="<nom de fichier>" : |ERA,@a$
    - |REN,"<nouveau nom>","<ancien nom>" pour renommer un fichier.
      Note important, utilisez ceci sur un CPC 464 :
           a$="<nouveau nom>" : b$="<ancien nom>" : |REN,@a$,@b$
    - |TAPE pour basculer sur le lecteur de cassette, voir section suivante
    - |DISC pour basculer … nouveau au lecteur de disquette

    Il y a d'autres instructions, mais elles ne sont pas aussi
    importantes.



    Le menu d'insertion d'une disquette
    -----------------------------------

    Jusqu'… maintenant, vous n'avez pu utiliser qu'une disquette, celle
    d‚j… 'ins‚r‚e' dans le lecteur. Pour ins‚rer une autre disquette,
    appuyez simplement sur F3, et le menu suivant apparait :

                     Insert Disk
                     Drive              0
                     Side Select        0
                     Write Protected    0

    Avec les touches curseur <haut/bas>, vous pouvez choisir une ligne.
    Vous pouvez aussi le faire en tapant la lettre en majuscule (revenez
    en arriŠre avec la touche DEL). Changez les chiffres avec les
    touches curseur <gauche/droite> ou directement en tapant les
    chiffres. <RETURN> sur n'importe quelle ligne valide le changement.
    Il peut ˆtre annul‚ avec <ESC>.

    "Drive" est le lecteur de disquette voulu (0=A, 1=B);
    "Side Select" est une bascule pour les disquettes doubles face, il
    n'a aucun effet avec une disquette simple face.
    Avec "Write Protected", vous pouvez marquer une disquette comme
    prot‚g‚e en ‚criture  (0=pas de protection, 1=protection).



    Le menu de s‚letion de fichiers (d'images de disquettes)
    --------------------------------------------------------

    Maintenant appuyez sur <RETURN> et un r‚pertoire apparait.
    Choisissez une nouvelles disquette avec la mˆme m‚thode vu
    ci-dessus.
    
    S'il y a d‚j… une disquette … l'int‚rieur du lecteur fictif, vous
    n'avez pas besoin de l'enlever comme dans la r‚alit‚. C'est
    automatiquement fait. Au bas de l'‚cran, la derniŠre disquette
    s‚lectionn‚e est affich‚e.

    Vous verrez au moins 15 fichiers, s'il y en a plus, "[]" apparaŒt.

    - <HOME> permet de se placer sur le premier fichier, <END> sur le
    dernier,
    - <Page up/down> permet de faire d‚filer la liste des fichiers,
    - <RETURN> s‚lectionne le fichier en vid‚o invers‚e, <ESC> pour
    sortir.

    Vous pouvez aussi s‚lectionner le nom en tapant directement la
    premiŠre lettre.

    Quand vous utilisez la souris, cliquez sur []" for <page up>, "[]"
    pour <page down>, "[<]" for <curseur gauche>, "[>]" for <curseur
    droit> and [ok] for <return>.

    Utilisez la bouton droit de la souris comme un double clic. Utilisez
    "[þ]" comme <ESC>.

    ".." est le r‚pertoire parent; [A], [B], ... sont les lecteurs
    disponibles. N'utilisez que les lecteurs de disquettes du PC quand
    une disquette est ins‚r‚e. Sinon vous pourriez avoir des problŠmes.

    Il est aussi possible d'ins‚rer des disquettes qui sont …
    l'int‚rieur d'archives compress‚es ZIP. S‚lectionnez l'archive ZIP
    en appuyant sur <RETURN> et les fichiers … l'int‚rieur sont affich‚s
    comme dans un r‚pertoire normal. Si vous s‚lectionnez un fichier
    image … l'int‚rieur d'une archive ZIP, il est automatiquement
    extrait dans un r‚pertoire temporaire. Pour que cette possibilit‚
    fonctionne, vous aurez besoin du programme PKUNZIP.EXE quelque part
    dans le chemin du DOS, ou dans le r‚pertoire de CPCEMU.

    Les fichiers temporaires sont automatiquement effac‚s s'ils ne sont
    plus n‚cessaires. Les modifications ne sont pas ‚crites dans
    l'archive ZIP. Si vous sauvegardez quelque chose sur un fichier
    d'image disquette qui se trouve … l'int‚rieur d'un ZIP, cette
    modification sera perdu … jamais quand vous ins‚rerez une autre
    image. Si vous voulez modifier une image de disquette se trouvant …
    l'int‚rieur d'un ZIP, il faut d'abord extraire le ZIP dans le
    r‚pertoire DISC, avant de lancer CPCEMU.

    Comment cr‚er des fichiers d'images de disquettes … partir de
    disquettes CPC que vous avez, est d‚crit dansle chapitre 5
    (transfert de donn‚es entre le CPC et le PC).




  3.2.2  Chargement et sauvegarde sur une cassette
  ------------------------------------------------

    Qu'est-ce qu'une cassette actuellement pour CPCEMU ?

    Et bien, les fichiers d'une cassette sont des fichiers normaux dans
    un r‚pertoire DOS.

    AprŠs la commande '|TAPE', les commandes de gestion de fichier du
    BASIC utilisent la cassette. Mais seulement ceux ne commen‡ant pas
    par "|".

    Maintenant vous pouvez utiliser les instructions d‚crites dans la
    section ci-dessus (CAT, RUN", LOAD", SAVE", MERGE") pour la
    cassette.

    Si vous ne pr‚cisez pas un nom de fichier, le menu de s‚lection de
    fichier apparaŒtra, d‚crit dans la section pr‚c‚dente.

    Avec la commande SAVE"", vous pouvez soit ‚craser un fichier
    existant, soit cr‚er un nouveau fichier en sp‚cifiant son nom dans
    la derniŠre ligne "(new name)".

    Vous pouvez aussi charger des programmes se trouvant … l'int‚rieur
    d'une archive ZIP, les sauvegardes sont alors ignor‚es.

    Avec l'‚mulateur vous avez une lecteur de cassette fabuleux.



  3.2.3  Chargement et sauvegarde de snapshots
  --------------------------------------------

    Les snapshots sont des copies de la m‚moire du CPC, qui ne
    contiennent pas seulement la m‚moire actuelle, mais aussi l'‚tat des
    diff‚rents puces du CPC, comme le processeur Z80.

    A n'importe quel moment, vous pouvez interrompre le programme qui
    s'ex‚cute et le sauver en tant que snapshot. Plus tard, vous pouvez
    le charger, et continuer exactement … la mˆme position … laquelle
    vous ‚tiez quand vous l'avez interrompu.

    Vous cr‚ez un snapshot avec la touche F6. Sp‚cifiez sa taille, 64 Ko
    ou 128 Ko. Les snapshots de 128 Ko ne sont utiles que si la deuxiŠme
    banque de m‚moire est utilis‚e. Dans ce cas, utilisez "128K Snapshot
    = 1", 1 signifiant OUI.

    Le menu de s‚lection de fichiers de snapshots et le mˆme que celui
    d‚crit avec les fichiers d'images de disquette, avec les
    commentaires additionnels pour le lecteur de cassette (3.2.1 et
    3.2.2).

    Vous pouvez charger un snapshot avec la touche F5.




4.  Changer la configuration
______________________________

Dans ce chapitre, vous apprendrez comment configurer CPCEMU selon vos
besoins. Le menu de configuration es d‚crit, comme le fichier de
configuration et les paramŠtres de commande en ligne.



4.1  Le menu de configuration
=============================

  C'est la fa‡on la plus simple pour faire des modifications … CPCEMU.
  Mais ce menu ne vous permet pas de changer toutes les options. Pour
  donner un exemple, si vous voulez utiliser des ROMs additionnelles,
  vous devrez utiliser le fichier de configuration d‚crit dans la
  section 4.2.

  Comme il a d‚j… ‚t‚ mentionn‚ dans la section sur le clavier, vous
  entrer dans le menu de configuration avec la touche F7. Le menu
  suivant apparaŒt.

       Option                  Valeur   Explication courte
  -----------------------------------------------------------------------
       ___Emulation
       Emulation_Delay            0
       Emulation_Speed            1
       Emulation_Frequency        300
       Emulation_Resume           1
       Realtime                   0     (realtime mode)

       ___Screen
       Colour_screen              1     (Colour or Green Screen)
       MultiMode_Update           0     (multi mode)
       Palette_Change             1
       Screen offset (ymove)      1     (moving screen up and down)
       Video_Mode                 0
       Vsync_Position             5     (position of vertical
                                         synchronization)
       ___Sound
       Sound_Enabled              1
       Sound_Device               2
       Sb_Delay                   35    (delay for Soundblaster)
       Sb_Delay0                  6

       ___Control
       Joy0_Calibrate
       Joy1_Calibrate
       Kbd_Language               0     (other keyboard mappings)
       Mouse_enabled              1

       ___Ppi_Settings
       Company_Name               7
       Ppi_50Hz                   1
       Ppi_Exp_Signal             1

       ___Misc
       Amsdos_Disabled            0
       Amsdos_Speedup             1
       Break_Mask                 3
       Ems_enabled                1
       Language                   0
       Tape_Bypass                1
       CPC_Type                   2

       Load_Configuration
       Restart_Emulation
       Save_Configuration
       Poke Database                    (database with cheats for games)
       DOS Shell
       Continue                         (continue with the emulator)


  S‚lectionnez les options comme cela a ‚t‚ d‚crit dans 3.2.1.

  - Emulation_delay
    Cette option permet de ralentir l'‚mulation si elle est trop rapide,
    0 signifie qu'il n'y a pas de d‚lai, 100 est un petit d‚lai, 300 un
    d‚lai plus grand...

  - Emulation_Speed
    0 = ‚mulation Z80 lente
    1 = ‚mulation Z80 rapide

  - Interrupt_Frequency
    Pour modifier la fr‚quence … laquelle sont g‚n‚r‚es les
    interruptions. Sur un vrai CPC, cette valeur est toujours 300 Hertz.
    Si vous augmentez cette valeur, beaucoup de programmes sembleront
    fonctionner plus rapidement, mais il y a moins de puissance machin,e
    entre deux interruptions. Si vous avez un micro-ordinateur lent,
    vous pouvez diminuer cette valeur … 100 ou 200 parfois. Les valeurs
    possibles vont de 18 … 600. Pour plus d'informations voir le
    chapitre 7.

  - Interrupt_Resume
    Une autre de ces options qui ne peut ˆtre expliqu‚e sans beaucoup
    d'informations. Sans m‚moire EMS, cette option est … 0, ce qui
    signifie que les interruptions peuvent ˆtre ‚vit‚es. Ce n'est
    certainement pas d‚sir‚, mais avec 1, l'‚mulation est trop lente.
    Avec de la m‚moire EMS, cette option est … 1, CPCEMU essaye alors de
    g‚rer chaque interruption.

    Note importante : il semble que le CP/M+ fonctionne uniquement avec
    de la m‚moire EMS et cette option … 0 ! Pour plus d'informations
    voir le chapitre 7.


  - Realtime
    CPCEMU se cale alors pour que la vitesse de l'‚mulateur corresponde
    le plus possible … celle d'un v‚ritable CPC.

  - Color_Screen
    ‚mulation d'un ‚cran monochrome vert, ou couleur en changeant la
    palette

  - Multimode_Update
    Si un programme utilise plusieurs modes simultan‚ment sur l'‚cran,
    utilisez cette option, CPCEMU essaiera alors de g‚rer cela
    correctement.
    Par d‚faut, cette option est hors fonction, ‚tant donn‚ qu'elle ne
    fonctionne pas dans tous les cas.

  - Palette_Change
    D‚finir … 0 cette option pour ne pas avoir de changement de palette.
    Cela a un sens si vous ne pouvez pas voir grand chose ‚tant donn‚
    que l'‚cran tremble trop.
    Si vous appuyez sur la touche 8 pour avoir un reset mat‚riel, cette
    option est remise … 1 automatiquement.
    un conseil : si la palette est hors fonction, et que vous voyez que
    les couleurs ne sont pas correctes, appuyez deux fois sur la touche
    F2 pour avoir … nouveau la bonne palette.

  - Screen_Offset
    Permet de sp‚cifier le nombre de lignes que l'‚cran du CPC doit
    d‚placer. Habituellement vous n'avez pas besoin de cette option.
    Vous obtenez le mˆme effet en appuyant sur Page Up> et <Page Down>.
    Valeurs possibles : 0=pas d'offset, jusqu'… 25.

  - Video_Mode
    D‚finissez le mode vid‚o de la carte VGA
    0 = 640x200x16 (d‚faut)
    1 = 640x350x16
    2 = 640x480x16

    Et si vous avez un BIOS VESA :
    3 = 800x600x16
    4 = 1024x768x16
    5 = 1280x1024x16
    ...

    ATTENTION, n'utilisez les modes sup‚rieurs … 3 uniquement si votre
    moniteur les supportent ! S'il fait des bruits ‚tranges, ‚teignez le
    tout de suite. Mais ceci ne devrait apparaŒtre que sur de vieux
    moniteurs.

  - Vsync_Position
    Habituellement, vous n'avez pas besoin de cette option, but rien ne
    sera endommag‚ si vous l'utilisez. A un moment durant le
    rafraichissement de l'‚cran, il y a un a vertical
    frame fly with a special bit set, le bit VSYNC (synchronisation
    verticale). Vous pouvez d‚finier cette position, ou le VSYNC doit se
    passer. Les valeurs possibles sont de 0 … 5. Pour plus de d‚tails,
    voir le chapitre 7.

  - Sondblaster Delay  (1)
    Set the amount of delay after every write access to the soundcard.
    In the configuration file this delay is set to 1 to speed up sound
    output. If problems with the soundcard occur, try a value of 35.

  - Sound_Enabled
    Active le son, 1=son pr‚sent, 0= pas de son, vous pouvez aussi
    utilisez la touche de fonction F4.

  - Sound_Device
    D‚finissez le type de support sonore :
    0 = aucun
    1 = haut parleur du PC
    2 = Soundblaster
    3 = Soundblaster Pro
    4 = GUS (Gravis Ultrasound), merci … Ulrich Doewich

  - Sb_delay
    D‚finissez un d‚lait aprŠs chaque accŠs en ‚criture auprŠs de la
    carte sonore. Avec des faibles values, comme 0, le support sonore
    est acc‚l‚r‚. Si des problŠmes apparaissent, utilisez la valeur 35.

  - Sb_delay0
    Un autre d‚lai pour la soundblaster, ne le modifiez pas.

  - Joy0_Calibrate
    Vous savez surement d'aprŠs d'autres programmes que vous avez
    d'abord … calibrer le joystick avant de l'utiliser. Choisissez cette
    option en appuyant sur la touche ENTREE, d‚placez le joystick dans
    le coin sup‚rieur gauche, puis dans le coin inf‚rieur droit.
    Certains paramˆtres sont alors affich‚s, Si vous voulez toujours
    utiliser votre joystick, prenez note de ces paramˆtres et ‚crivez
    les dans le fichier de configuration (voir section suivante). Sinon
    vous devrez recommencer cette proc‚dure … chaque fois.

  - Joy1_Calibrate
    La mˆme chose que Joy0_Calibrate, mais pour le deuxiŠme joystick.
  - Kbd_Language
    Avec cette option vous pouvez choisir la disposition du clavier pour
    d'autres pays
    0 = UK, Royaume-Uni par d‚faut
    1 = GR, clavier allemand (… peu prŠs). Malheureusement il est
    impossible d'avoir un clavier allemand complet ‚tant donn‚ que les
    touches en mode majuscule (SHIFT) ne peuvent pas correspondre … des
    touches en mode minuscule. Mais "Z" et "Y" sont ‚chang‚s, et
    certains autres caractŠres alt‚r‚s.
    2 = FR, clavier fran‡ais (… peu prŠs). AprŠs l'introduction du
    clavier allemand, celui-ci ne pouvait attendre. Certains parties du
    clavier AZERT sont r‚alis‚es, mais il a les mˆmes problŠmes que le
    clavier allemand.

  - Mouse_Enabled
    S‚lectionne l'usage de la souris dans les diff‚rents menus.

  - Company_Name
    S‚lectionne le nom de la compagnie dans l'‚cran d'initialisation du
    CPC :
    0 = Isp
    1 = Triumph
    2 = Saisho
    3 = Solavox
    4 = Awa
    5 = Schneider
    6 = Orion
    7 = Amstrad

  - Ppi_50Hz
    Le CPC peut fonctionner avec
      0 - 60 Hz, ou
      1 - 50 Hz (d‚faut en Allemangne et en France)
    Pendant un reset, le bit 4 du port B PPI est v‚rifi‚, et le CRTC est
    initialis‚ correctement, laissez cette valeur … 50 Hz

  - Ppi_Exp_Signal
    Certaines cartes d'extension d‚finissent ce signal. Sur un CPC 464
    il est d‚finit si un lecteur de disquette est connect‚. Sur un CPC
    6128 il est toujours d‚finit.

  - Amsdos_Disabled
    Interdit l'initialisation  d'AMSDOS. Ce n'est utile que si vous
    voulez charger des programmes … partir d'une cassette sans avoir …
    taper la commande |TAPE … chaque fois.

    Vous pourriez certainement faire un simple commentaire dans la ligne
    ROM_BLOCK pour AMSDOS (avec ROM_BLOCK vous sp‚cifiez la ROM …
    charger), et AMSDOS ne sera pas pr‚sent du tout. Utilisez cette
    option si vous voulez qu'AMSDOS soit pr‚sent pour certains
    programmes.

  - Amsdos_Speedup
    Permet une modification de la ROM AMSDOS pour acc‚lerer les accŠs
    disquettes. Ceci est fait pour minimuser les temps d'attente du
    moteur, ce n'est pas n‚cessaire pour l'‚mulateur.

  - Break_Mask
    Uniquement pour du debuggage. Avec la valeur 3 du fichier de
    configuration, certaines erreurs sont supprim‚es, caus‚es par des
    instructions ill‚gales, ne changez pas cette valeur.

  - Ems_Enabled
    Permet l'utilisation de la m‚moire EMS (Expanded Memory System).
    S'il n'y a pas d'EMS, ou pas assez, CPCEMU utilise automatiquement
    la m‚moire conventionnelle. Pour plus d'informations sur l'EMS,
    voir la section 2.3.1 et le chapitre 7.

  - Language
    Langage utilis‚ pour les messages d'aide.
      0=UK (Englais)
      1=GR (Allemand)
      2=FR (Fran‡ais)
      3=SP (Espagnol)

  - Tape_Bypass
    Permet l'utilisation de cassettes. Plus d'informations dans le
    chapitre 7.

  - CPC_Type
    D‚finir le type de CPC
    0 = CPC 464
    1 = CPC 664
    2 = CPC 6128
    3 = CPC 464+ (?)
    4 = CPC 6128+ (?)
    5 = unknown
    Pour utiliser le mode 3 ou 4, vous avez d'abord besoin de sp‚cifier
    les noms des images ROMs dans CPCEMU.CFG

  - Load_Configuration
    Charger un autre fichier de configuration sauvegard‚ par Save_Configuration".
    Certains param$etres peuvent ne pas avoir d'effet … moins d'utiliser
    "Restart_Emulation".

  - Restart_Emulation
    AprŠs avoir charg‚ une configuration avec "Load_Configuration", vous
    pouvez relancer l'‚mulation avec les nouvelles valeurs.

  - Save_Configuration
    Sauvegarder le fichier de configuration actuel. Vous ne pouvez pas
    ‚crire par-dessus le fichier de configuration maŒtre CPCEMU.CFG.

  - Poke_Database
    Vous ˆtes en train de jouer … un jeu que vous ne pouvez pas finir.
    Alors choisissez cette option. Si votre jeu est dans cette liste,
    vous pouvez le rendre plus facile en obtenant des vies infinies par
    exemple. Vous pouvez aussi d‚velopper la liste de pokes (CPCEMU.DBF)
    avec vos propres pokes, voir le chapitre 7 pour une description de
    ce fichier.

  - Dos_Shell
    Ouvrir un shell dos avec beaucoup de m‚moire libre, que vous pouvez
    quitter avec "EXIT".

  - Continue
    Prendre en compte les valeurs, et continuer l'‚mulation. Vous
    obtenez le mˆme r‚sultat en appuyant sur ENTREE … partir de
    n'importe quelle ligne contenant un valeur.




4.2  Le fichier de configuration
================================

  Maintenant vous allez apprendre une autre fa‡on de configurer CPCEMU.

  Au d‚but CPCEMU lire le fichier de configuration CPCEMU.CFG par
  d‚faut. La structure de ce fichier est d‚crite pour que vous puissiez
  utiliser vos propres ROMs, changer le type de clavier d‚finitivement,
  etc...

  Voyons ce fichier CPCEMU.CFG :

    ;CPCEMU.CFG - The Configuration File for CPCEMU
    ;...
    ;
    ;configuration for CPC 464, 664 and 6128
    ;
    SHOW_CONFIG=1            ;should the configuration be displayed?
    ROM_PATH = ".\ROM"       ;chemin to ROM images
    ...


  D‚j… avec ces quelques lignes, vous pouvez voir la structure simple :
  les commentaires commencent avec un point-virgule (";"), les options
  sont modifi‚es en ‚crivant un mot-cl‚ suivi de "=" puis une <valeur>.
  La <valeur> d‚pend du mot-cl‚ et est soit une chaine, soit un nombre.
  Les nombres peuvent ˆtre en d‚cimal, hexad‚cimal ("0x") ou binaire
  ("%").

  Quand vous connaissez le sens des mots-cl‚s, vous pouvez ajuster les
  valeurs avec un ‚diteurde texte pour vos propres besoins.

  Vous connaissez la plupart des mots-cl‚s … partir du menu de
  configuration. Voici une liste par ordre alphab‚tique des mots-cl‚s.

  #ENDIF
  #IFCPC
  AMSDOS_DISABLED
  AMSDOS_SPEEDUP
  BREAK_MASK
  COLOUR_SCREEN
  COMPANY_NAME
  CPC_TYPE
  DRIVE_A
  DRIVE_B
  EMS_ENABLED
  EMULATION_DELAY
  EMULATION_SPEED
  HELP_FILE
  INTERRUPT_FREQUENCY
  INTERRUPT_RESUME
  JOY0_CALIBRATE
  JOY1_CALIBRATE
  KBD_LANGUAGE
  LANGUAGE
  MOUSE_ENABLED
  MULTIMODE_UPDATE
  PALETTE_CHANGE
  POKE_DATABASE
  PPI_50HZ
  PPI_EXP_SIGNAL
  PRINTER
  RAM_SIZE
  REALTIME
  ROM_BLOCK
  ROM_PATH
  SB_DELAY
  SB_DELAY0
  SCREEN_OFFSET
  SHOW_CONFIG
  SNAPSHOT
  SOUND_DEVICE
  SOUND_ENABLED
  TAPE_BYPASS
  TAPE_PATH
  TMP_PATH
  VIDEO_MODE
  VSYNC_POSITION


  Voici l'explicatin des nouveaux mots-cl‚s :


  - #ENDIF, #IFCPC
    Des instructions de contr“le pour des configurations d‚pendant du
    type de CPC :

      #IFCPC <type de CPC> ... #ENDIF

    Pour la valeur <type de CPC>, tous les quatres types de "CPC_TYPE"
    sont valides. En cons‚quence, vous n'avez besoin que d'un fichier de
    configuration pour tous les CPCs. Les fichiers batchs CPC464.BAT,
    CPC664.BAT et CPC6128.BAT d‚finissent le type de CPC voulu avec les
    paramˆtres de ligne de commande (expliqu‚ dans la prochaine
    section).

  - DRIVE_A = "<chemin+nom_de_fichier>"
    D‚finissez le chemin des images de disque. Si vous utilisez un nom
    de fichier comme chemin, cette disquette sera automatiquement
    ins‚r‚e dans le lecteur A (la section 3.2.1 d‚crit le chargement et
    la sauvegarde de disquettes).

  - DRIVE_B = "<chemin+nom_de_fichier>"
    La mˆme chose que DRIVE_A, mais pour le lecteur B.

  - JOY0_CALIBRATE = <xcen>, <ycen>, <xdead>, <ydead>
    D‚finir la calibration du joystick analogique. Utilisez les valeurs
    affich‚es aprŠs la calibration du joystick dans le menu de
    configuration (voir section 4.1). C'est un mot-cl‚ avec quatre
    valeur. Vous devez toujours les sp‚cifier toutes, quatre 0 signifie
    qu'il n'y a pas de calibration.

  - JOY1_CALIBRATE = <xcen>, <ycen>, <xdead>, <ydead>
    La mˆme chose que JOY0_CALIBRATE.

  - POKE_DATABASE = "<chemin+nom_de_fichier>"
    D‚finir la base de donn‚es de pokes (CPCEMU.DBF).

  - PRINTER = "<chemin+nom_de_fichier>"
    D‚finir le fichier recevant tout ce qui est envoy‚ sur le port
    imprimante du CPC. Il est effac‚ … chaque lancement de l'‚mulation.
    AprŠs avoir quitt‚ l'‚mulator, vous pouvez envoyer ce fichier vers
    votre imprimante avec "COPY <nom_de_fichier> PRN".

  - ROM_BLOCK = <num‚ro-ROM>,  "<nom_de_fichier>", <ROM-position>
    D‚crire la ROM qui doit ˆtre charg‚e et o—. R‚p‚tez cette ligne pour
    chaque ROM que vous voulez charger. Le maximum de ROMs possibles est
    … peu prŠs 20, si vous utilisez de la m‚moire EMS.

    * <num‚ro-ROM> est le num‚ro assign‚ de la ROM, cela signifier
    qu'elle est choisie par "OUT &DF00,<num‚ro-ROM>". Les valeurs
    possibles sont :

        0       : ROM au premier plan (e.g. BASIC)
        1 - 251 : ROM en arriŠre plan. Sur un CPC 664/6128, les ROMs
                  1-15 sont automatiquement initialis‚es durant le reset
                  (sur un CPC 464 seulement les ROMs 1 … 7).
                  La ROM AMSDOS a toujours le num‚ro 7.
        255     : ROM inf‚rieur (l'OS par exemple, a seulement ce num‚ro
                  dans l'‚mulateur)
    - <nom_de_fichier> est un fichier dans le r‚pertoire ROM_PATH, qui
      contient les ROMs.

    - <ROM position> est naturellement 0. Si un fichier contient
    plusieurs ROMs, c'est la position de la ROM par bloc de 16384 octets
    : 0, 1, 2, etc...

        ROM_BLOCK = 255, "CPC6128.ROM", 0
        ROM_BLOCK = 0  , "CPC6128.ROM", 1

      La ROM inf‚rieure et la ROM de premier plan sont charg‚es l'une
      aprŠs l'autre … partir du mˆme fichier.

  - ROM_PATH = "<chemin>"
    D‚finir le chemin des images de ROMs. Dans le fichier de
    configuration, ce chemin est d‚finit … ".\ROM". Les ROMs elles-mˆmes
    sont d‚finis avec le mot-cl‚ ROM_BLOCK.

  - SHOW_CONFIG = {1, 0}
    Permet d'afficher la configuration actuelle au lancement de
    l'‚mulateur.

  - SNAPSHOT = "<chemin+nom_de_fichier>"
    D‚finir le chemin des snaphshots. Si vous d‚finissez un nom de
    snapshot, il sera automatiquement lanc‚ (voir la section 3.2.3 pour
    plus de d‚tails).

  - TAPE_PATH = "<chemin>"
    D‚finir le chemin pour les fichiers cassettes. Dans le fichier de
    configuration, ce chemin est d‚fini comme ".\TAPE" (voir section
    3.2.2 pour plus de d‚tails).

  - TMP_PATH = "<chemin>"
    D‚finir le chemin pour les fichiers temporaires. Ils sont
    n‚cessaires si vous choisissez une fichier … l'int‚rieur d'une
    archive ZIP.




4.3  Paramˆtres en ligne de commande
====================================

  Comme pour d'autres programmes, il est aussi possible de lancer CPCEMU
  avec des paramˆtres en ligne de commande. Mais actuellement il n'y en
  a que quelques uns.

  Lancez CPCxxx.BAT avec les options suivantes :

      /f           : utiliser le mode rapide (d‚faut)
      /s           : utiliser le mode lent
      /d           : utiliser le mode debut, voir chapitre 7
      /x           : ne pas utiliser la m‚moire EMS
      /c <fichier> : utiliser un autre fichier de configuration que
                     CPCEMU.CFG, voir section 4.2
      /t <fichier> : d‚finir le type de CPC 464, 664 ou 6128 avec
                     respectivement /t 0, /t 1 ou /t 2.
      /h           : afficher un ‚cran d'aide

  L'option "/d" est automatiquement utilis‚e si une option inconnue est
  sp‚cifi‚e. Au lieu du caractŠre "/", vous pouvez aussi utiliser "-"
  comme sous UNIX.




5.  Transfert de donn‚es entre CPC <-> PC
ððððððððððððððððððððððððððððððððððððððððð

Que pouvez-vous faire avec un bon ‚mulateur quand vous n'avez pas de
programmes pour lui, ou si vous ne voyez pas de possibilit‚s d'obtenir
des programmes d'un CPC vers votre PC ?

Dans le chapitrer 6, sources d'approvisionnement, certains sites FTP
sont donn‚es, o— des programmes CPC peuvent ˆtre trouv‚s.

Ce chapitre traite du transfert de donn‚es du CPC au PC. Certains
utilitaires pour les diff‚rentes m‚thodes sont d‚crits (disquette,
interface s‚rie et parallŠle).




5.1  A partir d'une disquette
=============================

  C'est le moyen le plus simple d'obtenir des programmes CPC sur le PC.
  Vous avez seulement besoin d'un CPC avec un second lecteur de
  disquette d'une taille correcte, c'est … dire d'une taille allant
  aussi dans votre lecteur de disquette PC, sinon vous pourriez toujours
  connecter un lecteur 3" sur votre PC). LePC est persuad‚ de
  reconnaŒtre les disquettes au format CPC avec un utilitaire qui lit
  ces disquettes, cet utilitaire est appel‚ CPCTRANS.



  5.1.1  Le programme de transfert CPCTRANS
  -----------------------------------------

    J'ai d‚velopp‚ CPCTRANS pour cr‚er des images de disquettes … partir
    de disquettes CPC. Les formats CPC standards, comme le format double
    face Vortex, sont reconnus.

    CPCTRANS n'est pas pr‚vu pour transf‚rer des formats prot‚g‚s contre
    la copie !

    En lan‡ant CPCTRANS sans paramˆtres, vous aurez une courte
    description des options.

    CPCTRANS est similaire … la commande COPY du DOS :

    'CPCTRANS <source> <destination> <options>'.

    Exemples:

    'CPCTRANS B: DISK1.DSK' copie la disquette qui est dans le lecteur B
    dans une image de disquette DISK1.DSK. Si ce fichier n'existe pas,
    il est cr‚‚.

    'CPCTRANS DISK1.DSK B:' ‚crit l'image de disquette sur la disquette
    setrouvant dans le lecteur B.

    Cette premiŠre commande ne fonctionne que pour le format DATA. Pour
    d'autres formats vous devez utiliser une option :

      /f 0    : format DATA (defaut)
      /f 1    : format DATA, double face
      /f 2    : format SYSTEM
      /f 3    : format SYSTEM, double face
      /f 4    : format VORTEX, double face
      /f 5    : inconnu, CPCTRANS essaye de le d‚tecter
      /f 6    : +3DOS

    Notez l'espace entre "/f" et le nombre. Quand vous utilisez le
    format double face DATA ou SYSTEM, vous pouvez s‚lectionner la face
    A ou B dans le menu disquette (voir section 3.2.1).

    Quand vous ‚crivez une image sur une vraie disquette, la disquette
    dans le lecteur doit avoir le mˆme format ! Pour des formats
    simples, vous pouvez utiliser 22DISK, d‚crit dans la section
    suivante.

    Pour copier la face B d'une disquette, utilisez l'option "/s 1".
    Avec 'CPCTRANS B: DISK1.DSK /s 1' seule la face B de la disquette
    est copi‚e, avec 'CPCTRANS DISK1.DSK B: /s 1' elle est ‚crite sur la
    vraie disquette.

    L'option "/v" activer la v‚rification, CPCTRANS v‚rifie alors si la
    copie est correcte, c'est un peu plus lent, mais augmente la
    s‚curit‚.

    L'option "/t" <compteur> d‚finit le nombre de pistes … copier.
    Normalement il est … 40, de nombreux fanzines et d‚mos utilisent 42
    pistes pour obtenir plus de place. Il est … 80 pour le format
    VORTEX.

    L'option "/q" (formatage rapide) est une possibilit‚ qui vous permet
    de "formatter" une image de disquette, soit de cr‚er une image de
    disquette sans aucuns fichiers dessus. Vous devez tout de mˆme
    sp‚cifier un lecteur de disquette comme premier paramˆtre, mˆme s'il
    n'est pas utilis‚, exemple :

    'CPCTRANS a: SYSTEM.DSK /f 2 /q' formatte une image de disquette au
    nom SYSTEM.DSK avec le format SYSTEM.



  5.1.2  L'utilitaire de formatage et copie 22DISK par SYDEX
  ----------------------------------------------------------

    Ce programme est disponible comme un shareware. Avec les d‚finitions
    correctes, vous pouvez presque utiliser tous les formats CP/M !

    Malheureusement les formats CPC ne sont pas inclus avec la version
    d'‚valuation de 22DISK. J'ai donc d‚fini les formats dans le
    fichiers CPMDISKS.DEF, que vous trouverez dans le sous-r‚pertoire
    UTILITY.

    Que pouvez-vous faire avec 22DISK ? Vous pouvez transf‚rer de
    simples fichiers entre votre disque dur et des disquettes au format
    CP/M (dont CPC). Vous pouvez copier ces fichier ensuite dans le
    sous-r‚pertoire TAPE (voir section 3.2.2 pour savoir comment les
    charger ensuite), ou utiliser certains utilitaires externes
    injectant des fichiers CPC dans une image de disquette.



5.2  L'interface parallŠle
==========================

  Si vous avez un CPC sans second lecteur de disquette, vous pouvez
  faire le transfert par l'interface parallŠle. Cette id‚e originale
  vient de Gilles Molinari, il a aussi ‚crit des programmes en turbo
  pascal. Mais vous faites sans doute partie des utilisateurs n'ayant
  pas le compileur turbo pascal, les sources vous sont donc inutiles.
  J'ai donc transcrit les utilitaires en BASIC Locomotive, et ‚tendu
  dans le sens PC->CPC.

  Il est donc possible de faire des transferts dans deux sens entre le
  CPC et le PC, qui sont reli‚s par leur port parallŠle.

  Si vous avez un CPC 6128 avec un connecteur centronics, et que vous
  le comparez avec une imprimante, vous noterez que le CPC et le PC
  s'embranchent parfaitement en utilisant une cable d'imprimante PC
  standard. Mais ne le faitespas tout de suite, lisez la suite s'il vous
  plait.

  Il semble que seul les CPCs Schneider aient un connecteur centronics.
  Si vous avez un Amstrad CPC 6128 avec un simple connecteur, ou un CPC
  464, 664, utilisez le diagramme … la fin de cette section.


  D'abord, vous devrez franchir deux obstacles :
  1. construire un simple adaptateur
  2. taper un court programme sur le CPC

  Attendez ! Ne sautez pas le reste !

  Ces deux ‚tapes sont trŠs simples, parce que :
  1. est possible sans rien souder
  2. est vraiment trŠs courte (environ 30 lignes de Basic)

  Voyons l'‚tape 2.
  Le programme dont vous avez besoin s'appelle CPCREC.BAS, et il se trouve 
  dans le sous-r‚pertoire UTILITY.
  Il est sauvegard‚ en ASCII, donc vous pouvez le sortir sur votre
  imprimante sans difficult‚ ; ensuite, tapez-le sur le CPC.
  Son travail va ˆtre analogue … la cordelette que vous envoyez le long d'un
  tuyau, pour y tirer ensuite un gros cƒble.
  Ici, la cordelette, ce sera CPCREC.BAS, qui re‡oit sur le CPC des
  programmes en provenance du PC.
  Avec ce petit utilitaire, vous obtiendrez CPCPARA.BAS (le gros cƒble) sur
  le CPC. Enfin, avec CPCPARA.BAS, vous pourrez recevoir et transmettre. 
  Vous n'aurez alors plus besoin de CPCREC.BAS.
  Du c“t‚ du PC, vous utiliserez PCPARA.EXE, aussi inclus dans le sous-
  r‚pertoire UTILITY.

  Mais avant de taper CPCREC.BAS sur le CPC, voyons l'‚tape 1 :


  L'adaptateur parallŠle
  ----------------------

  Vous avez besoin d'un adaptateur entre le CABLE d'imprimante et la
  SORTIE imprimante du PC.

  C'est facile avec une "wiring box" ("boŒte … fils") pour interface RS-232. 
  Elle a un c“t‚ mƒle "D-sub" … 25 broches ("plug") et un c“t‚ femelle
  "D-sub" … 25 broches ("socket").

  En branchant de courts fils … l'int‚rieur de la boŒte, vous pouvez
  r‚aliser toutes les connexions possibles entre les deux c“t‚s.

  Habituellement, ce type de boŒte est employ‚, comme son nom l'indique,
  pour adapter les interfaces RS-232. Les connexions en s‚rie ne fonctionnent
  pas du premier coup, savez-vous ?

  L'adaptateur sera branch‚, c“t‚ mƒle vers le PC, et c“t‚ femelle vers le
  cƒble.
  
  Voici les connexions … faire dans la boŒte :
  
             C“t‚ mƒle                            C“t‚ femelle
             pour la sortie-imprimante du PC      pour le cƒble
        
             Broche 2     ---------------         Broche 11
             Broche 10    ---------------         Broche 8
             Broche 11    ---------------         Broche 1
             Broche 12    ---------------         Broche 7
             Broche 13    ---------------         Broche 6
             Broche 15    ---------------         Broche 5
             Broche 19    ---------------         Broche 19


  Comme vous voyez, vous n'avez pas besoin de 25 fils, 7 suffisent.

  Bien qu'une "wiring box" soit bon march‚ si vous l'achetez par correspon- 
  dance, vous trouverez peut-ˆtre encore meilleur march‚ si vous utilisez
  une "jumper box" (boŒte … cavaliers). Mais vous aurez … souder les fils.
  Le moins cher consiste … acheter un connecteur mƒle "D-sub" … 25 broches, 
  et un connecteur femelle "D-sub" … 25 broches ‚galement. Plus quelques fils.

  A pr‚sent, je pr‚sume que vous avez connect‚ les deux ordinateurs
  avec l'adaptateur, et que CPCREC.BAS est dans la m‚moire de votre CPC.
  Que faire maintenant ?
  
  1. Sur le CPC :  lancez CPCREC.BAS (aprŠs l'avoir sauvegard‚...)
  2. Sur le PC  :  tapez "PCPARA /s CPCPARA.BAS"

  Si aucun message d'erreur n'apparaŒt sur l'‚cran du PC, tout va bien,
  le fichier est sur le CPC.

  Si le PC n'envoie rien et affiche un message d'erreur, c'est que la
  connexion peut ˆtre incorrecte.

  S'il envoie quelque chose (message "Sending block xx"), mais qu'un
  message d'erreur apparaŒt occasionnellement, votre PC est peut-ˆtre
  trop rapide ou trop lent : le transfert dans le sens PC->CPC est trŠs
  sensible … la question de vitesse, sachez-le.

  Sur mon 386/33, il ne fallait pas que la m‚moire EMS soit install‚e, 
  sinon, elle est trop lente. Sur un ordinateur trŠs rapide, il pourrait
  ˆtre n‚cessaire d'utiliser le commutateur "turbo", si vous en avez un.
  De toute fa‡on, n'utilisez le programme que sous DOS, pas sous OS/2 
  ni sous Windows.

  Si cela ne marche pas du tout, envoyez-moi une note.
  En attendant, vous pourriez taper le programme CPCPARA.BAS, qui est 
  un peu plus long : dans le sens CPC->PC, cela fonctionne toujours, 
  mˆme sous OS/2, parce que le processus est presque le mˆme que l'action
  d'imprimer : le PC se comporte comme une imprimante.

  Je pr‚sume que vous avez maintenant CPCPARA.BAS sur votre CPC.
  Transf‚rez les fichiers du CPC vers le PC de la fa‡on suivante :

  1. Sur le PC :  tapez "PCPARA /r".
  2. Sur le CPC : lancez CPCPARA, s‚lectionnez S)end, et donnez le nom de 
     chaque fichier que vous voulez transmettre au PC (il faudra retaper
     "PCPARA /r" pour chaque fichier ; CPCPARA, lui, tourne comme une 
     boucle sans fin).


  Ainsi, utilisez PCPARA de la fa‡on suivante :
  - PCPARA /r : lance PCPARA dans le mode r‚ception
  - PCPARA /s <fichier> : envoie <fichier> vers le CPC ; si vous utilisez
    "TRM:" en guise de nom de fichier, vous aurez un terminal.

  Tous les programmes contenus dans le sous-r‚pertoire UTILITY affichent
  un aper‡u de leurs options si vous les appelez sans paramŠtres.


  ATTENTION !
  Mˆme si la construction est trŠs simple, je ne peux pas garantir que
  vous n'aurez aucun dommage. Si le port-imprimante de votre CPC est 
  endommag‚ aprŠs cela, ce sera un malheureux accident ! Peut-ˆtre
  aurait-il, aussi, ‚t‚ endommag‚ si vous aviez simplement connect‚ une 
  imprimante. Par exemple, je connais un ancien utilisateur de CPC dont 
  le clavier ne fonctionnait plus correctement ; aprŠs la r‚paration,
  on lui a dit qu'il n'aurait pas d– brancher le joystick alors que
  l'ordinateur ‚tait allum‚ ! (Et alors, je le fais constamment ?!?)
  
  Pour revenir … nos moutons :
  J'ai construit l'adaptateur avec succŠs. Et j'ai mˆme, parfois, "oubli‚"
  d'ins‚rer l'adaptateur dans le connecteur, sans avoir eu aucun problŠme.
  



  Diagrammes de David Chapeau, si votre CPC n'a pas de connecteur Centronics :

   34 <- - - - - - - - 18      \
   ______________________      |
  |   ________________   |     |
  |  |________________|  |   - | ---> Connecteur (femelle) 
  |______________________|     |      de l'imprimante
                               |      
   17 < - - - - - - - - 1      |
                               |
     ||||||||||||||||||        |
     ||||||||||||||||||        \
     ||||||||||||||||||         >   Cƒble "CPC 6128 vers DMP 2160"
     ||||||||||||||||||        /
     ||||||||||||||||||        |
                               |
   1 - - - - - - - - > 18      |
  ________________________     |
  \    ______________    /     |
   \  |______________|  /    - | ---> Connecteur (mƒle) Centronics
    \__________________/       |
                               |
   19 - - - - - - - -> 36      /



   18 < - - - - - - - - 1      \
  ________________________     |
  \    ______________    /     |
   \  |______________|  /    - | ---> Connecteur (femelle) Centronics
    \__________________/       |
                               |
   36 <- - - - - - - - 19      |
                               |
     ||||||||||||||||||        |
     ||||||||||||||||||        \
     ||||||||||||||||||         >   Adaptateur parallŠle PC
     ||||||||||||||||||        /
     ||||||||||||||||||        |
                               |
   1 - - - - - - - - > 13      |
  ________________________     |
  \  ..................  /     |
   \  ................  /    - | ---> Connecteur Sub-D (mƒle)
    \__________________/       |      vers le PC (LPT1)
                               |
   14 - - - - - - - -> 25      /


   13 < - - - - - - - - 1      \
  ________________________     |
  \  ..................  /     |
   \  ................  /    - | ---> Connecteur Sub-D (femelle)
    \__________________/       |
                               |
   25 <- - - - - - - - 14      |
                               |
     ||||||||||||||||||        |
     ||||||||||||||||||        \
     ||||||||||||||||||         >   "Wiring Box" RS 232
     ||||||||||||||||||        /
     ||||||||||||||||||        |
                               |
   1 - - - - - - - - > 13      |
  ________________________     |
  \  ..................  /     |
   \  ................  /    - | ---> Connecteur Sub-D (mƒle)
    \__________________/       |      vers le PC (LPT1)
                               |
   14 - - - - - - - -> 25      /



  Connecteur  Centronics   Centronics    Connecteur   Connecteur  Connecteur
  Imprimante   (femelle)     (mƒle)        Sub-D         Sub-D      Sub-D   

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




  Vitesse de transfert CPCPARA -> PCPARA (v1.1) :

  Temps de transfert d'un bloc de 0x4000 octets du CPC vers le PC avec
  l'adaptateur parallŠle :

  Source sur CPC :             Octets/sec :     Bauds :
  -----------------------------------------------------------
  Fichier sur disquette :        1600            12800

  Bloc de m‚moire :              2240            17920

  Bloc de m‚moire, sans          2445            19560
  interruptions
  (poke &b941,&c9 sur CPC 664 et 6128)


  Le bloc envoy‚ ‚tait contr“l‚ en Basic (dans CPCPARA) :
  defstr a:a="test.$$$":call sstr,@a
  a=string$(&80):for i=1 to &80:call sstr,@a:next:call sbyte,0:stop


  Vous pourrez lire plus d'information sur l'adaptateur parallŠle au
  chapitre 7.



5.3  L'interface s‚rie
======================

  Si vous poss‚dez une interface s‚rie pour le CPC, vous pouvez certainement
  l'utiliser pour le transfert de donn‚es vers le PC.



5.4  Autres possibilit‚s
========================

  Il y a encore d'autres moyens fantastiques pour avoir des programmes
  sur le PC :

  - Connecter le lecteur de disquettes 3 pouces au PC. Quelques (anciens)
    modŠles pourraient correspondre … la connexion 5,25 pouces.

  - Avec un d‚tour par le Spectrum+3 : lire la disquette 3 pouces sur le
    Spectrum+3, la convertir au format Spectrum, et employer un utilitaire
    pour la lire sur le PC. Cet utilitaire est compris dans l'‚mulateur
    Z80 du Spectrum, de Gerton Lunter.

  - Au temps o— il ‚tait n‚cessaire (Amstrad n'ayant pas encore donn‚ son
    autorisation) de se d‚brouiller pour avoir les ROMs, quelqu'un m'a parl‚
    de ce moyen : il enlevait la puce de la ROM d'un CPC, et l'ins‚rait 
    … la place du BIOS VGA. Avec un petit programme, il pouvait en lire le
    contenu.

  - Peut-ˆtre avez-vous trouv‚ un autre moyen ?




6.  Sources d'Approvisionnement, Aide en ligne, Remerciements
ððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððð

Dans ce chapitre, vous lirez comme obtenir des programmes CPC, et … qui
poser des questions. De plus, je mentionne d'autres ‚mulateurs CPC.


6.1  O— puis-je avoir des programmes pour le CPC ?
==================================================

  Ce n'est pas un problŠme si vous avez un accŠs … internet. Comme pour
  les ‚mulateurs Spectrum, un certain nombre d'archives "anonymes"
  existent o— vous pouvez trouver des programmes CPC par FTP ou WWW.


  FTP
  ---

  - ftp.nvg.unit.no:/pub/cpc, merci … Arnt Gulbrandsen pour avoir cr‚‚
    ce site, et … Noel Llopis pour le maintenir, une des plus grosses
    archives de programmes CPC, envoyez ce que vous avez dans le
    r‚pertoire /pub/cpc/incoming.

  - sunshine.informatik.uni-wuerzburg.de:/pub/joscho/cpcemu
    C'est un miroir de ftp.nvg.unit.no. Toutes questions, remarques et
    additions doivent ˆtre adress‚es … joscho@informatik.uni-wuerzburg.de
    Si vous avez des problŠmes pour vous connecter en NorvŠge, vous
    pouvez essayer ce site.

  - ftp.ibp.fr:/pub/amstrad, merci … Remy Card, toutes question … propos
    de ce site doivent ˆtre envoy‚es … roussin@blaise.ibp.fr Tous les
    fichiers de ce site viennent de "Genesis the 8bit generation"
    (regardez plus bas). Un autre site avec beaucoup de programmes pour
    CPC.

  - ftp.demon.co.uk:/pub/cpm, merci … Paul Martin, des fichiers
    sp‚cifiques … la version CP/M d'Amstrad
    Paul Martin (pm@nowster.demon.co.uk) enverra, … quiconque lui
    prouvera qu'il possŠde la disquette originale Amstrad CP/M Plus, les
    images binaires de la ROM de sa "CP/M Plus ROMs", et gratuitement.

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

  - other Simtel mirrors:

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


  WWW
  ---

  - la revue anglaise Amstrad Action  : http://www.futurenet.co.uk/

  - http://www.cm.cf.ac.uk/User/K.E.W.Thacker/Amstrad/index.html



  BBS
  ---

  - Aspects (2:250/107) : +44 617920260, au Royaume-Uni, le sysop est
    Dave Gorski, V32b, CPCEMU 1.2, programs (la majorit‚ en basic),

  - Genesis the 8bit generation, (2:320/220), +33 1 39 50 54 11, en
    France, du v22 au VFC, le sysop est Emmanuel Roussin. Les derniŠres
    versions des ‚mulateurs, des ROMs 6128 qwerty et azerty, des
    programmes freeware, shareware et domaine public, des fanzines
    disquettes, des pokes, des solutions, des d‚mos et quelques jeux
    commerciaux avec l'autorisation de leurs auteurs. Pour le moment il
    y a environ 41 Mo de programmes compress‚s. Pour les utilisateurs
    FIDO, vous pouvez faire une demande du fichier ALLFILES.ZIP, et
    demander ensuite ce qui vous int‚resse.

  - Razormaid, (2:246/6009), +49 711 4204329, en Allemagne, jusqu'au
    v32b et Zyxel, le sysop est Thorsten Mitschele, aussi connu sous le
    nom de Kangaroo sur la scŠne CPC. Il a les mˆmes fichiers que
    Genesis, avec un peu de d‚lai.


  - ZNODE 51 : + 49 89 961 45 75, en Allemagne, de 15:00 … 3:00 CET
    (MEZ), jusqu'en v32b, fichiers CPC

  - Beavis'n'Butthead BBS 2453/407, Allemagne



6.2  DerniŠres nouvelles, ‚change d'experiences
===============================================

  Voulez-vous avoir toujours la derniŠre version de CPCEMU ?
  Voulez-vous ˆtre inform‚ si une nouvelle version est sortie ?
                    
  Nous avons cr‚‚ un "newsgroup" (un forum ‚lectronique) sp‚cialement
  pour le CPC ! Il s'appelle :

          comp.sys.amstrad.8bit

  Vous y trouverez des discussions sur les CPCs (et aussi sur CPCEMU), et
  vous pourrez parler de vos exp‚riences avec les CPCs.

  Il y a une FAQ (Frequently Asked Questions = les questions pos‚es
  fr‚quemment) disponible pour ce newsgroup, la derniŠre se trouve
  toujours sur le site FTP : ftp.ibp.fr dans /pub/amstrad/amstrad.faq

  Si vous ne pouvez pas lire le newsgroup pour telle ou telle raison, 
  ‚crivez-moi un "email" (courrier ‚lectronique) pour me dire que vous
  voulez figurer sur la liste des correspondants. Vous serez alors
  inform‚ des derniŠres nouvelles sur CPCEMU.

  Vous trouverez mon adresse dans la prochaine section.
  Naturellement, vous pouvez aussi utiliser le courrier "normal" pour me 
  poser des questions (ou … David, voir ci-dessous), mais, s'il vous plaŒt,
  n'oubliez pas les frais d'exp‚dition du courrier !
  
  A propos, si vous m'envoyez une contribution financiŠre, je me sentirai
  oblig‚ de vous faire parvenir la derniŠre version de CPCEMU au moins une ou
  deux fois.
  



6.3  Si vous avez des questions ou des suggestions
==================================================


  Alors, ‚crivez-moi directement :

       Marco Vieth
       Auf dem Uekern 4
       D-33165 Lichtenau
       ALLEMAGNE

       T‚l‚phone : (...)05292/1366 (en week-ends)

       Internet: ali@uni-paderborn.de

       Comme vous l'avez probablement devin‚ au vu de mon adresse Internet,
       j'‚tudie les sciences informatiques … l'Universit‚ de Paderborn. 
       Je suis dans mon dixiŠme semestre (SS 95).



  Au cas o— vous parleriez ou ‚cririez l'anglais, vous pouvez aussi ‚crire
  … David Cantrell :

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

       T‚l‚phone : +44-1424-221015

       Internet: david@integration.co.uk


  David offre d'aider un peu … r‚pondre … la "pile de lettres".  Il a
  num‚ris‚ le manuel du "firmware" pour le CPC, de sorte que chacun peut
  l'obtenir sous sa forme ‚lectronique.

  Bien que ce programme soit en Freeware, j'accepterai naturellement
  toute espŠce de soutien, financier ou technique (100 … 150
  conviendrait tout … fait, 30-50 Deutschmarks seraient appropri‚s. Cela
  fait environ 20-33 dollars am‚ricains, ou 13-21 livres anglaises).
  Note du Traducteur ER : allez tout simplement … votre poste, et
  demandez … envoyer un mandat postal international, les frais sont
  faibles. personnellement j'ai envoy‚ deux mandats … Marco, ‚loign‚s de
  six mois … un an, tellement j'‚tais heureux de retrouver un CPC sur
  mon PC, et pourtant je n'ai pas des revenuse exceptionnels.

  Mˆme si vous n'envoyez pas d'argent, je r‚ponds normalement … toutes les
  lettres, et j'essaie de garder vos suggestions … l'esprit (je suis s–r
  que David fait de mˆme).
  Ainsi, n'h‚sitez pas … envoyer vos commentaires.



6.4  Autres ‚mulateurs pour Amstrad CPC
=======================================

  Au d‚but de 1994, je croyais que CPCEMU ‚tait le seul ‚mulateur pour
  l'Amstrad CPC. Aujourd'hui, j'en connais trois autres :

  - SIMCPC :
    Sans doute le premier qui fut ‚crit.
    Emulateur de CPC pour PC/XT/AT   (c) 1989, 90 by GHE, Aachen.
    Il n'est qu'en noir et blanc, mais avec des ROMs additionnelles ;
    seulement une manifestation d'humour "aprŠs boire".

  - CPC2PCxx :
     En d‚veloppement depuis Octobre 1993, par Paco Lopez (Espagne), et
     disponible sur sites … pr‚sent. Il est ‚crit entiŠrement en mode
     prot‚g‚, et utilise le mˆme format de disquette que CPCEMU.

  - CPE :
    En d‚veloppement par Bernd Schmidt. En utilisant un mode d'‚cran
    sp‚cial de 50 Hertz, des blocs de couleurs sont reproduits exactement.
    Un CPE2 "sp‚cial 256 couleurs" affiche des blocs de couleurs exacts …
    plus de 50 Hertz.
    Egalement assur‚s : multi-modes, overscan.
    DerniŠre version : v5.0.



6.5  Projets pour les futures sorties de CPCEMU
===============================================


  - overscan
  - multi-mode am‚lior‚
  - ‚cran centr‚ si on change sa taille
  - scrolling "hard" rapide
  - les claviers am‚ricains n'ont pas de "<>", ALTgr
  - simuler les ports d'expansions du CPC
  - charger directement les disquettes de CPC
  - charger directement les cassettes de CPC (par le port-imprimante
    ou la carte Soundblaster)
  - transf‚rer toute l'image de la disquette avec l'adaptateur parallŠle
  - contr“le du volume pour la Soundblaster
  - son am‚lior‚ (peut-ˆtre avec production de bruit)
  - ‚mulation digiblaster
  - touches du joystick s‚lectionnables
  - utiliser la souris comme un joystick
  - auto d‚tection de .SNA et .DSK
  - ‚muler le port d'expansion


  Peut-ˆtre cela ne sera-t-il jamais r‚alis‚, car j'ai mon m‚moire … ‚crire
  en priorit‚, et ‡a me donne beaucoup de travail...



6.6  Remerciements
==================

  - Remerciements particuliers … Juergen Weber, non seulement pour ses
    suggestions, mais sp‚cialement pour l'‚mulation rapide du Z80 faite 
    avec son ‚mulateur CP/M ZSIM.

                Juergen G. Weber
                Wiesentalstrasse 1
                74523 Schwaebisch Hall
                Federal Republic of Germany

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


  - Egalement merci … Bernd Schmidt. Parce que Bernd a ‚crit son propre
    ‚mulateur, nous avons eu les mˆmes problŠmes en mˆme temps. Vous ne
    pouvez imaginer ce que cela repr‚sente, et combien de d‚tails posent
    problŠme, que si vous avez essay‚ d'‚crire vous-mˆme un ‚mulateur.
    Aucune documentation sur le CPC n'est disponible, qui en donnerait 
    toutes les caract‚ristiques : des parties entiŠres du comportement du 
    CPC n'ont ‚t‚ d‚tect‚es que par l'exp‚rimentation sur cet ordinateur.
    
  - Merci … Emmanuel Roussin pour son engagement infatiguable envers le
    CPC. Il a fait l'essentiel pour la cr‚ation du "newsgroup", et m'a
    prˆt‚ sa Multiface II pendant des mois, pour que je puisse l'inclure
    dans l'‚mulateur d'une fa‡on ou d'une autre.
    
  - Merci … Arnt Gulbrandsen pour son source JPP, o— j'ai trouv‚ des id‚es
    pour le pilote du clavier et la routine du joystick. En fait, JPP est
    un trŠs bon ‚mulateur de Spectrum.

  - Merci … Martin Zacho de m'avoir fourni une routine pour le joystick.

  - Merci … Fernando J. Echevarrieta Fernandez pour avoir remarqu‚ le
    premier que la version v0.8 n'‚mulait pas un CPC 664.

  - Merci … Gilles Molinari pour son programme de transfert par l'adaptateur
    parallŠle.

  - Merci … Paul Martin d'avoir corrig‚ la documentation anglaise de la
    version 1.0.

  - Merci … Mark Haigh-Hutchinson pour son engagement de faire des programmes
    … partir du domaine public de la compagnie Vortex
    (mhh@lucasarts.com).

  - Merci … Martin Young pour ses ‚minentes id‚es … propos de l'‚mulation
    du Z80.

  - Merci … Linh Hsiesh pour ses nombreuses id‚es d'am‚lioration, dont 
    beaucoup ont ‚t‚ adopt‚es.

  - Merci … Fred Harris d'avoir ‚crit … AMSTRAD … propos des ROMs.

  - Merci … Amstrad, sp‚cialement … Cliff Lawson, pour m'avoir autoris‚ 
    … distribuer la ROM Basic. Amstrad possŠde toujours le copyright.

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

  - Merci … Richard Clayton, de Locomotive, pour m'avoir permis de
    distribuer la ROM Firmware. Locomotive possŠde toujours le copyright.

  - Et merci … tous les nombreux utilisateurs pour m'avoir envoy‚ des
    suggestions ou des id‚es. Sans eux, CPCEMU aurait difficilement atteint
    la version 1.0.





6.7  Marques d‚pos‚es
=====================

  CP/M, CP/M 2.2 et DRDOS sont des marques d‚pos‚es de Digital Research.
  MS-DOS est une marque d‚pos‚e de Microsoft.
  IBM PC, PC-XT, PC-AT et OS/2 sont des marques d‚pos‚es de International
  Business Machines.
  CPC, AMSDOS par Amstrad,
  BORLAND C, TASM (Turbo Assembler) par Borland,
  22DISK par SYDEX,
  Soundblaster par Creative Labs.





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


7.  Information interne sur CPCEMU
ðððððððððððððððððððððððððððððððððð


Ce chapitre fournit quelque information d'arriŠre-plan et r‚pond … la
question : "POURQUOI devrais-je faire ceci ou cela maintenant ?"

Le puissant menu de d‚boguage est aussi ‚crit. Vous trouverez ‚galement
la structure des images de disquettes et des fichiers de snapshots.

Cette information n'est pas destin‚e … ceux des utilisateurs de CPCEMU 
qui n'ont aucune connaissance de ce que contient un CPC. Peut-ˆtre,
pourtant, leur sera-t-elle utile un jour.

J'ai plac‚ cette information … la fin, et mˆme aprŠs les marques d‚pos‚es,
avec l'intention de montrer sa "relative insignifiance".

Si vous n'avez aucun plaisir … lire des phrases inintelligibles et des
informations en d‚sordre, ne lisez pas plus avant ! Sautez directement
… l'Appendice.



ATTENTION : Vous continuez la lecture … vos propres risques !





7.1  Table des matiŠres du chapitre 7
=====================================

  7.2  Aper‡u interne des particularit‚s de CPCEMU
    7.2.1  Le Z80 (le microprocesseur)
    7.2.2  Le Gate Array (le "co-processeur")
    7.2.3  Le PAL (Programmable Logic Array)
    7.2.4  Le CRTC 6845 (Cathode Ray Tube Controller : contr“leur vid‚o)
    7.2.5  Le PIO 8255 (Programmable Input Output)
    7.2.6  Le PSG AY 3-8912 (Programmable Sound Generator)
    7.2.7  Le FDC 765 (Floppy Disc Controller : contr“leur de disquettes)
    7.2.8  L'interface Centronics pour imprimante

  7.3  Le menu Debug
    - Aper‡u du menu Debug
    - Pr‚liminaires
    - Aper‡u des commandes
    - Manipulation des registres

  7.4  Gestion de la m‚moire
    7.4.1  Encore une fois : la configuration EMS
    7.4.2  Comment opŠre la commutation de banques ?

  7.5  Modifications de la ROM
    7.5.1  D‚rivation de la ROM pour la cassette
    7.5.2  Modifications de la ROM AMSDOS

  7.6  Divers
    7.6.1  Encore une fois : le fichier de configuration
    7.6.2  L'adaptateur parallŠle
       - Sens CPC->PC
       - Sens PC->CPC
    7.6.3  CPCTRANS

  7.7  Structure des fichiers CPCEMU
    7.7.1  Images de disquettes
       - Le bloc d'information Disque
       - Le bloc d'information Piste
    7.7.2  Fichiers Snapshot
    7.7.3  En-tˆte AMSDOS
    7.7.4  Base de donn‚es de Pokes

  7.8  Historique interne




7.2  Aper‡u interne des particularit‚s de CPCEMU
================================================


  A quel point CPCEMU est-il r‚ellement compatible ? Voici les "plus" et
  les "moins".


  7.2.1  Le Z80 (le processeur)
  -----------------------------

  + Toutes les instructions du Z80 sont ‚mul‚es, y compris celles dites
    "ill‚gales".
    Vous avez le choix entre une ‚mulation lente du Z80, ‚crite en C, 
    et une ‚mulation rapide, ‚crite en assembleur par Juergen Weber.
    Avec la technique CO-CPU, chaque instruction du Z80 est ‚mul‚e
    simultan‚ment par les versions lente et rapide, ce qui est trŠs lent,
    mais, en comparant les registres aprŠs chaque instruction, bien des 
    erreurs sont d‚busqu‚es. Evidemment, on n'a fait cela que durant la phase
    de d‚veloppement du programme.
    Vous pouvez activer l'‚mulation lente dans le menu Debug.
  + Instructions additionnelles cod‚es "ED FC xx", qui n'existent que sur 
    l'‚mulateur.
    Au nombre de ces instructions, le "break utilisateur" cod‚ "ED FC FC",  
    … traduire par "USER &BCFC".

  - Le temps d'ex‚cution des instructions n'est pas exact.


  7.2.2  Le Gate Array (le "co-processeur")
  -----------------------------------------

  + Toutes les 32 couleurs du CPC (27 diff‚rentes, en fait)
  + Les trois modes d'‚cran (X x Y x COULEURS) :
        mode 0 = 160x200x16
        mode 1 = 320x200x4
        mode 2 = 640x200x2
  + Commutation de ROM (16K OS, 16K Basic, 16K AMSDOS et ROMs additionnelles)

  - La couleur provoque un scintillement



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

  Le PAL est … la mˆme adresse logique que le Gate Array, mais en est 
  physiquement s‚par‚.

  + Commutation de RAM (128 K, jusqu'… 576 K) avec m‚moire EMS ou 
    conventionnelle.
    Avec de l'EMS ‚mul‚e, les blocs sont localis‚s par le hardware, de
    sorte que la vitesse est bonne. CPCEMU vous donne une expansion de
    RAM "compatible Dk'Tronics", jusqu'… 576 K.

  - Sans EMS, la commutation de RAM est trŠs lente, puisque les blocs de
    m‚moire doivent ˆtre d‚plac‚s dans la m‚moire du PC. En outre, vous
    avez seulement 128 K de RAM.




  7.2.4  Le CRTC 6845 (Cathode Ray Tube Controller : contr“leur vid‚o)
  --------------------------------------------------------------------

  + Base de l'‚cran et "offset" (d‚calage) par scrolling hard.
  + Plusieurs tailles d'‚cran, de 0x0 … 80x25, avec les registres 1 et 6.
  + Diff‚rentes tailles de caractŠres (1..7) avec le registre 9 du CRTC.
  + Multi-mode (il utilise d'autres registres).

  - L'Overscan n'est pas encore assur‚.



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

  + Clavier (connect‚ au PSG).
  + Emulation de la VSYNC : un bit mis … 1 entre deux interruptions, durant
    un rafraŒchissement de l'‚cran. Vous pouvez changer la position.
  + La cassette est trŠs rapide, une d‚rivation de la ROM permet l'accŠs …
    tous les fichiers DOS.

  - Le bit de VSYNC est positionn‚ trop longtemps.
  - Les ports cassette ne sont pas ‚mul‚s ; ainsi, beaucoup de programmes
    sur cassette qui accŠdent directement aux ports ne fonctionnent pas.


  7.2.6  Le PSG AY 3-8912 (Programmable Sound Generator)
  ------------------------------------------------------
  
  + Du son, soit par le haut-parleur du PC (horrible, parce que trois canaux
    sont multiplex‚s en un seul, et que le volume ne peut pas ˆtre modifi‚)
    ou sur une carte Soundblaster. Seules la partie Adlib compatible FM est
    utilis‚e.

  - Pas de son num‚rique, ou alors trop lent.
    Les enveloppes de bruit du PSG n'ont pas d'‚quivalent sur une carte
    Soundblaster, aussi ne sont-elles pas ‚mul‚es.


  7.2.7  Le FDC 765 (Floppy Disc Controller : contr“leur de disquettes)
  --------------------------------------------------------------------

  + Toutes les commandes du FDC n‚cessaires pour contr“ler deux lecteurs
    A et B (y compris lire/‚crire secteur, chercher piste, lire ID-secteur, 
    etc. Ignor‚ : formater piste).
    Formats de disquettes trŠs souples (jusqu'… 18 secteurs par piste).
    Incluant les formats double face, par exemple de VORTEX.

  - Les formats compliqu‚s destin‚s … la protection contre la copie ne
    sont pas reconnus.



  7.2.8  L'interface-imprimante Centronics
  ----------------------------------------

  + Sorties vers l'imprimante sur 8 bits, vers un fichier d‚fini par PRINTER.




7.3  Le menu Debug
==================

  Le jeu complet des registres du Z80 est affich‚, et leur contenu peut ˆtre
  modifi‚.

  Vous pouvez faire un "dump" de la m‚moire, la d‚sassembler ou la modifier. 
  Vous pouvez charger ou sauvegarder des zones de m‚moire. Et, le plus 
  int‚ressant : vous pouvez ex‚cuter les programmes pas … pas (comme sur
  un vrai d‚bogueur) !
                                  
  Aper‡u du menu Debug
  --------------------

  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 premiŠre ligne affiche les commandes disponibles, sous forme de lettres
  majuscules.
  Les deux lignes suivantes montrent les valeurs contenues dans les registres
  du Z80.
  La suivante d‚sassemble l'instruction en cours … la position du PC 
  (le Compteur de Programme, pas l'ordinateur !).
  Et la derniŠre est un "prompt" qui attend votre prochaine entr‚e (le "f" 
  indique que vous ˆtes dans le mode rapide de l'‚mulation).


  Pr‚liminaires
  -------------

  Les paramŠtres entre crochets carr‚s sont optionnels [opt].
  N'utilisez que des valeurs hexad‚cimales, par exemple <adresse> = 0000-ffff.
  "<ret>" indique que vous ˆtes dans un mode sp‚cial : vous pouvez appuyer
  sur <return> pour continuer ; <chaŒne_quelconque><Return> quitte ce mode
  (utilisez par exemple b<return>).
  Les commandes sont des lettres, souvent suivies par une adresse optionnelle.
  Entre la lettre et cette adresse doit figurer un espace ou une tabulation.
  Si la commande est donn‚e sans adresse, c'est celle du PC (voir plus haut !)
  qui est prise par d‚faut.
  

  Aper‡u des commandes
  --------------------

  R)un:
  r [<adresse>] : lance l'‚mulation … partir de l'adresse du PC ou de
    l'adresse optionnelle que vous donnez.
    Exemples :
    -f-> r      lance l'‚mulation … partir de l'adresse du PC.
    -f-> r 100  place l'adresse 0x100 dans le PC et lance l'‚mulation.

  T)race ("trace into"):
  t [<adresse>] : ex‚cute uniquement l'instruction affich‚e.
    Utilisez <return> pour continuer dans ce mode, et ainsi de suite.
    <chaŒne_quelconque><return> revient au mode normal.
    Toutes les commandes pas … pas sont ex‚cut‚es par l'‚mulation lente
    (mˆme si "-f->" est affich‚), parce qu'il n'y a plus de compteur
    dans l'‚mulation rapide.

  S)tep ("step over"):
  s [<adresse>] : ex‚cute la prochaine instruction.
    Ou plut“t, toutes les instructions, jusqu'… ce que l'adresse du PC 
    soit ‚gale … celle de la prochaine instruction (cas d'un appel de sous- 
    programme). Ce qui peut prendre, comme disait Fernand Raynaud, "un certain
    temps", par exemple aprŠs un "Ret". Dans ce cas, la touche F10 peut
    aider (comme toujours).
    Toutes les commandes pas … pas sont ex‚cut‚es par l'‚mulation lente,
    comme dit 11 lignes plus haut.

  A)ssemble (en r‚alit‚ : d‚sassemble) :
  a [<adresse>] : d‚sassemble les 16 instructions suivantes.
    Utilisez <return> pour continuer dans ce mode, et ainsi de suite.
    <chaŒne_quelconque><return> revient au mode normal.

  D)ump:
  d [<adresse>] : affiche un dump en hexa/ASCII des 256 octets suivants,
    … partir de l'adresse sp‚cifi‚e ou contenue dans le PC.
    Utilisez <return> pour continuer dans ce mode, et ainsi de suite.
    <chaŒne_quelconque><return> revient au mode normal.

  I)nput (modifiant la m‚moire) :
  i [<adresse>] : affiche l'adresse m‚moire donn‚e et son contenu, que vous
    pouvez conserver avec <return> ou modifier avec <valeur-hexa><return>.
    Quittez ce mode en donnant un nombre invalide, tel que "-1" : -1<return> .

  L)oad (charger un programme) :
  l [<adresse>]  : attend que vous donniez un nom de fichier, et le charge 
    … partir du sous-r‚pertoire TAPE_PATH (il doit donc s'y trouver !), 
    … l'adresse sp‚cifi‚e.
    Un en-tˆte AMSDOS est reconnu comme tel.
    Si vous appuyez sur <Return> aprŠs la demande du nom de fichier, le menu 
    de s‚lection de fichier (bien connu) apparaŒt...
    Exemples :
    -f-> l<return> demo<return>         :
        charge le fichier "demo" … l'adresse contenue dans le PC.
    -f-> l a000<Return> monprog<Return>  :
        charge le fichier "monprog" … l'adresse 0xA000.

  saV)e (sauvegarder un programme) :
  v [<adresse>]  : attend que vous lui donniez un nom de fichier, et la 
    longueur de la zone de m‚moire … sauvegarder. Cette zone sera
    sauvegard‚e depuis <adresse> (ou celle contenue dans le PC), en tant
    que fichier binaire, dans le sous-r‚pertoire TAPE_PATH, avec un
    en-tˆte AMSDOS.
    Exemple :
    -f-> v<return> demo<return> 4000<return> :
        sauvegarde un fichier "demo" commen‡ant … l'adresse du PC et de 
        longueur 0x4000.

  M)ode (changer le mode d'affichage) :
  m : bascule entre les modes d'affichage : affichage des registres, 
    marche/arrˆt du d‚sassemblage de l'instruction.

  F)ast (s‚lection du type d'‚mulation) :
  f : bascule entre l'‚mulation rapide du Z80 (d‚velopp‚e en assembleur
    par Juergen Weber, et prise par d‚faut) et l'‚mulation lente (‚crite
    en C).
    Le "prompt" affiche "-f->" pour "fast" (rapide) et "-s->" pour "slow" 
    (lente).
    Les commandes r, s, t se r‚fŠrent au type d'‚mulation s‚lectionn‚.

  Q)uit (quitter le programme) :
  q : abandonne l'‚mulateur.


  Manipulation des registres
  --------------------------

  Outre les commandes ci-dessus, vous pouvez modifier le contenu des
  registres du Z80 avec la syntaxe "<registre>=<valeur-hexa>".
  Exemples :
  - af=345        : place 0x0345 dans le registre AF.
  - pc=a000       : rŠgle le compteur de programme … l'adresse 0xA000.

  Vous pouvez ‚galement ‚crire "<registre><espace><valeur-hexa>".

  Vous pouvez modifier tous les registres affich‚s c'est-…-dire AF, BC, DE,
  HL, IX, IY, SP, PC, IR, AF', BC', DE', HL', et aussi IFF1, IFF2 et IMD.





7.4  La gestion de la m‚moire
=============================


  7.4.1  Une fois de plus : la configuration EMS
  ----------------------------------------------

    Il vous faut un gestionnaire de m‚moire aceptant le standard LIM EMS 4.0. 
    Ce gestionnaire doit fournir des pages EMS ‚tendues dans n'importe quelle 
    r‚gion de la m‚moire, car CPCEMU cherchera 6 pages physiques sur des
    adresses cons‚cutives.

    Si l'emploi de la m‚moire EMS est possible, un d‚compte de ladite m‚moire
    "EMS xxx Bytes ok." apparaŒtra durant l'initialisation.

    Je vous ai conseill‚, au d‚but de cette documentation, d'employer les 
    r‚glages suivants sous OS/2 :

        EMS_FRAME_LOCATION = auto
        EMS_HIGH_OS_MAP_REGION = 32     (ou davantage)
        EMS_LOW_OS_MAP_REGION = 0       (ou davantage)

    Qu'est-ce que cela signifie ?
    La r‚gion basse est pour les pages EMS en m‚moire conventionnelle.
    Si CPCEMU doit utiliser de telles pages, mettez au moins 6*64K = 384K.

    La r‚gion haute est pour les pages EMS au-dessus de la limite des 640K, 
    en plus du frame standard de 64K. Mettez au moins 2*16K = 32 K.


    Avec le DOS, je vous ai conseill‚ d'inclure les lignes suivantes dans 
    votre CONFIG.SYS :

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

    Modifiez le "1024", selon la m‚moire dont vous disposez sur votre
    ordinateur.

    Notes :
    EMM386 fournit plusieurs pages additionnelles en m‚moire conventionnelle.
    L'adresse minimale peut ˆtre chang‚e avec l'option /B=<segment> (par
    d‚fault, 4000).
    Avec /P<nombre>=<segment>, il est possible de changer les segments des
    pages physiques.




  7.4.2  Comment s'effectue la commutation de banques ?
  -----------------------------------------------------

    La commutation de banques se pratique sur les ordinateurs "familiaux"
    qui ont de la RAM et de la ROM … la mˆme adresse. 
    Ainsi, les lectures se font en ROM, et les ‚critures en RAM. Les CPCs
    464 et 664 d'Amstrad ont 64K de RAM, une ROM de 16K aux adresses
    (hexa) 0-3fff, et une seconde aux adresses 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

    L'id‚e principal pour CPCEMU est d'avoir des segments et offsets
    diff‚rents pour la lecture et l'‚criture. Pour chaque accŠs en lecture,
    un offset de lecture est additionn‚ … l'adresse d‚sir‚e, et on fait
    de mˆme avec un offset d'‚criture.

                        ‚tat 0                   ‚tat 1

        bloc 5   M       L   c                W  0       <
        bloc 4   M    W  C   c                W  C   c    | commute au
        bloc 3   M    W  8 b c                W  8 a c    | changement
        bloc 2   M    W  4 b c                W  4 a c    | d'‚tat
        bloc 1   M    W  0 b                     L a c   <
        bloc 0   M       U b                     U a


    (M = m‚moire conventionnelle, ou pages physiques EMS)

    a = ROM basse activ‚e,    ROM haute activ‚e
    b = ROM basse d‚sactiv‚e, ROM haute activ‚e
    c = ROM basse activ‚e,    ROM haute d‚sactiv‚e
    W = ROM basse d‚sactiv‚e, ROM haute d‚sactiv‚e

    Pour basculer entre les deux ‚tats, les blocs "0" et "L" doivent
    ˆtre commut‚s. Pour la commutation des banques de RAM, un nouveau
    bloc "0" doit ˆtre commut‚ avec l'ancien. 
    La s‚lection de ROM est accomplie en copiant la nouvelle ROM vers le
    bloc "U".

    Avec la m‚moire EMS, toutes les commutations de banques sont faites
    par le mat‚riel EMS (ou son ‚mulation). Cela augmente la vitesse
    de l'‚mulation en Basic et avec CP/M Plus. 
    Maintenant, vous comprenez pourquoi 6 pages physiques EMS cons‚cutives
    sont n‚cessaires : le frame standard avec 4 pages est insuffisant.





7.5  Modifications de la ROM
============================


  7.5.1  D‚rivation de la ROM pour la cassette
  --------------------------------------------

    AprŠs la commande "|TAPE", ou si la ROM de l'AMSDOS est d‚sactiv‚e,
    c'est la cassette qui est active. Les accŠs-cassette avec CPCEMU
    sont transform‚s en accŠs … un fichier dans un simple sous-r‚pertoire.
    Cette redirection est accomplie par une d‚rivation de la ROM. 
    Avec "TAPE_BYPASS=YES", vous activez la d‚rivation des vecteurs-cassette 
    en ROM.

    Si CPCEMU trouve une ROM connue de CPC 464/664/6128, elle est modifi‚e
    en cons‚quence. La d‚rivation est n‚cessaire si vous voulez employer la 
    cassette.

    Des instructions sp‚ciales sont implant‚es dans l'‚mulation du Z80. 
    Elles appellent des fonctions sp‚ciales qui ne sont fournies que par
    l'‚mulateur ; elles ont ‚t‚ entr‚es directement en ROM, mais il est
    toujours possible de modifier les vecteurs en RAM.

    Les instructions suivantes sont disponibles :
    ED FC xx  USER &BCxx    (valide seulement pour quelques vecteurs en RAM)
    Equivaut … une instruction CALL vers une des fonctions internes.
    Les valeurs suivantes pour xx sont l‚gales :
        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

    En outre, vous pouvez employer le "break utilisateur" cod‚ ED FC FC  
    (USER &BCFC) : il stoppe imm‚diatement l'‚mulation.



  7.5.2  Modifications de la ROM de l'AMSDOS
  ------------------------------------------

    - Avec "DISABLE_ADOS=YES" dans le fichier de configuration, vous faites
      "oublier" l'initialisation de l'AMSDOS.

      Dans ce cas, la modification des vecteurs-cassette, effectu‚e par 
      l'AMSDOS lorsqu'on ordonne "|TAPE", est d‚sactiv‚e (ainsi, les
      vecteurs-cassette pointent toujours sur la cassette, bien que la
      ROM de l'AMSDOS ait ‚t‚ initialis‚e). C'est n‚cessaire si vous d‚sirez
      continuer … charger des fichiers … partir de la cassette aprŠs un
      reset-disc, mais sans avoir … donner la commande "|TAPE" auparavant
      (bidouille r‚alis‚e avec "poke &CCF2,&18: poke &CCF3,&05" dans la
      ROM de l'AMSDOS).

      Les instructions de secteur ne sont pas affect‚es, elles adressent 
      toujours la disquette.

    - "DISC_SPEEDUP=YES" active une modification de l'AMSDOS, laquelle
      minimise le d‚lai d'attente du moteur du lecteur de disquettes, 
      afin de rendre plus rapides les accŠs-disque (ici, tout est fait
      par le DOS, on n'a donc pas besoin de d‚lai d'attente).
      Pour y parvenir, on a modifi‚ les octets suivants, toujours dans
      la ROM de l'AMSDOS :
          poke &C5D4,&01  :'d‚lai pour le moteur
          poke &C5D8,&01  :'d‚lai pour le formatage d'une piste
          poke &C5D9,&01  :'court d‚lai
          poke &C5DA,&01  :'court d‚lai
          poke &C602,&01  :'1 seul "Retry" en cas d'erreur
          poke &C784,&01  :'recherche rapide
          poke &C7E2,&01  :'recherche rapide




7.6  Divers
===========



  7.6.1  Une fois de plus: le fichier de configuration
  ----------------------------------------------------

    Peut-ˆtre vous souvenez-vous que les commentaires commencent par
    un point-virgule ";" et peuvent prendre place … n'importe quel endroit
    d'une ligne : le reste de la ligne est alors ignor‚e.

    Les espaces, tabulations, sauts de ligne et ";" sont des d‚limiteurs,
    et peu importe combien vous en utilisez.

    Beaucoup de d‚finitions ont la forme syntaxique :

                 <mot-cl‚> = <valeur> {T}

    {T} est une s‚quence d'au moins un d‚limiteur.
    Exemple :    ROM_PATH = .\ROM

    <nombre> peut ˆtre donn‚ en d‚cimal, hexad‚cimal (avec le pr‚fixe 0x) 
    ou binaire (%).
    <chemin> peut avoir une longueur de 80 caractŠres et <fichier> jusqu'…
    20 caractŠres.

    Quelques informations suppl‚mentaires pour s‚lectionner le mot-cl‚ :

    BREAK_MASK = <nombre>               (3)

      R‚serv‚ au d‚boguage.
      Certains ‚v‚nements ("events") interrompent l'‚mulation normale. 
      Avec ce drapeau, vous pouvez d‚sactiver ces ‚v‚nements. A utiliser
      avec pr‚caution !
      Laissez tous les bits … la mˆme valeur, sauf ceux concernant les 
      ‚v‚nements que vous ne voulez pas voir intervenir.
      b2 = 0 -> d‚sactive l'affichage des erreurs sur les ports 
                (utilisez 0xfffb)
      b3 = 0 -> d‚sactive les touches de fonction (ainsi, l'‚mulation 
                ne peut plus ˆtre interrompue ! Utilisez 0xfff7)
      La signification de ces bits pourra changer dans l'avenir !





  7.6.2  L'adaptateur parallŠle
  -----------------------------

    Voyons d'abord la construction de l'adaptateur, avec la description
    des fonctions de chaque fil :


    PC  D-SUB   Cent.   CPC             Fonction
    --------------------------------    ---------------------------
    GND    19 ---- 19   GND             GND
    BUSY   11 <--- 1    -STROBE         Synchro (Donn‚e disponible)
    -ACK   10 <--- 8    D6              |
    PE     12 <--- 7    D5              | Donn‚es
    SELECT 13 <--- 6    D4              |
    -ERROR 15 <--- 5    D3              |
    D0      2 ---> 11   BUSY            Synchro (Prˆt … recevoir)


    Sens CPC->PC
    ------------

    Normalement, l'adaptateur est con‡u pour fonctionner dans ce sens 
    seulement. Envoyer une donn‚e depuis le CPC ‚quivaut en principe 
    … envoyer du texte sur la ligne de l'imprimante.

    Si le PC signale "Not-BUSY" (non occup‚), le CPC ‚crit un quartet
    (4 bit d'un octet) sur le port, positionne STROBE pour signaler que 
    la donn‚e est l…, et l'efface ensuite.

    Ainsi, le PC a seulement besoin d'effacer le signal BUSY (par la
    ligne D0), d'attendre le STROBE (sa ligne BUSY), prendre le quartet 
    (sur les lignes d'entr‚e imprimante->PC), et positionner BUSY.

    Question : pourquoi scinder l'octet en deux quartets ? Pourquoi
    ne pas envoyer les 8 bits en une seule fois ?
    R‚ponse :
    1. Le port imprimante du PC doit ˆtre reprogramm‚ en entr‚e, et je
       ne suis pas s–r que c'est possible sur tous les PCs    
       et
    2. Le CPC n'a que 7 bits sur sa sortie imprimante (sauf le 6138 Plus).


    Sens PC->CPC
    ------------

    J'ai pens‚ un jour … la possibilit‚ d'envoyer des donn‚es dans l'autre 
    sens. Malheureusement, le CPC n'a qu'une seule ligne (un seul bit) en
    entr‚e sur le port-imprimante : le signal BUSY.

    Aussi, cela n'am‚liorerait pas la situation si vous tentiez de
    concevoir un meilleur adaptateur pour ce sens. Ainsi, faites avec ce
    que vous avez d‚j…, et tentez plut“t d'am‚liorer le protocole de
    transfert.

    Une interface s‚rie, ‚galement, n'a qu'une ligne pour chaque sens.
    Mais elle utilise une synchronisation mat‚rielle, habituellement avec
    un quartz, et les deux c“t‚s doivent employer exactement la mˆme vitesse 
    de transmission, par exemple 1200 bauds.

    Il est difficile de r‚aliser cela avec seulement un logiciel. Que
    faire alors ? L'id‚e principale consiste … utiliser l'avantage de la
    vitesse du PC sur le CPC. Chaque octet est partag‚ en 8 bits, et
    transmis en s‚rie, le PC devant se charger de positionner le signal
    BUSY au rythme voulu. Durant la transmission de ces 8 bits, le CPC
    fournit sa vitesse maximale, et le PC doit se r‚gler sur lui. Le CPC
    ‚crit un "bit de requˆte" avec une instruction en assembleur, et le
    PC doit r‚agir rapidement en positionnant le signal BUSY en
    concordance avec le bit suivant, puisque, avec l'instruction
    "suivante-moins-une" (?), le CPC le lira.

    Afin de ne pas d‚sactiver les interruptions pendant tout le transfert,
    pour chaque octet, une "connexion" est ‚tablie : le CPC dit "Envoie-moi
    quelque chose !", et le PC r‚pond "D'accord, j'attends jusqu'… ce que tu
    sois prˆt … le recevoir !" en basculant le signal BUSY.
    Tout le processus est prot‚g‚ par un timer, pour ‚viter qu'aucun des
    deux partenaires n'aille se planter en attendant un signal qui n'a
    jamais ‚t‚ envoy‚.
    Ainsi (puisque les interruptions ne sont pas d‚sactiv‚es), vous pouvez
    sortir du programme avec <ESC> ou <CRTC>+<BREAK> … tout moment.
    



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

    Une autre option non mentionn‚e, … propos de CPCTRANS, est "/d 0" 
    ou "/d 1". Avec 1, le mode double-pas sp‚cial est s‚lectionn‚, et, 
    sur les lecteurs de disquettes 80 pistes, chaque seconde piste est
    saut‚e lorsqu'on travaille avec des disquettes de 40 pistes.

    Cette option ne devrait pas ˆtre n‚cessaire, puisque CPCTRANS commute
    automatiquement en double-pas quand il d‚tecte une disquette 5,25 pouces
    et 360 K.
    
    Normalement, il est trŠs simple de lire et d'‚crire des secteurs en
    utilisant le BIOS. Mais le BIOS ne peut pas g‚rer les faces B des
    disquettes avec une marque de tˆte ‚gale … 0.

    Aussi ai-je programm‚ moi-mˆme les fonctions du FDC, avec l'aide de
    la source MINIX. Malheureusement, cette source MINIX contient des 
    erreurs, et le "timing" de certaines sections critiques est effectu‚
    par de simples boucles d'attente qui ont peut-ˆtre ‚t‚ pr‚vues pour 
    un 8086.




7.7  Structure des fichiers CPCEMU
==================================


  7.7.1  Images de disquettes
  ---------------------------

    Ces fichiers se composent d'un bloc de 256 octets d'infos sur la
    disquette, et, pour chaque piste, d'un bloc de 256 octets d'infos
    sur la piste, suivi par les donn‚es pour chaque secteur de chaque piste.

    Le bloc d'Information Disquette
    -------------------------------
    Octet (hexa) :  Signification :
    00 - 21         MV - CPCEMU Disk-File\r\nDisk-Info\r\n
                    ("MV - CPC" pour la reconnaissance du fichier)
    22 - 2F         inutilis‚ (0)
    30              nombre de pistes (40, 42, peut-ˆtre 80)
    31              nombre de tˆtes (1 ou 2)
    32 - 33         taille d'une piste (incluant 256 octets d'info-piste)
                    Avec 9 secteurs * 512 octets + 256 octets d'info-piste
                    = 0x1300.
    34 - FF         inutilis‚ (0)

    Le bloc d'Information Piste (pour chaque piste)
    -----------------------------------------------
    Octet (hexa) :  Signification :
    00 - 0C         Track-Info\r\n
    0D - 0F         inutilis‚ (0)
    10              num‚ro de piste (de 0 … "nombre de pistes - 1")

    11              num‚ro de tˆte (0 ou 1)
    12 - 13         inutilis‚ (0)
    ParamŠtres de formatage de piste :
    14              BPS (octets par secteur) (2 pour 512 octets)
    15              SPT (secteurs par piste) (9, jusqu'… 18)
    16              GAP#3 de formatage (0x4E)
    17              Octet de remplissage (pendant le formatage, 0xE5)
    Info secteur (pour chaque secteur) :
    18+i            num‚ro de piste  \
    19+i            num‚ro de tˆte    | information ID de secteur
    1A+i            num‚ro de secteur |
    1B+i            BPS              /
    1C+i            ‚tat 1, code d'erreur (0)
    1D+i            ‚tat 2, code d'erreur (0)
    1E+i , 1F+i     inutilis‚ (0)

    Notes :
    Les donn‚es enregistr‚es sur le secteur doivent suivre le bloc
    d'Information-Piste dans l'ordre des IDs de secteur. Aucune piste,
    aucun secteur ne doit ˆtre omis. 
    Avec les format double face, les pistes alternent, par exemple :
    piste 0 tˆte 0, piste 0 tˆte 1, piste 1 tˆte 0, etc.
    Employez CPCTRANS pour copier des disquettes CPC vers ce format.



  7.7.2  Fichiers Snapshots
  -------------------------

    Les fichiers snapshots se composent d'un en-tˆte de 256 octets,
    suivi d'un dump de la m‚moire.

    L'en-tˆte Snapshot :
    Octet (hexa) :  Signification :
    00 - 07         "MV - SNA" (pour reconnaŒtre ce type de fichier)
    08 - 0F         inutilis‚ (0)
    10              version de snapshot (2, auparavant 1)
    11 - 1A         registres du Z80 AF, BC, DE, HL, R, I
    1B - 1C         drapeaux du Z80 IFF0, IFF1 (0=d‚sactiv‚, 1=activ‚)
    1D - 24         registres du Z80 IX, IY, SP, PC
    25              mode d'interruption IMD du Z80 (0 - 2)
    26 - 2D         registres du Z80 AF', BC', DE', HL'
    2E              Gate Array : registre du num‚ro d'encre
    2F - 3F         Gate Array : registre de valeur d'encre (0, 1,..., 15, 16)
    40              Gate Array : registre multi-configuration
    41              Gate Array : registre configuration de la RAM
    42              CRTC : registre d'adresse
    43 - 54         CRTC : registre de donn‚es (0, 1, ..., 17)
    55              num‚ro de ROM haute
    56 - 59         PIO : port A, port B, port C, port de contr“le
    5A              PSG : registre d'adresse
    5B - 6A         PSG : registre de donn‚es (0, 1, ..., 15)
    6B - 6C         taille du dump de la m‚moire (64K ou 128K)
    (les paramŠtres suivants n'existent que depuis la version 2.0)
    6D              type de CPC o— le snapshot a ‚t‚ g‚n‚r‚
                    (0=CPC 464, 1=CPC 664, 2=CPC 6128, 3=inconnu)
    6E              num‚ro d'interruption (0..5), la derniŠre interruption
                    durant un cycle de rafraŒchissement de l'‚cran.
    6F - 74         6 octets de multi-mode : le mode d'‚cran (0..2) pour
                    les interruptions 0..5.
    75 - FF         inutilis‚ (0), peut-ˆtre plus tard pour la configuration
                    de l'‚mulateur





  7.7.3  En-tˆte AMSDOS
  ---------------------

    Octet (hexa) :  Signification :
    00              num‚ro d'user (0 ; valeurs possible : 0-15)
    01 - 0F         nom + extension (z‚ros de remplissage le cas ‚ch‚ant)
    10              num‚ro de bloc (0)
    11              drapeau "dernier bloc" (0)
    12              type de fichier (0=Basic, 1=Basic prot‚g‚, 2=binaire,
                    etc.)
    13 - 14         longueur de bloc (0)
    15 - 16         adresse de chargement (0-FFFF)
    17              drapeau "premier bloc" (0)
    18 - 19         longueur logique (0-FFFF)
    1A - 1B         adresse du point d'entr‚e (0-FFFF)
    1C - 3F         libres pour l'utilisateur (0)
    40 - 42         longueur r‚elle du fichier (1-FFFFFF)
    43 - 44         somme de contr“le des octets 00-42
    45 - 7F         inutilis‚ (valeurs al‚atoires venant du tampon secteur)

    Note :
    Un en-tˆte pr‚cŠde tout fichier non-ASCII. Il est identifi‚ comme tel
    en calculant la somme de contr“le.

    Les octets 00-3F ont pour origine la "zone cassette", o— les fichiers 
    ‚taient divis‚s en blocs.
    Les octets 12, 15-16, 1A-1B, 40-42, 43-44 sont n‚cessaires.


  7.7.4  Base de donn‚es de Pokes
  -------------------------------

  Une entr‚e (une ligne) consiste en 7 rubriques, chacune ‚tant limit‚e
  par des guillemets, et s‚par‚es par des virgules.

  1. num‚ro de rubrique (1 caractŠre, 0-F) : la premiŠre a le num‚ro 0
     et peut ˆtre s‚lectionn‚e. Si un programme n‚cessite plus d'un poke, 
     les entr‚es suivantes ont les num‚ros 1, 2, etc.

  2. Nom du programme (jusqu'… 20 caractŠres).

  3. Description (jusqu'… 20 caractŠres).

  4. Type (1 caractŠre) : "t"=Tape (cassette), "d"=disquette, "a"=all (tous). 
     Ignor‚ en g‚n‚ral.

  5. Adresse du poke (4 caractŠres, hexad‚cimal) : donne l'adressse en
     m‚moire dont le contenu doit ˆtre modifi‚.

  6. Valeur … "poker" (2 caractŠres, hexad‚cimal ou "??") : si c'est "??",
     vous devrez fournir vous-mˆme la valeur, pas exemple un nombre de vies.

  7. Ancienne valeur, … modifier (2 caractŠres, hexad‚cimal ou "??") :
     permet de v‚rifier si le poke modifie l'environnement correct. Si la 
     valeur trouv‚e … l'adresse du poke diffŠre de cette ancienne valeur, 
     un avertissement est affich‚. Il n'y a pas de v‚rification avec "??". 

  Exemple :
    "0","Devils Crown","inf oxygen","t","863b","00","??"
    "1","","","t","863c","00","??"
    "2","","","t","863d","00","??"

    Il y a trois pokes pour le programme "Devils Crown", tous fonctionnant
    ensemble. Les anciennes valeurs sont inconnues, donc on a mentionn‚ "??".
    Vous pouvez omettre le nom et la description dans les entr‚es qui suivent.





7.8  Historique interne
=======================


  Z80EMU (seulement un Z80, beaucoup moins qu'un CPC)
  ---------------------------------------------------

  - v1.0 (1991) :
    PremiŠre version en Pascal (uniquement une ‚mulation de Z80).
  
  - v1.2 (12.8.1992 - 16.8.1992) :
    PremiŠre version en C (traduite avec TPTC).
    ProblŠmes Z80 : ADD HL..., DAA, LDIR positionne de fa‡on incorrecte
    le drapeau P. BIT... positionne de fa‡on incorrecte le drapeau Z.
    Les instructions de rotation positionnent de fa‡on incorrecte les 
    drapeaux Z et S. On peut … pr‚sent employer les ROMs.
  
  - v1.3 (18.8.1992) :
    Mauvais adressage de port : octet faible incorrect. 
    Nouvelle gestion de la m‚moire avec 128 K de RAM, 32 K de ROM.
  
  - v2.0 (18.8.1992 - 22.8.1992) :
    Implantation de la technique CO-CPU pour trouver les erreurs (CO-CPU 
    utilise de la m‚moire s‚par‚e, et n'est active que dans un mode de 
    d‚boguage sp‚cial). 
    ProblŠmes Z80 : AND... positionne de fa‡on incorrecte le drapeau H. 
    CPI... positionne de fa‡on incorrecte le drapeau N. 
    A l'origine, l'‚cran ‚tait seulement en noir et blanc, … pr‚sent il est 
    bleu et jaune comme sur un vrai CPC.
  
  - v2.1 (25.8.1992 - 27.8.1992) :
    Emulation de tous les PENs et de toutes les couleurs, dans tous les 
    modes. 
    Ecriture seulement sur l'‚cran actif (celui que vous voyez).
    CO-CPU a trouv‚ une erreur : toutes les instructions contenant
    (IX+zz) avec un d‚placement n‚gatif ‚taient fausses ! J'avais oubli‚
    de prendre en compte les octets "sign‚s".
  
  - v2.2 (30.8.1992 - 3.9.1992) :
    Nouvelle routine pour le clavier.
    Palette fix‚e, sans clignotement (attente pour HSYNC).
    "Need-ROM" avec COPYMATE introduite.
  
  - v2.3 (15.9.1992 - 19.9.1992) :
    Emulation du FDC pour "charger/sauver secteur". 
    CO-CPU a trouv‚ une erreur : LD XH,... ‚tait LD H,...
  
  - v2.3b (19.9.1992) :
    Fait le rafraŒchissement de l'image seulement si l'‚cran est en RAM,
    blocs 0..3 (et non 4..7).
    Fait de "port FCxx" un alias pour FBxx (pour CP/M Plus). 
    A ce moment, je ne savais pas que OUTI... pr‚d‚cr‚mentait le registre B.
  
  - v2.4 test (25.10.1992) :
    Emulation du registre seulement si on le d‚sire (avec "DEFINE").
    A pr‚sent, rafraŒchissement de l'‚cran … chaque interruption "n", et non 
    pour chaque octet ‚crit en m‚moire (toujours trŠs lent, parce que tout 
    est ‚crit en C).
    Nouvelle gestion de la m‚moire, avec les blocs align‚s sur les segments.
  
  - v2.5 test (31.10.1992) :
    Chang‚ la gestion de la m‚moire. Scolling "hard" et diff‚rentes tailles 
    d'‚cran possibles.
  
  - v2.6 test (5.11.1992) :
    Nouveau gestionnaire du clavier, de Arnt Gulbrandsen : toutes les
    combinaisons de touches possibles. 
    RafraŒchissement de l'‚cran en assembleur.
  
  - v2.7 test :
    Essay‚, sans succŠs, d'inclure l'‚mulation rapide du Z80 due … Juergen 
    Weber.
  
  - v2.8 :
    RafraŒchissement de l'‚cran am‚lior‚ : seules les zones modifi‚es en 
    m‚moire-‚cran sont modifi‚es … l'‚cran. 
  
  - v2.9 :
    Utilisation du timer du PC pour g‚n‚rer les interruptions sur 300 Hertz. 
    L'‚mulation rapide fonctionne seulement si on n'a besoin d'aucune ROM
    (commutation de banques).

  CPCEMU (un CPC, … pr‚sent)
  --------------------------
  - v0.2 (23.12.1992), succ‚dant … Z80EMU v2.9 :
    AprŠs presque quatre heures d'analyse avec Turbo Debugger, j'ai trouv‚ 
    l'erreur qui plantait l'‚mulation rapide : PUSH ES au lieu de PUSH DS.
  
  - v0.3 (28.12.1992 - 29.12.1992) :
    Positionn‚ le drapeau N pour INI, OUTI. 
    CPI en ‚mulation rapide positionnait mal les drapeaux. 
    RL (HL) utilisait le segment de lecture (dans DS) au lieu du segment 
    d'‚criture (dans ES). 
    LD A,R produit … pr‚sent des nombres al‚atoires.
    Implant‚ toutes les routines-cassette (mais CASSETTE IN CHAR est fausse).
  
  - v0.4 (1.1.1993) :
    IN A,(n) : A sur les bits b8..b15 (au lieu de B).
    Configuration de la RAM 0xC3 : corrig‚e vers 0,3,2,7 (pour CP/M Plus). 
    KC-Compact (un compatible CPC de l'ancienne Allemagne de l'Est) utilise
    le port EE00 - EE3D, mais pour quoi faire ?
  
  - v0.5 (28.1.1993 - 8.2.1993) :
    INIR,... : l'incr‚mentation du registre R d‚pend de B, pas de BC. 
    CASSETTE IN CHAR corrig‚e ("patch" d‚fectueux pour CPC 6128).
  
  - v0.6 (23.3.1993 - 24.5.1993) :
    Quelqu'un me fait savoir que les instructions OUTI pr‚d‚cr‚mentent 
    le registre B !
    Compilation des parties en C vers le code 386 (avec Borland C++ v3.1). 
    Les images de disquettes ont le suffixe "DSK". 
    CPCREAD.PAS corrig‚ (tˆte non initialis‚e avec 0) et renomm‚ CPCREAD.C.
    Adressage de port du PIO am‚lior‚ (le microprocesseur peut lire mˆme si
    le port est programm‚ en sortie, etc..)
  
  - v0.7 (26.7.1993 - 29.8.1993) (pas sortie) :
    Source totalement nouvelle, modulaire, etc.  
    Fichier de configuration : davantage de ROMs possible. 
    Chang‚ le nom de la firme de "Schneider" en "Amstrad" (on peut choisir
    entre sept noms).
    Enlev‚ l'erreur de commutation de banques-RAM.
    Nouvelle documentation en allemand.
  
  - v0.8 (30.8.1993 - 9.9.1993) :
    Emulation lente : instructions de parit‚ am‚lior‚es en utilisant une 
    table, pas seulement pour la parit‚.
    Z80 : ED xx avec "xx" ill‚gal est ignor‚. 
    Nouvelle documentation en anglais.
  
  - v0.8a (10.9.1993 - 15.9.1993) :
    Erreur fatale dans l'‚mulation rapide : si une instruction DD CB xx 
    est ex‚cut‚e et qu'une interruption survient, l'instruction est ignor‚e !
  
  - v0.8b (16.9.1993 - 21.9.1993) :
    Implant‚ une "vraie" VSYNC, si VSYNC_CT = 0. 
    Corrig‚ le problŠme du port A du PIO : OUT &F400,xx avec le Port A en
    mode entr‚e ‚tait ignor‚. 
    Nouvelle routine pour le joystick par Martin Zacho.
  
  - v0.8c (22.9.1993 - 13.12.1993) :
    V‚rifi‚ la documentation avec "ispell". 
    L'‚mulation ne d‚marre pas si "USE_JOYSTICK=YES" et si un joystick 
    n'‚tait pas pr‚sent (PUSH AX … la mauvaise position). 
    Emulation lente : DAA corrig‚e (les parenthŠses manquaient depuis la
    version v0.8). 
    Mauvaise modification dans la routine d'interruption pour le CPC 664. 
    Remplacer EI par NOP ‚vite le problŠme avec EI (active les interruptions 
    une instruction plus tard). Maintenant corrig‚ pour tous les CPCs.
  
  - v0.8d (14.12.1993 - 29.12.1993) :
    Emulation du FDC r‚‚crite pour les formats double face. 
    CPCTRANS remplace l'ancien CPCREAD, et permet de lire les disquettes
    Vortex aprŠs que vous ayez install‚ 720KB.COM. En plus de cela, vous
    pouvez r‚‚crire les images de disquettes sur la disquette.
    Nouvelle s‚lection de fichiers avec la touche F3. 
    Introduit quelques aliases d'adresses de port, par exemple &7000 - &7f00 
    pour adresser le Gate Array, &0c00, &1c00, &2c00, &3c00, &bc00 pour le
    CRTC.    
    Activ‚ l'‚mulation du registre R.
  
  - v0.9 alpha (30.12.1993 - 20.1.1994) :
    M‚moire EMS possible avec une configuration sp‚ciale EMS/UMB.
    Nombres binaires dans le fichier de configuration. 
    Corrig‚ l'adressage de la commutation des banques de RAM : l'‚mulateur
    acceptait &d0-&ff comme &c0-&c7. 
    A pr‚sent, jusqu'… 576 K de RAM avec EMS.
  
  - v0.9b (21.1.1994 - 31.1.1994) :
    Utilisation de EMS simplifi‚e avec EMS ‚tendue (ou LIM EMS 4.0), avec 
    plus de 4 pages physiques EMS. 
    S‚lection de fichiers ajout‚e aux options "l" (menu Debug) et RUN".
  
  - v0.9c (1.2.1994 - 29.4.1994) :
    Du son, mais horrible, sur le haut-parleur du PC (d‚sactiv‚ avec F4).
    S‚lection de fichiers aussi avec l'option "v" du menu Debug.
    Documentation anglaise corrig‚e.
    Son avec la carte Soundblaster (peut ˆtre am‚lior‚).
    Nouveau CPCTRANS avec paramŠtres sur la ligne de commande. 
    AccŠs direct au FDC.
    Adaptateur parallŠle test‚, et le logiciel qui va avec, am‚lior‚.
    Emulation rapide du Z80 : INC (HL), DEC (HL), INC (IX+n), DEC (IX+n) 
    pour la RAM au-dessous de la ROM, corrig‚e. 
    <PgPr‚c>,<PgSuiv> d‚placent les ‚crans agrandis.
    Affichage de parties d'overscan.
    Maintenant possible : snapshots de 64 K.
  
  - v0.9d (30.4.1994 - 12.5.1994) :
    Les interruptions durant un DI ne sont pas oubli‚es, et elles ne sont
    plus activ‚es directement aprŠs une instruction EI. 
    Nouvelles fonctions de couleurs : … pr‚sent sans "neige" sous OS/2. 
    Emulation rapide du Z80 : code acc‚l‚r‚.
  
  - v1.0 (13.5.1994 - 20.5.1994) :
    Partie ‚cran am‚lior‚e : diff‚rentes tailles de caractŠres, de 1 … 8. 
    S‚lection de fichiers ajout‚e … SAVE" ; ajout‚ une s‚lection rapide en 
    tapant une lettre. 
    Am‚lior‚ CPCTRANS, avec une option de v‚rification. 
    Nouveau menu de r‚glages si on appuie sur F7. Ainsi, on peut d‚sactiver
    le papillonnement des couleurs.
  
  - v1.0a (21.5.1994 - 9.6.1994) :
    Am‚lior‚ le menu des r‚glages avec entr‚e directe ou par les flŠches
    du curseur. Ajout‚ une possibilit‚ de clavier allemand, et une option
    simple d‚lai.
    Corrig‚ l'affichage d'‚crans de taille plus petite (sans parties d'‚crans 
    plus grands).
    Am‚lior‚ en partie l'‚mulation rapide du Z80 : RRA,RLA et autres
    instructions CB xx. 
    Ajout‚ davantage d'instructions ill‚gales (ED xx) : LD D,XH et LD YL,YH 
    manquaient ! 
    Corrig‚ CPDR, CPIR avec BC=0 (0 signifiant 65536 sur un Z80, mais bien 0
    pour le pr‚fixe REPE du 80x86 !). 
    Drapeaux DAA corrig‚s. 
    Nouveau logiciel pour l'adaptateur parallŠle : … pr‚sent, il est possible 
    de transmettre vers le CPC. 
    Merci … Bernd Schmidt pour avoir attir‚ mon attention sur le fait qu'une
    interruption ajoute 1 au registre R. Avec son aide, l'‚mulation du port C 
    du PIO a ‚t‚ am‚lior‚e.

  - v1.1a (10.6.1994 - ) :
    CPCEMU entre dans une nouvelle Šre : Amstrad a autoris‚ l'utilisation
    de ses ROMs !
    Changement dans le fichier de configuration : ROM_BLOCKS -> ROM_BLOCK, 
    DISC_BYPASS-> DISABLE_ADOS, plus d'espace n‚cessaire pour s‚parer "=". 
    Changement dans la partie son et la partie graphique : taille verticale
    par VGA-CRTC. 
    Le calibrage du joystick se trouve … pr‚sent dans le menu des r‚glages.
    Am‚lioration des routines de sauvegarde.
    Partie FDC am‚lior‚e : maintenant, vous pouvez employer COPYMATE.
    Insertion sans erreur de lecture avec les disquettes au format autre 
    que DATA (sans recherche de la piste 0).
    Un autre d‚lai d'attente dans CPCTRANS : j'espŠre que vous n'aurez plus
    besoin du commutateur turbo de votre PC. Formatage d'images de disquettes.
    Corrig‚ une nouvelle fois le port C du PIO : il est effac‚ aprŠs un
    "OUT &7f00,n".                                            
    Changements importants dans le fichier de configuration : … pr‚sent,
    il comporte une configuration conditionnelle (#IFCPC, #ENDIF). Quelques 
    mots-cl‚s chang‚s (VSYNC_CT -> /, DISC_PATH -> /, SNAP_PATH -> SNAPSHOT, 
    DRV_A -> DRIVE_A, DRV_B -> DRIVE_B). 
    Chargement de programmes depuis une archive ZIP, n‚cessitant PKUNZIP.

  - v1.1b (17.8.1994 - 2.9.1994) :
    Multi-mode introduit, ce qui signifie diff‚rents modes le mˆme ‚cran. 
    Le rafraŒchissement de l'‚cran est partitionn‚ jusqu'… six zones, et
    chacune est rafraŒchie quand une interruption survient (peut ˆtre 
    am‚lior‚).
    Possible maintenant : snapshots de 128K, ‚tendus pour multi-mode. 
    CPCPARA am‚lior‚ : on peut maintenant transf‚rer les fichiers binaires
    avec un en-tˆte. 
    D‚tection du CPC 6128 Plus incluse.
    Davantage d'aliases de ports.

  - v1.2 (3.9.1994 - ) :
    Principalement, quelques changements dans le menu d'aide.

  - v1.2a (27.9.1994 - ) : ‚tait disponible dans UPD12A.ZIP :
    S‚lection de fichiers : seuls les lecteurs disponibles ‚taient affich‚s.
    Et : avec le pilote ANSI.SYS, le fond du texte ‚tait noir.
    TMP_PATH : vous pouvez sp‚cifier un lecteur, sans chemin.
    DOS Shell (F7) : CPCEMU est d'abord permut‚ vers XMS, EMS ou le disque 
    dur, ainsi vous disposez de plus de m‚moire dans le shell du DOS
    (cette particularit‚ vient du programme du domaine public SWAP300.ZIP, 
    de Marty Del Vecchio).
    Le rafraŒchissement de l'‚cran pouvait ˆtre corrompu, si la largeur de
    l'‚cran n'‚tait pas divisible par 4.
    Une autre version de CPCEMU est encore plus rapide : C2.EXE. Elle
    utilise une gestion diff‚rente de la m‚moire, avec deux frames EMS de
    64 K chacune. Mais elle ne tourne qu'avec EMS.
    Les ROMs sont aussi "(c) by Locomotive Software", pas seulement Amstrad.

  - v1.2b (  ) :
    Il n'y avait pas de son st‚r‚o sur une carte Soundblaster Pro, mˆme si 
    la configuration l'affirmait. Si aucune carte Soundblaster n'‚tait 
    trouv‚e, il n'y avait pas de son du tout jusqu'… ce que vous utilisiez 
    USE_SB=NO.
    Z80 rapide : remplac‚ l'accŠs … un mot par l'accŠs … un octet. C'est 
    un peu plus lent, mais on ne plante plus l'ordinateur chaque fois qu'on 
    accŠde … un mot … l'adresse 0xffff. Egalement, problŠme corrig‚ avec 
    "EI HALT DI" : l'adresse o— HALT ‚tait "PUSH‚" au lieu de celle de DI.
    Corrig‚ la documentation anglaise.
    Am‚lior‚ CPCPARA et PCPARA v1.1 : test de l'adaptateur, vitesse plus 
    grande de CPC vers PC (approximativement 1600 octets par seconde lors 
    de la lecture sur la disquette, avec un 486/66), statistiques. Ainsi, 
    vous pouvez transf‚rer 16 K en 10 secondes ! Merci … Klaus Weber pour 
    m'avoir fait remarquer qu'avant, c'‚tait beaucoup trop long. Dans PCPARA, 
    il y avait un DELAY(1) aprŠs chaque quartet, pour attendre une 
    milliseconde, et ce n'‚tait pas n‚cessaire.

  - v1.2c (28.2.1995 - ) : ‚tait disponible dans UPD12C.ZIP :
    Parties de CPCEMU r‚‚crites en C++. Cela permet des fonctions "inline" 
    et des interfaces am‚lior‚es, pour garder un meilleur aper‡u sur le
    projet.
                      - v1.2d (16.3.1995 - ), r‚serv‚e aux correspondants :
    Z80 rapide : changements internes, invisibles … l'utilisateur, sauf une 
    petite am‚lioration de la vitesse. Toutes les donn‚es sont gard‚es dans
    le segment de donn‚es, … pr‚sent, au lieu du segment de code.
    Introduit finalement le mode absolument n‚cessaire pour les ordinateurs
    rapides : le "realtime CPC" (vitesse r‚elle du CPC, … s‚lectionner dans
    le menu des r‚glages ou avec REALTIME=YES).

  - v1.3 (16.4.1995 - ) :
    Base de donn‚es de POKEs pour les jeux.
    Documentation sommaire en fran‡ais.
    Commandes pour le FDC (reformater des images de disquettes … la mˆme
    taille).
    Nouveau systŠme de menu acceptant la souris (MOUSE=YES).
    Insertion d'images de disquettes avec l'attribut DOS "read-only", et qui 
    conservent cet attribut.
    Menu Debug : ajout‚ l'option "find".

  - v1.3a (30.4.1995 - )        (disponible sous le nom UPD13A.ZIP)
    Avec la version 1.3, Boulder Dash ne fonctionnait plus, mˆme s'il le
    faisait avec la version 1.2
    Le mode d'interruption 2 du Z80 n'‚tait pas ‚mul‚ correctement.
    (PUSH/POP oubli‚). L'‚mulation lente Z80 avait un bug similaire.
    CPCTRANS: Option -f 6 disponible.

  - v1.3b (20.5.1995 - )        (disponible sous le nom UPD13B.ZIP)
    Certains utilisateurs ont mentionn‚ qu'il n'y avait plus de son
    soundblaster depuis la version 1.3

  - v1.4 (v1.3c)
    Support GUS par Ulrich Doewich; systŠme d'aide en ligne;
    support pour 2 joysticks, modes graphiques VESA pour de meilleures
    r‚solutions;
    menu de configuration et fichier de configuration am‚lior‚s;
    configuration du chargement et de la sauvegarde ajout‚ au menu de
    configuration;
    routines du FDC (contr“leur disque) am‚lior‚es pour des formats non
    standard
    nouveau SNA2GIF (v1.1)





  CPCEMU est ‚crit en C++ et en assembleur, … l'aide de Borland C 3.1, 
  optimisation 386 et Turbo Assembler. Pour le d‚boguage, Turbo Debugger
  a ‚t‚ employ‚.
  Les couleurs ont ‚t‚ compos‚es avec le programme VGAMETER de J. Stephen
  Shattuck, Jr., le CPC ‚tant connect‚ … un t‚l‚viseur avec un adaptateur 
  Scart.



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



(A partir d'ici, vous pouvez reprendre votre lecture sans danger.)



Appendice
ððððððððð



A.1  Glossaire
ðððððððððððððð

Ici, quelques termes relatifs aux ordinateurs sont expliqu‚s. Je ne pr‚tends 
pas donner des d‚finitions complŠtes ou pr‚cises. Les termes sont d‚crits du 
point de vue du CPC.
Les r‚f‚rences sont marqu‚es d'un "¯".


386/33 (AT 386/33)
  Abr‚viation pour ¯PC AT avec processeur 80386, cadenc‚ … 33 MHz.
  A cause d'une vitesse d'horloge "‚lev‚e", ce devrait ˆtre un 386DX, 
  avec un vrai bus de donn‚es sur 32 bits, et non un 386SX bon march‚
  avec un bus de donn‚es de 16 bits.

Adresse de Base
  C'est celle que vous devez sp‚cifier dans de nombreux r‚glages si vous
  poss‚dez une carte-son.
  CPCEMU cherchera une variable d'environnement qui contienne ces r‚glages.

AMSDOS (Amstrad DOS)
  ¯DOS d‚velopp‚ par ¯Amstrad, pour les ordinateurs ¯CPC.

Amstrad
  Constructeur britannique d'ordinateurs, qui a con‡u les ¯CPCs.

Archive
  Stockage de fichiers.
  Ou : un fichier qui en contient plusieurs autres.
  Dans les archives ¯ZIP, les fichiers sont compress‚s avant d'y ˆtre inclus.

ASCII (Abr‚viation de : American Standard Code of Information Interchange)
  Sur un ordinateur, tous les caractŠres, y compris les chiffres, sont 
  repr‚sent‚s de fa‡on interne sous forme de nombres.
  Beaucoup d'ordinateurs emploient le code ASCII, avec la lettre "A" cod‚e 65. 
  ¯PC et ¯CPC ‚galement emploient l'ASCII. Avec le Basic ¯Locomotive, vous
  pouvez sauvegarder un fichier Basic en ASCII, en tapant SAVE"<nom>",A.

BASIC (Abr‚viation de : Beginners All purpose Symbolic Instruction Code)
  Langage de programmation largement utilis‚ sur les ordinateurs "familiaux"
  et personnels. Facile … apprendre. A l'origine, chaque ordinateur avait
  son propre langage Basic.
  Les Basics modernes, comme le QuickBasic, permettent la programmation 
  structur‚e, de sorte que vous n'ˆtes plus oblig‚ de fabriquer des 
  "programmes spaghetti".
  Le ¯CPC a aussi son propre Basic, le Basic Locomotive, du nom de la firme 
  qui l'a cr‚‚.

BoŒte de cavaliers (Jumper box)
  Un boŒtier adaptateur destin‚ … r‚aliser toute connexion entre deux
  connecteurs, en employant de courts fils m‚talliques qui doivent ˆtre 
  soud‚s. Voir aussi ¯Wiring Box.

BoŒte OS/2 DOS
  Une fenˆtre sous le systŠme d'exploitation pour 32 bits d'IBM nomm‚ OS/2. 
  Est capable de faire fonctionner les programmes DOS. 
  La boŒte de compatibilit‚ avec DOS.

C64:
  Ordinateur familial de la firme Commodore, avec 64 K de ¯RAM, trŠs
  populaire. En raison de la quantit‚ prodigieuse de programmes qu'il
  a suscit‚e, il est rest‚ l'ordinateur de jeu par excellence, et durant
  des ann‚es. Plus tard, il a ‚t‚ rel‚gu‚ par l'Amiga de Commodore, mais, 
  en d‚pit de sa technique d‚pass‚e, il a surv‚cu longtemps.

Chemin de recherche du DOS
  Le DOS utilise un chemin au long des sous-r‚pertoires, pour trouver
  un fichier. Ce chemin est plac‚ dans la variable d'environnement "PATH".

Circuits hardware
  Composants … l'int‚rieur de l'ordinateur, comme le processeur, les
  circuits de m‚moire, le contr“leur de disquettes, etc.
  Le CPC contient le processeur Z80, le Gate Array, le CRTC 6845 pour
  adresser la m‚moire de l'‚cran, le PIO 8255 pour les entr‚es/sorties,
  le circuit sonore PSG AY 3-8912, le contr“leur de disquettes FDC 765,
  etc.

Compilateur Turbo Pascal
  Le Pascal est un langage de programmation de haut niveau qui permet
  la programmation structur‚e. Aujourd'hui utilis‚ dans beaucoup d'‚coles.
  Lorsqu'on parle de "Pascal", on entend le plus souvent Turbo Pascal, mˆme
  si ce terme d‚signe seulement le Pascal ‚tendu de la firme Borland. 
  Le compilateur Turbo Pascal est particuliŠrement rapide, car il compile
  le programme en une seule passe.

Configuration
  Ici : configurer un programme pour les besoins de l'utilisateur.
  Vous pouvez le faire dans le menu des r‚glages ou dans le fichier de
  configuration.

CPC (Abr‚viation de : Colour Personal Computer)
  D‚velopp‚ par la firme ¯Amstrad, ‚tait disponible dans diff‚rents modŠles. 
  Relisez l'introduction si VRAIMENT vous n'avez pas encore compris.

CP/M Plus (Abr‚viation de : Control Program for Microcomputers)
  SystŠme d'exploitation de la firme Digital Research, consacr‚ aux
  micro-ordinateurs 8 bits. Largement utilis‚ jusqu'… ce qu'IBM d‚cide
  d'utiliser MS-DOS pour ses PCs.
  CP/M Plus (CP/M 3.0) ‚tait le successeur de CP/M 2.2, et fut inclus 
  sur les disquettes fournies avec le ¯CPC 6128.

CTRL/SHIFT/ESC (control/shift/escape)
  Combinaison de trois touches permettant le reset sur un ¯CPC. Il ‚quivaut
  … "CTRL/ALT/Del" sur un PC. Certains programmes bloquent un tel reset,
  de sorte que vous devez ‚teindre l'ordinateur ou utiliser le bouton de 
  reset. Les CPCs n'avaient aucun bouton de reset, mais il ‚tait facile
  d'en construire un.
  Dans CPCEMU, la touche de fonction F8 remplit cet office.

Curseur
  CaractŠre qui montre, … l'‚cran, la position courante d'‚criture.
  Sur le clavier, des touches fl‚ch‚es servent … d‚placer le curseur.

D‚finitions de formats
  D‚finitions de formats de disquettes.

D-Sub
  Connecteurs de forme sp‚ciale.

Dk'tronics
  Firme britannique qui offrait des extensions mat‚rielles pour le ¯CPC, 
  notamment des extensions de m‚moire.

DMA (Abr‚viation de : Direct Memory Access)
  AccŠs direct de l'ordinateur … la m‚moire, sans passer par le 
  microprocesseur. Utilis‚ par les lecteurs de disquettes, mais, par
  mesure d'‚conomie, non implant‚ sur les CPCs (sauf le dernier modŠle,
  le CPC+).
  La carte Soundblaster peut aussi utiliser un canal DMA, par lequel passe
  le son num‚rique.
  
DOS (Abr‚viation de : Disk Operating System)
  SystŠme d'exploitation de disquettes, par exemple AMSDOS, DRDOS, MS-DOS.
  Est aujourd'hui synonyme de MS-DOS.

DRDOS
  Un ¯DOS compatible avec MS-DOS, vendu par la firme Digital Research.

E-Mail (Abr‚viation de : Electronic Mail)
  Utilisation d'un ordinateur comme boŒte aux lettres.

EMM (Abr‚viation de : Expanded Memory Manager)
  Equivaut … ¯EMS.

EMS (Abr‚viation de : Expanded Memory System)
  Extension de m‚moire pour le ¯PC, destin‚e … outrepasser la limite
  des 640 K. Au moyen de la technique de commutation de banques, des
  pages suppl‚mentaires de m‚moire sont m‚nag‚es dans une fenˆtre EMS.
  Ce systŠme a ‚t‚ d‚velopp‚ par Lotus, Intel et Microsoft, aussi est-il
  appel‚ LIM-EMS.
  Il existe de l'EMS mat‚rielle, ‚mul‚e ou simul‚e.
  Des cartes de m‚moire sp‚ciales fournissent de l'EMS mat‚rielle,
  utilis‚e principalement sur les anciens PCs XT. Sur un PC AT avec 
  au moins un processeur 80386, il est possible d'avoir de l'EMS ‚mul‚e 
  en utilisant le m‚canisme des pages pour la commutation de banques.
  Ce type d'EMS est fournie par EMM386.EXE, et devrait ˆtre employ‚ 
  pour acc‚l‚rer CPCEMU.
  L'EMS simul‚e est trop lente, elle doit copier les pages de m‚moire.

Emulateur
  Le systŠme qui en ‚mule un autre.

Emuler
  Imiter un systŠme (par mat‚riel ou par logiciel) par un autre.
  Le systŠme qui imite obtient les mˆmes r‚sultats, … partir des mˆmes 
  donn‚es, que le systŠme imit‚.
  CPCEMU ‚mule un ¯CPC sur un ¯PC.

Fichier
  Collection de donn‚es. Sur le ¯CPC, il existe des fichiers de diff‚rents 
  types, par exemple les fichiers Basic (des programmes Basic sauvegard‚s
  avec l'extension BAS), des fichiers ASCII contenant des textes, et
  des fichiers binaires contenant des octets et signal‚s par une extension 
  BIN. Les fichiers binaires peuvent contenir des programmes en langage 
  machine ou des donn‚es.
  
Fichier Batch
  Contient des instructions que normalement vous tapez sur le clavier de
  votre ordinateur. Si vous appelez un tel fichier, les instructions sont
  ex‚cut‚es l'une aprŠs l'autre.

Fr‚quence d'horloge
  Le processeur est connect‚ … une "horloge", qui d‚termine sa vitesse
  de fa‡on significative. Aujourd'hui, les processeurs 486DX2/66 sont
  cadenc‚s de maniŠre interne … 66 MHz.
  Le Z80A du ¯CPC a une vitesse de 4 MHz, mais il tourne en r‚alit‚ … 3,3 MHz
  … cause des attentes qu'il subit p‚riodiquement pour le rafraŒchissement
  de l'‚cran.

FTP (Abr‚viation de : File Transfer Protocol)
  Un protocole de transfert de fichiers sur les r‚seaux d'ordinateurs.
  Le programme qui fait tourner ce protocole est ‚galement appel‚ "FTP".

Gestionnaire de clavier
  Un programme appel‚ chaque fois que le clavier g‚nŠre une interruption. 
  Il se sert du num‚ro de la touche appuy‚e ou relƒch‚e.

Hardware
  Mat‚riel, en fran‡ais. Par exemple, les p‚riph‚riques comme l'imprimante
  ou le moniteur. Aussi interne, comme le processeur et les autres circuits.
  
Image de ROM
  Fichier renfermant le contenu d'une ¯ROM. Si vous lisez une ROM et ‚crivez
  les octets trouv‚s dans un fichier, vous aurez une image de ROM.

Initialiser
  Remplir la m‚moire avec des valeurs particuliŠres, par exemple, pour
  d‚finir les variables.

Instructions du Z80
  Instruction "machine" que le Z80 comprend.
  Elles sont cod‚es sous forme de nombres, aussi, pour s'en souvenir plus
  facilement, on a introduit des "mn‚moniques", qui seront traduits lors
  de l'assemblage (et par un "assembleur") en code binaire.
  Ainsi, l'instruction "LD A,B" charge ("LoaD") le registre A avec le contenu
  du registre B, et se traduit en code binaire par le nombre 0x78.

Interface
  Connexion de l'ordinateur … un de ses p‚riph‚riques, ou d'un programme … 
  un autre. Il y a donc des interfaces mat‚rielles et logicielles. 
  Ce qu'on "interface Centronics" est une interface parallŠle, qui
  transmet les bits d'un octet en parallŠle, c'est-…-dire tous en mˆme temps.
  Avec les interfaces "s‚rie", il est n‚cessaire de transf‚rer les bits
  les uns aprŠs les autres.
  
Internet
  Un "Internet" est compos‚ de plusieurs sous-r‚seaux d'ordinateurs.
  Ici : *Le* Internet, un r‚seau mondial de communication par ordinateurs.

Interruption
  Si le processeur re‡oit un signal avec un priorit‚ sup‚rieure, il
  interrompt le programme en cours, et appelle un gestionnaire sp‚cial
  d'interruption. Lorsque l'interruption est termin‚e, il revient au
  programme interrompu.
  Sur un PC, il y a diff‚rents signaux d'interruptions, par exemple,  
  lorsque vous appuyez sur une touche, quand une minuterie arrive …
  terme, quand une donn‚e arrive par l'interface s‚rie, quand on d‚place
  la souris, quand la carte-son a termin‚ d'‚mettre son dernier ‚chantillon 
  et a besoin d'autres donn‚es, etc.
  Le Z80 dans le CPC est interrompu 300 fois par seconde.

Locomotive
  Firme britannique qui a ‚crit le Basic pour les ¯CPCs.

Liste de correspondants
  Un service que j'offre, et par lequel j'ajoute votre adresse ‚lectronique 
  … ma liste de correspondants. Ainsi, vous serez inform‚ des derniŠres
  nouvelles concernant CPCEMU.

Manuel du firmware du CPC
  Un livre sur le ¯CPC qui d‚crit sp‚cialement le systŠme d'exploitation du
  CPC.

Microcanal
  Architecture sp‚ciale de bus.

MS-DOS (Abr‚viation de : Microsoft Disk Operating System)
  SystŠme d'exploitation d‚velopp‚ par la firme Microsoft pour les
  processeurs de 16 bits (8086). Le systŠme le plus employ‚ sur PC.
  Toujours en usage sur les processeurs de 32 bits 80386 et 80486.

Multiface II (Abr‚viation de : Multipurpose Interface)
  Une extension mat‚rielle pour le CPC. Permet d'interrompre tout programme 
  … tout moment, pour l'analyser ou le sauvegarder en l'‚tat.
  D‚velopp‚e par la firme britannique Romantic Robot.

Multi-Mode
  Technique de programmation, permettant d'avoir diff‚rents modes d'‚cran
  simultan‚ment affich‚s. Le mode d'‚cran est chang‚ plus d'une fois durant
  le rafraŒchissement de l'‚cran. Sur le CPC, on obtient des zones avec
  une haute r‚solution et peu de couleurs, et de basse r‚solution avec
  beaucoup de couleurs.

Newsgroup CPC
  Un newsgroup (forum ou conf‚rence ‚lectronique) r‚serv‚ au ¯CPC. 
  Il s'appelle "comp.os.amstrad.8bit" et a ‚t‚ cr‚‚ en ao–t 1994.

Num‚ro d'interruption IRQ (IRQ, abr‚viation de : Interrupt Request)
  Sur un PC, des interruptions diff‚rentes ont des num‚ros diff‚rents.
  Par exemple, l'interruption-clavier a le num‚ro 9, l'interruption-timer
  a le num‚ro 8. Si vous appuyez sur une touche, le clavier envoie une
  "requˆte d'interruption" au processeur, qui en est ainsi inform‚.

OS (Abr‚viation de : Operating System, systŠme d'exploitation)
  Un programme n‚cessaire … l'ordinateur. Il fournit des fonctions de
  base aux programmes d'application. Les nouveaux systŠmes d'exploitation
  accomplissent des tƒches compliqu‚es, tels les programmes d'agenda
  dans les systŠmes multitƒche, etc.

Overscan
  Le bord qui entoure la zone de l'‚cran o— l'on peut ‚crire.
  Sur un PC, il est trŠs petit, mais on peut changer sa couleur, par
  exemple sous CPCEMU avec "BORDER 10". Sur le CPC, l'overscan est bien
  plus large, aussi les programmeurs ont-ils cherch‚ des possibilit‚s pour
  y ‚crire. Avec un truc de programmation, il est en effet possible 
  d'‚crire sur tout l'‚cran.
  Cette technique de programmation est aussi appell‚e "overscan".

ParamŠtre
  Variable poss‚dant une signification. Le comportement du programme est 
  en relation avec elle.

ParamŠtres de la ligne de commande
  ParamŠtres que vous donnez sur la ligne de commande, aprŠs le nom du
  programme que vous appelez.

PC (Abr‚viation de : Personal Computer, ordinateur personnel)
  Ordinateur avec un microprocesseur comme processeur (ou CPU : Central 
  Processing Unit). Aujourd'hui synonyme du PC d'IBM, avec un processeur
  8086 ou 8088.
  Le PC AT (Advanced Technology) est un ordinateur avec un 80286, un 80386 
  ou un 80486.

PEEKs et POKEs
  Instructions ¯Basic modifiant directement la m‚moire.
  "PEEK(<adresse>)" est utilis‚ pour lire un octet en m‚moire,
  "POKE <adresse>,<nombre>" modifie la m‚moire. Les programmes avec
  de nombreux PEEKs et POKEs sont difficiles … comprendre, mais parfois
  il est n‚cessaire d'outrepasser les limites du Basic, sp‚cialement si
  celui-ci a peu d'instructions, comme celui du Commodore 64.

PKUNZIP
  Programme de PK-Software servant … d‚compacter les fichiers ¯ZIP.

Port-imprimante du CPC
  Interface Centronics ¯CPC, pour connecter, devinez quoi ?
  Malheureusement, les concepteurs du CPC ont ‚t‚ trop ‚conomes : elle a
  seulement 7 bits.
  Avec un bout de fil ‚lectrique, il ‚tait possible de l'‚tendre … 8. 
  Pour cela, le port-cassette ‚tait mis hors-circuit : on n'en a pas 
  besoin, de toute fa‡on, lorsqu'on imprime.

RAM (Abr‚viation de : Random Access Memory).
  Circuit de m‚moire "vive" : la m‚moire de l'ordinateur, que l'on peut lire
  et o— l'on peut ‚crire.
  Les CPCs ont 64K de RAM (Kilo-octets) ou 128K. Avec des extensions
  mat‚rielles, ils pouvaient atteindre 576K de RAM.

Repr‚sentations des nombres
  Selon la base choisie, il y a plusieurs repr‚sentations possibles pour un
  mˆme nombre.
  La plus connue est la repr‚sentation d‚cimale, de base 10, avec les 
  chiffres de 0 … 9.
  Les ordinateurs utilisent la repr‚sentation binaire (base 2), avec les 
  chiffres 0 et 1.
  Les programmeurs appr‚cient la repr‚sentation hexad‚cimale, … base 16, 
  parce que 16 est une puissance de 2 (2 puissance 4). Ainsi, les
  repr‚sentations binaire-hexa peuvent ˆtre ais‚ment converties entre
  elles. En outre, un octet ne n‚cessite que 2 chiffres "hexad‚cimaux"
  (0 … 9 et A … F) dans la notation hexad‚cimale.

ROM (Abr‚viation de : Read-Only-Memory).
  Circuit de m‚moire, mais qu'on ne peut que lire sans rien y changer. 
  Disponible directement aprŠs avoir allum‚ l'ordinateur.
  Les CPCs ont 16K de ROM pour le systŠme d'exploitation, 16K de ROM pour 
  l'interpr‚teur Basic, et 16K de ROM pour l'AMSDOS, dont seuls 7K sont
  utilis‚s (les 9K restant sont remplis avec des octets de valeur hexa "FF").

RS-232
  Interface s‚rie servant … connecter des moniteurs ou des imprimantes … un
  ordinateur (RS 232 C).

Schneider
  Firme allemande qui vendait les CPCs en Allemagne.

Scrolling hardware
  D‚placement de l'‚cran sans que le processeur ait … copier des parties
  de m‚moire d'un endroit … un autre. L…, le processeur se contente de
  modifier l'adresse de base de l'‚cran, le reste est fait par un circuit
  mat‚riel.

Setup (r‚glages)
  Changement des paramŠtres d'un programme, pour qu'il se comporte 
  diff‚remment. On peut appeler le menu des r‚glages quand on a une
  carte-son, ou quand on utilise un joystick, etc.

SIMTEL
  Importante archive de programmes aux Etats-Unis.
  Le "SimTel Software Repository" est assur‚ par "Coast to Coast
  Telecommunications, Inc." (CCT) sur son ordinateur h“te, sur le r‚seau
  Internet d'adresse "SimTel.Coast.NET". Cette archive est "mirrored" 
  (copi‚e) des deux c“t‚s.  Un site miroir se trouve … l'Universit‚
  d'Oakland, … l'adresse "OAK.Oakland.Edu".

Snapshots
  Un dump de la m‚moire, compl‚t‚ par l'‚tat interne des circuits mat‚riels.
  Il contient un "instantan‚" complet de l'‚tat momentan‚ de l'ordinateur.
  Si le snapshot est recharg‚, l'ordinateur est ainsi remis dans l'‚tat
  d‚crit dans le snapshot.

Software
  Programmes d'un systŠme d'ordinateur.

Soundblaster
  Carte-son de la firme Creative Labs.

Spectrum
  Le Spectrum (il y en a eu plusieurs modŠles) de Sinclair ‚tait un 
  ordinateur familial d‚velopp‚ par la firme Sinclair.

Standard LIM (Abr‚viation de : Lotus Intel Microsoft)
  Extension de m‚moire (¯EMS), d‚velopp‚e par Lotus, Intel et Microsoft.

Utilitaire
  Programme-outil.

VGA (Abr‚viation de : Video Graphics Array)
  Standard graphique sur le PC. SuccŠde … CGA (Colour Graphics Adapter), 
  MCGA (Multi Colour Graphics Adapter) et EGA (Enhanced Graphics Adapter). 
  Etendu … SVGA (Super VGA) avec une r‚solution plus haute.

VGA-BIOS (Abr‚viation de : VGA Basic Input Output Operating System)
  Le systŠme d'exploitation pour les cartes graphiques ¯VGA.

Wiring box
  Un adaptateur permettant de r‚aliser toute connexion entre deux connecteurs 
  avec de courts fils m‚talliques. Au contraire de la boŒte de cavaliers
  ("jumper box"), les fils n'ont pas besoin d'ˆtre soud‚s.

Z80
  Un processeur de 8 bits construit par la firme Zilog. Il est compatible
  avec le 8080 d'Intel, et a ‚t‚ trŠs populaire.
  Sur le ¯CPC, il y avait un Z80A cadenc‚ … 4 MHz.

ZIP
  Un proc‚d‚ sp‚cial de compression de fichiers. Les archives obtenues ont
  l'extension "ZIP".





A.2  Bibliographie
ðððððððððððððððððð


Le manuel du CPC est indispensable aux d‚butants :
- Spital Ivor und Perry, Roland und Poel, William und Lawson,Cliff:
    CPC 6128 Benutzerhandbuch, Schneider Computer Division 1985,
    Originalausgabe (c) 1985 (le mien mentionne 1895 !)
    by AMSOFT, AMSTRAD Consumer Electronics plc and Locomotive
    Software Ltd.

Un excellent listing comment‚ de la ROM, avec les premiers chapitres
fournissant des informations sur le c“t‚ "software" du CPC :
- Janneck, Joern W. und Mossakowski,Till: ROM-Listing CPC 464/664/6128,
    Markt & Technik Verlag 1986

Au contraire : compos‚ sans souci du lecteur, rarement comment‚, abordant 
davantage l'aspect mat‚riel du CPC :
- Brueckmann, Englisch, Gertis: CPC 464 Intern mit kommentiertem
    ROM-Listing, Data Becker 1985

Bon pour apprendre le langage C, avec beaucoup d'exercices :
- Kellay, Al and Pohl, Ira: A Book on C, Second Edition, 1990 by
    Benjamin/Cummings Publishing Company, Inc.

Le livre standard du C++ :
- Stroustrup, Bjarne: The C++ Programming Language, Second Edition,
  Addison-Wesley, 1992

Un autre bon livre sur le C++ :
- Eckel, Bruce: C++ Inside & Out, 1993 by Osborne McGraw-Hill

Suggestions, comment ‚crire un manuel bon et compr‚hensible :
- Boedicker, Dagmar: Handbuch-Knigge, Software Handbuecher schreiben
    und beurteilen. Wissenschaftsverlag 1990





A.3  Index
ðððððððððð

Les nombres suivant les entr‚es indiquent le chapitre o— elles sont d‚crites.

(Incomplet)

#ENDIF 4.2
#IFCPC 4.2
22DISK 5.1.2
Adaptateur, parallŠle 5.2
AMSDOS_DI 4.2
AMSDOS_SPDUP 4.2
BREAK_MASK 4.2
Cassette 3.2.2
COLOUR 4.2
Fichier de configuration 4.2
CPC 1.3
Newsgroup CPC 6.2
CPCEMU.CFG 4.2
CPCPARA.BAS 5.2
CPCREC.BAS 5.2
CPCTRANS.EXE 5.1.1
Menu Debug 7.3
DELAY  4.2
Disquette 3.2.1
Image de Disquette 3.2.1
DRIVE_A 4.2
DRIVE_B 4.2
EMS_EI 4.2
M‚moire EMS 2.3.1
Touches de fonction 3.1
INT_FREQ 4.2
INT_RESUME 4.2
JOY_CALIBRATE 4.2
KBD_LANGUAGE 4.2
Clavier 3.1
Menus 3.2.1
Multi-Mode 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
Menu des r‚glages 4.1
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
Variable d'environnement BLASTER 2.3.2
VSYNC Bit 4.1
