Metropoli BBS
VIEWER: cpcemu_f.txt MODE: TEXT (CP437)
    ▓▓▓▓▓▓▒  ▓▓▓▓▓▓▓▓▒▒      ▓▓▓▓▓▓▒   ▓▓▓▓▓▓▓▓▒  ▓▓▓▓    ▓▓▓▓▒▒  ▓▓▒▒     ▓▓▒▒
  ▓▓▒▒▒▒▒▒   ▓▓▒▒▒▒▒▓▓▒▒   ▓▓▒▒▒▒▒▒    ▓▓▒▒▒▒▒▒   ▓▓▒▓▓  ▓▓▒▓▓▒▒  ▓▓▒▒     ▓▓▒▒
 ▓▓▒▒        ▓▓▒▒   ▓▓▒▒  ▓▓▒▒         ▓▓▒▒▒      ▓▓▒▒ ▓▓▒▒ ▓▓▒▒  ▓▓▒▒     ▓▓▒▒
 ▓▓▒▒        ▓▓▓▓▓▓▓▓▒▒   ▓▓▒▒         ▓▓▓▓▓▓▓▓▒  ▓▓▒▒ ▒▒▒  ▓▓▒▒  ▓▓▒▒     ▓▓▒▒
 ▓▓▒▒        ▓▓▒▒▒▒▒▒     ▓▓▒▒         ▓▓▒▒▒▒▒▒   ▓▓▒▒      ▓▓▒▒  ▓▓▒▒     ▓▓▒▒
  ▓▓▒▒       ▓▓▒▒          ▓▓▒▒        ▓▓▒▒       ▓▓▒▒      ▓▓▒▒  ▓▓▒▒     ▓▓▒▒
    ▓▓▓▓▓▓▒  ▓▓▒▒            ▓▓▓▓▓▓▒   ▓▓▓▓▓▓▓▓▒  ▓▓▒▒      ▓▓▒▒   ▓▓▓▓▓▓▓▓▓▒▒
    ▒▒▒▒▒▒▒  ▒▒▒▒            ▒▒▒▒▒▒▒   ▒▒▒▒▒▒▒▒▒  ▒▒▒▒      ▒▒▒▒   ▒▒▒▒▒▒▒▒▒▒

                                                                      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
[ RETURN TO DIRECTORY ]