▓▓▓▓▓▓▒ ▓▓▓▓▓▓▓▓▒▒ ▓▓▓▓▓▓▒ ▓▓▓▓▓▓▓▓▒ ▓▓▓▓ ▓▓▓▓▒▒ ▓▓▒▒ ▓▓▒▒
▓▓▒▒▒▒▒▒ ▓▓▒▒▒▒▒▓▓▒▒ ▓▓▒▒▒▒▒▒ ▓▓▒▒▒▒▒▒ ▓▓▒▓▓ ▓▓▒▓▓▒▒ ▓▓▒▒ ▓▓▒▒
▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒
▓▓▒▒ ▓▓▓▓▓▓▓▓▒▒ ▓▓▒▒ ▓▓▓▓▓▓▓▓▒ ▓▓▒▒ ▒▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒
▓▓▒▒ ▓▓▒▒▒▒▒▒ ▓▓▒▒ ▓▓▒▒▒▒▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒
▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒
▓▓▓▓▓▓▒ ▓▓▒▒ ▓▓▓▓▓▓▒ ▓▓▓▓▓▓▓▓▒ ▓▓▒▒ ▓▓▒▒ ▓▓▓▓▓▓▓▓▓▒▒
▒▒▒▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒ ▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒
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