![]() |
![]() |
1. A propos de cpc4x
1.1 Aperçu rapide
1.2 Qu'est ce qu'un CPC ?
1.3 Qu'est ce qu'un émulateur CPC ?
2. Compilation de cpc4x
2.1 Comment compiler cpc4x ?
2.2 Les pré-requis à la compilation - comment obtenir de l'aide
3. Utilisation de cpc4x
3.1 Démarrage rapide
3.2 L'émulation du clavier CPC sous cpc4x
3.3 Les fonctions d'émulation de cpc4x
3.4 Les options de la ligne de commande
3.5 La fenêtre de configuration
3.6 Le fichier de configuration .cpc4xrc
3.7 Le débogueur Z80 intégré
4. Logiciels pour cpc4x
4.1 Astuces - transférer vos programmes CPC vers une image disque
4.2 Liens vers des sites Internet sur le CPC
5. Historique
5.1 Les caractéristiques actuelles de cpc4x, ses limitations et ses bogues
5.2 La liste des modifications de toutes les versions de cpc4x
5.3 Remerciements
6. Note de l'auteur
6.1 Aspect légal
cpc4x est un sigle qui signifie CPC-for-X (CPC pour X, en
français, pour ceux qui n'avaient pas compris...). Ce programme émule les
ordinateurs Amstrad/Schneider CPC 464, CPC 664 et CPC 6128, et vous permet donc
d'éxécuter sur votre propre ordinateur les logiciels qui ont écrits pour ces
Amstrad. Cpc4x est conçu pour s'éxecuter sur les environnements UNIX,
sous leur interface graphique X11. Vous aurez besoin du langage de
script TcL/Tk,
si vous voulez utiliser les boîtes de dialogues graphiques. Si vous n'avez pas
Tcl/Tk, ou que vous ne voulez pas l'installer, lancez l'émulateur à
partir du shell pour voir l'interface texte en remplacement de l'interface
graphique. Cette interface donne accès à toutes les fonctions de l'émulateur
et remplace toutes les fenêtres pop-ups qui sont utilisées habituellement
(comme pour choisir et insérer des images disque).
Le CPC est un ordinateur 8 bits, qui a été conçu en 1984 par la société
AMSTRAD et fut ainsi nommé AMSTRAD CPC. Cet ordinateur a été
distribué sous un autre nom dans certains pays, comme le Schneider CPC en
Allemagne. CPC est le sigle de Colour-Personal-Computer
(ordinateur couleur personnel).
A cette époque, la plupart des autres ordinateurs personnels étaient
équipés d'une mémoire RAM allant de 16 à 64 Ko; ils étaient fournis avec
d'antiques claviers en gomme, et vous deviez aussi posséder une télé avec
les adaptateurs nécessaires, car ils étaient livrés sans les très chers (à
l'époque) moniteurs haute résolution (les ZX Spectrum et le C16 étaient
livrés ainsi).
![]() |
Le premier CPC, appelé 464 (voir la photo), était livré avec un
très bon clavier mécanique (du type machine à écrire), avec un lecteur de
cassettes intégré, et vous aviez le choix entre un écran monochrome (vert),
et un écran couleur (la différence de prix entre ces deux moniteurs ne
laissait souvent pas le choix). Avec son processeur Zilog Z80A
cadencé à 4 MHz, ses 64 Ko de RAM, et son lecteur de disquettes
3 pouces optionnel, le CPC était un concurrent sérieux du Commodore 64
(CBM 64, qui avait aussi un lecteur de disquettes optionnel, mais beaucoup,
beaucoup plus lent que celui du CPC). Toutes ces caractéristiques (ajoutées
à un prix très compétitif pour l'époque) ont fait sensation au moment de
sa sortie. Il était livré avec le BASIC 1.0 de Locomotive, un des BASIC
les plus puissants et sans doute le plus complet de l'époque, qui permet
de manipuler aussi bien les sons que les graphismes. Le circuit vidéo
permet l'affichage sous trois modes standards (mais aussi sous d'autres
modes moins standards...) :
|
La seconde génération de CPC est sortie au début de 1985, et est appelée CPC 664. Cet ordinateur possède un lecteur disquette intégré au clavier à la place du lecteur de cassettes du CPC 464. Techniquement, il est très proche de son grand frère le CPC 464. A l'époque, le standard des disquettes n'était pas encore clairement établi (bataille entre les formats 3", 3"1/2 et 5"1/4), et le format 3" a donc été choisi pour équiper les CPC 664. Vous pouvez aussi l'équiper d'un lecteur de cassettes externe (pour pouvoir utiliser tous les programmes créés pour le CPC 464). Le clavier gris agrémenté de quelques touches bleues a gagné un peu en sobriété. Le CPC 664, tout comme le CPC 464, dispose de 64 Ko de RAM (42 Ko disponibles si vous travaillez avec le BASIC), et d'une ROM de 32 Ko. Vous pouvez ajouter jusqu'à 4 Mo de ROM sur cet ordinateur. | ![]() |
![]() |
La troisième génération. A la fin de 1985, Amstrad a donné naissance au petit frère des CPC 464 et 664 : le CPC 6128 ! Il a deux fois plus de mémoire que les deux précédents : 128 Ko de RAM. Il a encore le fameux lecteur de disquettes 3 pouces. Comme d'habitude, vous pouvez connecter un lecteur de cassettes externe pour garder la compatibilité du CPC 464. Le générateur de sons (3 voix + bruit, le tout en stéréo) est toujours là. . En revanche, le clavier est entièrement gris (là, ils ont peut-être un peu trop gagné en sobriété...) |
Puisque le CPC 464 n'a qu'un lecteur de cassettes, un lecteur de disquettes
externe est devenu nécessaire. Amstrad/Schneider a construit Le lecteur DDI-1,
avec son interface spécifique pour le CPC. Le système d'exploitation CP/M 2.2
(Control Program for Microcomputers) avec le Dr LOGO, était livré avec.
L'interface contient un contrôleur de périphérique, et une ROM additionnelle
qui ajoute au BASIC les fonctions pour contrôler le lecteur de disquettes.
Vous pouvez écrire sans problème 170 Ko de données sur chacune des faces des
disquettes 3" (elles sont double-faces). Des lecteurs de cassettes externes
étaient aussi disponibles pour les autres CPC.
Les moniteurs CPC ont une très bonne résolution, bien meilleure que
ce que peuvent produire les télévisions. Vous pouviez choisir entre un moniteur
vert (monochrome) et un moniteur couleur, qui est connecté directement sur le
CPC, comme le montre la photo. En fait, vous êtes obligé de brancher votre
Amstrad CPC sur un moniteur Amstrad, car le CPC est alimenté par l'alimentation
du moniteur.
Plus tard, vint le modulateur HF qui permet d'utiliser un téléviseur normal en guise de moniteur. |
![]() |
Les interfaces d'un CPC classique sont : un port d'expansion E/S, un port centronics (7 bits), le port cassette, le port joystick (jusqu'à deux joysticks avec un partageur de joystick, voire même en branchant le second joystick sur le premier :)), et un port stéréo, pour écouter les (très belles) musiques du CPC sur votre chaîne Hi-Fi.
Les trois générations de CPC sont presque entièrement compatibles entre elles, avec seulement quelques différences entre les versions du BASIC de Locomotive, et, bien sûr, le CPC 6128 peut exécuter des programmes beaucoup plus gros que les deux autres CPC. Inutile de le dire, mais ça va mieux en le disant : la bibliothèque de programmes est énorme et très variée (c'est l'une des raisons de la "popularité" persistante de cet ordinateur). En Allemagne, il a été élu ordinateur de l'année 1985.
Normalement, un vrai CPC utilise des cassettes et des disquettes pour stocker des données qui seront réutilisées plus tard. Comme nous vous l'avons indiqué, il n'y a pas besoin d'utiliser le matériel du CPC (y compris les cassettes et disquettes) pour utiliser l'émulateur. Il existe des programmes qui permettent de recopier le contenu des disquettes CPC dans un fichier exploitable par l'ordinateur qui exécute l'émulateur. Ces fichiers sont appelés des images disques, qui peuvent être stockées sur votre disque dur ou sur CD-ROM. Ces images peuvent donc être insérées virtuellement dans le lecteur de disquettes virtuel utilisé par cpc4x, et peuvent donc être accédées comme s'il s'agissait de véritables disquettes.
Si la compilation de l'émulateur a réussi pour vous,
envoyez moi la configuration de votre
système pour aider les futurs utilisateurs de cpc4x. Votre configuration sera
ajoutée à la liste des configurations (architecture, distribution...) sous
lesquelles cpc4x fonctionne. Il y a un exemple plus bas qui vous montre
les informations à saisir. Si vous ne voulez pas que votre e-mail apparaisse
(et ainsi éviter de recevoir les appels desespérés des gens qui ont la même
configuration que vous, mais qui ne parviennent pas à compiler cpc4x), merci
de le préciser dans votre mail (mais soyez sympa, un jour vous aurez vous
aussi besoin d'un coup de main de quelqu'un d'autre...). A chaque sortie d'une
nouvelle version, la liste des configurations qui fonctionnent pour les anciennes
versions de cpc4x est bien évidemment supprimée (pas besoin qu'on vous demande
de l'aide, si vous non plus n'arrivez pas à compiler cette satanée nouvelle
version !). NDT : comme l'auteur de cpc4x ne comprend pas un mot de français,
soyez sympa : écrivez lui en anglais, ou, mieux encore, en allemand.
Voici comment obtenir les informations sur votre configuration (notez que ces méthodes fonctionnent sur la majorité des UNIX, mais pas sur tous) :
Tapez gcc
-v et make -v dans une fenêtre shell, lisez aussi les informations
contenues dans le fichier ~/.X.err. Si vous utilisez Tcl/Tk, cherchez
le répertoire où il est installé. Il indique normalement le numéro de version
(généralement dans /usr/lib/tcl* ou dans /usr/local/lib/tcl*)
Les programmes requis pour une compilation sous une architecture du type Intel/Linux
|
le système X-Windows (X11R6) N'importe quel gestionnaire de fenêtres (KDE, GNOME, fvwm, AfterSTEP, Window Maker, etc.) Les fichiers "include" de X11 (Archive Linux "xdevel") make
TcL/Tk 7.6 et Tk 4.2 ou plus SI vous voulez avoir une interface graphique. |
Version:0.11 compiled on distribution: SuSE 6.2 (Jammet)
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) XFree86 Version 3.3.3.1 ; GNU Make version 3.77 ; TcL/Tk 8.0 |
Pour démarrer cpc4x, exécutez le programme cpc. La première fois que vous démarrez cpc4x, un répertoire cpc se créé dans votre répertoire de base, et quelques fichiers y sont copiés. Vous trouverez aussi quelques icônes pour votre gestionnaire de fenêtres dans le répertoire cpc/icons ..
Après l'écran de démarrage, la fenêtre du panneau de contrôle s'ouvre. Cliquez sur le bouton Go to the emulation, et la fenêtre d'émulation CPC doit s'ouvrir, affichant un joli message jaune sur un fond bleu. Si vous voulez démarrer directement avec la fenêtre d'émulation, tapez cpc -noinfo et la fenêtre du panneau de contrôle n'apparaitra pas.
Voici les trois opérations que vous allez effectuer le plus souvent : Insérer une disquette, lister son contenu, exécuter un programme
Une fois que cpc4x est démarré, vous pouvez insérer une image disque dans le lecteur de disquette de l'émulateur en appuyant sur la touche F3. Une nouvelle boîte de dialogue apparait, et vous demande quel fichier insérer. Les images disques ont toujours une extension en ".dsk". Cpc4x est fourni avec quelques fichiers d'exemple. Essayez avec le fichier "balli.dsk".
Une fois le fichier choisi, imaginez que vous avez un véritable CPC devant vous avec une véritable disquette à l'intérieur. Pour lister le contenu de la disquette, tapez "CAT". Cette instruction fait la même chose que DIR sous DOS, ls -al avec UNIX ou LOAD"$",8 & LIST sur Commodore 64. Le CPC ne fait pas la différence entre majuscules et minuscules, vous pouvez donc taper CAT comme vous le souhaitez.
Pour exécuter le programme BALLI.BAS, vous pouvez le charger en mémoire en tapant LOAD"BALLI.BAS", et attendez que le programme soit complètement chargé (lorsque le message Ready s'affiche, le programme est chargé), puis exécutez le en tapant RUN. Un moyen plus rapide pour exécuter un programme : tapez RUN"BALLI.BAS", ce qui fait exactement la même chose que LOAD et RUN. Encore plus rapide : RUN"BALLI sans taper l'extension BAS, ni le guillemet fermant, et vous aurez le même résultat.
|
|
Toutes les fonctions de l'émulateur peuvent être accédées grâce aux
touches de fonction Fxx. Cpc4x reprend la même disposition qu'un autre émulateur
(CPCEMU) pour DOS de Marco Vieth, mais cpc4x affiche la plupart du temps
une boîte de dialogue lorsque vous appuyez sur une touche de fonction.
F1 | Ouvre la boîte de dialogue INFORMATION. Celle-ci contient des informations à propos de l'auteur de cpc4x Ulrich Cordes, et vous donne la possibilité de lire la documentation HTML (celle que vous êtes en train de lire) avec votre butineur préféré. |
F3 | Ouvre la boîte de dialogue OUVRIR UN FICHIER, qui vous permet d'insérer une image disque dans le lecteur virtuel A: et/ou B: de l'émulateur. Si vous n'avez pas installé Tcl/Tk, vous pouvez insérer une disquette dans le lecteur A: en pressant cette touche. |
F4 | La même chose que F3, mais avec le lecteur B: pré-sélectionné dans la boîte de dialogue. Si vous n'avez pas installé Tcl/Tk, utilisez cette touche pour insérer une disquette dans le lecteur B:. |
F5 | Active/désactive le son |
F6 | Faire une capture d'écran vers un fichier XPM. Une boîte de dialogue Tcl/Tk s'ouvre pour que vous indiquiez le nom du fichier XPM. |
F7 | Ouvre la fenêtre de CONFIGURATION. Vous pouvez modifier la langue, le type de CPC émulé, la quantité de RAM disponible, le répertoire par défaut des lecteurs A et B, la ligne de commande pour l'impression, le type de moniteur, le distributeur et insérer jusqu'à 7 roms supplémentaires. |
F8 | Réinitialise artificiellement l'émulateur, et vous ramène à l'écran de démarrage du CPC. |
F9 | Ferme le fichier d'impression, et l'envoie à l'imprimante. |
F10 | Exécute le débogueur Z80 intégré. Pour cela, cpc4x doit être lancé à partir de la ligne de commande (fenêtre de shell). |
F12 | Quitte l'émulateur. |
Si vous n'avez pas installé TcL/Tk, les dialogues se feront dans la fenêtre shell d'où vous avez lancé l'émulateur. De même, vous n'aurez pas accès à la fenêtre de configuration. Mais vous pouvez modifier quelques options à partir de la ligne de commande.
Tapez cpc -help pour obtenir la liste des options qui peuvent être passées en ligne de commande.
Option | Fonction |
---|---|
-noinfo | Démarre cpc4x directement avec la fenêtre d'émulation |
-cpc464 -cpc664 -cpc6128 |
Spécifie le modèle du CPC à émuler |
-mem64 -mem128 -mem576 |
Spécifie la quantité de RAM (64, 128 ou 576 Ko) disponible |
-ger -eng -fra |
Permet de choisir la langue des boîtes de dialogue : allemand (-ger), anglais (-eng) ou français (-fra) |
-color -mono |
Émule un écran couleur ou un écran monochrome |
-help | Affiche les options de la ligne de commande |
Par exemple : la ligne de commande cpc -cpc6128 -mem576 -color -eng -noinfo démarre l'émulateur du CPC 6128 avec 576 Ko de RAM avec un moniteur couleur, l'anglais est la langue des boîtes de dialogue, et il n'y a pas d'écran d'introduction. Vous pouvez placer ces options de la ligne de commande dans les propriétés d'un icône KDE ou GNOME.
Si vous utilisez un même paramètre plusieurs fois (par ex: cpc -mem128 -mem64), seul le dernier paramètre sera pris en compte. Dans l'exemple cité, cpc4x démarrera avec 64 Ko de RAM.
Principe Général
La boîte de dialogue de configuration est très simple à utiliser; la plupart
des options se changent en cliquant sur des boutons, et vous avez un aperçu
immédiat de la configuration actuelle.
Nous ne reviendrons pas sur les options qui peuvent être modifiées à partir
de la ligne de commande (comme le modèle de CPC à émuler, ou la quantité de
RAM disponible), car nous les avons déja expliqué juste au-dessus.
La gestion des ROM
Le CPC peut prendre en charge jusqu'à 256 ROM, chacune d'elles faisant 16 Ko. Ces ROM sont gérées par un système appelé Bank Switching. La ROM n° 0 est la ROM du BASIC, et les sept ROM suivantes peuvent être utilisées par le BASIC.
Vous pouvez insérer les ROM supplémentaires grâce à la fenêtre de configuration. Les ROM sont en fait des fichiers images des ROM d'origine. Ces fichiers doivent être placés dans le répertoire $HOME/cpc/rom, car c'est dans ce répertoire que l'émulateur va les chercher.
L'impression
L'impression de cpc4x ne se fait pas directement vers le port de l'imprimante. L'impression transite par un fichier d'impression, tel que 000001.prn. Lorsque l'émulateur rencontre le caractère chr$(12) (qui représente le saut de page), ou lorsque vous pressez la touche F9 pour forcer le saut de page, le fichier d'impression est fermé et envoyé au gestionnaire d'impression de votre ordinateur. Vous pouvez indiquer, dans le champ Ligne de commande pour l'impression, les instructions qui permettent d'envoyer le fichier d'impression au gestionnaire d'impression.
La plupart du temps, le gestionnaire d'impression envoie automatiquement un signal Form Feed (FF) à l'imprimante après l'impression d'une page. Dans ce cas, il vaut mieux demander à cpc4x de ne pas rajouter ce caractère à la fin du fichier d'impression, en cochant la case FF de la section Ne pas imprimer ces caractères. De même, le CPC écrit les caractères CR et LF à la fin de chaque ligne pour indiquer à l'imprimante qu'il faut sauter une ligne. En fonction de votre gestionnaire d'impression, il peut être utile de demander à cpc4x de ne pas générer le caractère CR à la fin de chaque ligne, en cochant la case CR de la même section. Faites ceci si vous avez une ligne blanche entre chaque ligne.
Lorsque vous quittez cpc4x, les fichiers d'impression qui étaient ouverts sont fermés et envoyés au gestionnaire d'impression, puis tous les fichiers d'impression qui se trouvent dant le répertoire cpc sont effacés.
Les images disque
Vous pouvez connecter un lecteur de disquette externe sur les CPC. Ce lecteur peut être un lecteur standard 3 pouces avec des diquettes formatées au format Amstrad 180 Ko, ou bien un lecteur moins standard (pour le cpc...) comme les lecteurs 3"5 et 5"1/4 avec des disquettes 80 pistes qui peuvent contenir jusqu'à 720 Ko de données. Cpc4x est capable de gérer les images provenant de toutes ces disquettes, pourvu que l'extension de ces images soit dsk. Vous pouvez placer ces images disque dans le répertoire de votre choix, mais vous devez alors spécifier à cpc4x l'emplacement de ces fichiers dans les deux boîtes de texte représentées ci-dessous. Vous pouvez donc préciser l'emplacement des fichiers images pour chacun des lecteurs; par défaut, cpc4x va chercher dans $HOME/cpc/disc.
Enregistrer la configuration
Si vous cliquez sur le bouton Appliquer et réinitialiser l'émulateur, les modifications sont enregistrées dans le fichier .cpc4xrc dans votre répertoire de base. L'émulation du CPC est réinitialisée et redémarre avec les options que vous venez d'entrer. Ceci signifie que vous perdrez toutes les informations qui étaient dans la mémoire du CPC à chaque fois que vous cliquerez sur ce bouton !
Votre configuration de cpc4x est enregistrée dans le fichier .cpc4xrc qui se trouve dans votre répertoire de base (~/). C'est un fichier binaire qui est caché. Vous pouvez ouvrir ce fichier avec un éditeur de texte, mais soyez prudent lorsque vous le modifiez. Ce fichier binaire va être lu ligne par ligne par cpc4x. Vous ne devez pas insérer de commentaire ni le modifier pour le rendre plus lisible !
/usr/lib/cpc /home/uli/cpc 1 576 amsdos.rom disc disc/80track 0 14 eng 2 lpr -Praw 1 0 1 |
Modifier le fichier .cpc4xrc peut être utile si vous n'avez pas installé Tcl/Tk. Voici la signification de chacune des lignes :
Ligne | Fonction |
---|---|
1 | Le répertoire d'installation de cpc4x. Modifier cette ligne n'aura pas d'effet |
2 | Le répertoire de travail de cpc4x. Cette valeur ne doit pas être modifiée. |
3 | Une variable utilisée par la fenêtre de configuration. |
4 | La quantité de RAM disponible pour le CPC émulé (64, 128 ou 576 Ko) |
Le nom des fichiers images ROM; ils seront utilisés comme les ROM de 1 à 7 par l'émulateur. | |
12 | Le répertoire par défaut des images disque du lecteur de disquette A:. |
13 | Le répertoire par défaut des images disque du lecteur de disquette B:. |
14 | 0=Moniteur couleur, 1=Moniteur monochrome |
15 | Distributeur: 0=ISP, 2=Triumph, 4=Saisho, 6=Solavox, 8=AWA, 10=Schneider, 12=Orion et 14=AMSTRAD. C'est ce nom qui va être affiché dans le message de démarrage du CPC. |
16 | Langue: ger=allemand, eng=anglais, fra=français |
17 | CPC-Type: 0=CPC 464, 1=CPC 664 et 2=CPC 6128 |
18 | La ligne de commande pour l'impression |
19 | 1=ne pas imprimer les caractères CR |
20 | 1=ne pas imprimer les caractères LF |
18 | 1=ne pas imprimer les caractères FF |
En appuyant sur la touche F10, vous accédez au débogueur Z80 intégré. Cependant, pour y accéder, vous devez lancer cpc4x à partir d'une fenêtre shell (pas à partir d'un icône associé). Ce débogueur vous permet de lire les instructions Z80 pas à pas. Vous devez avoir de bonnes connaisances en assembleur Z80, ainsi que de son architecture pour utiliser le débogueur. Voici les commandes disponibles :
Comand | Description |
---|---|
c | Redonner la main à cpc4x |
[RETURN] | Exécuter la prochaine instruction Z80. |
= [addr] | Placer un point d'arret à l'adresse [addr] et continuer l'émulation jusqu'à ce cpc4x arrive sur l'instruction à l'adresse [addr]. |
+ [offset] | Place un point d'arret à la position actuelle plus [offset] octets, et redonne la main à l'émulation. |
j [addr] | Sauter à l'adresse [addr]. |
m [addr] | Faire un vidage de la mémoire à l'adresse [addr]. |
d [addr] | Désassembler les 16 premières instructions Z80 à partir de l'adresse [addr]. |
?,h | Affiche l'aide du débogueur. |
q | Quitter cpc4x |
La méthode la plus rapide et la plus simple pour obtenir des logiciels
pour le CPC et pour l'émulateur est de lancer une recherche sur Internet. La
plupart des logiciels pour le CPC sont déjà au format .dsk, et ils sont donc
prêts à être chargés dans l'émulateur. Le plus souvent, ils sont compressés
au format ZIP. Vous pouvez les décompresser en utilisant
unzip; tout ce que vous
avez à taper est 'unzip <nomdufichier>'.
Si vous cherchez une méthode qui permet de transférer vos programmes CPC vers une image disque, vous aurez besoin d'un peu de matériel. D'abord, vous devez savoir que vous ne pouvez pas transférer tous les programmes vers un fichier image disque. Vous pouvez essayer et espérer que ça va marcher. Vous devez utiliser un lecteur de disquette, de préférence 3"5 ou 5"1/4. Les lecteurs 3" du CPC ne peuvent pas être connectés sur les ordinateurs modernes, d'après ce que je sais (NDT: j'ai entendu parler de personnes qui ont réussi cet exploit, mais la moindre mauvaise manipulation peut endommager votre lecteur, voire même votre ordinateur; n'essayez donc qu'en dernier recours...).
Les utilisateurs UNIX peuvent utiliser la commande dd (si celle-ci se trouve sur leur disque). Ce logiciel très pratique vous permet d'enregistrer n'importe quelle donnée provenant d'une disquette, indépendamment du format de la disquette (il faut que le contrôleur du lecteur de disquette sache au moins gérer ce format). Cela ne vous donne pas une image utilisable sous cpc4x, car les fichiers .dsk doivent comporter un en-tête. Pas de panique, car il existe ddtrans, un outil fourni avec l'émulateur Sinclair xzx. Cet outil vous permet de convertir un fichier brut provenant de dd en un fichier .dsk. L'auteur n'a pas beaucoup de temps pour s'occuper de cette partie, donc si vous avez des informations sur comment utiliser ces logiciels, envoyez les à l'auteur (son adresse se trouve à la fin de ce document) pour expliquer aux autres comment convertir une disquette en image disque.
La page d'Ulrich Cordes | http://www.amstrad-cpc.de |
Une archive française de logiciels libres pour le CPC, treès fournie | ftp://ftp.lip6.fr/pub/amstrad |
Une autre archive, en anglais, plus axée sur les jeux commerciaux, très fournie aussi | ftp://ftp.nvg.ntnu.no/pub/cpc |
La page de Genesis8 sur l'Amstrad CPC | http://genesis8.free.fr |
Un manuel du langage Locomotive BASIC | http://www.sean.co.uk/bidea0.htm |
Un site allemand sur le Schneider CPC pas moins complet que les autres sites | http://www.opperer.com/ascd/ |
Caractéristiques de la version actuelle (0.23):
Affichage en MODE 0, MODE 1, MODE 2
support des images .dsk pour le lecteur A: et B:
Le choix des fichiers images ROM est libre
La quantité de RAM disponible est paramétrable.
Les logiciels qui n'utilisent pas d'astuce trop complexe s'exécutent correctement
L'émulateur peut imprimer (réellement)
Les options de la ligne de commande
Une interface graphique optionnelle avec Tcl/Tk (en allemand, en anglais et en français)
Une sortie son
Le support du format XDOS pour les disquettes de grande taille (avec encore un bug : une image disque doit être insérée dans le lecteur A:)
La RAM-Disk avec RDOS-ROM fonctionne
Ce qui ne fonctionne pas pour l'instant (0.23):
Le scrolling hard ne fonctionne que verticalement, et seulement ligne par ligne
Les modes d'affichage peu orthodoxes ne s'affichent pas correctement
Le scrolling de bordure est un peu pauvre.
.....
Si vous avez d'autres remarques à ajouter à cette liste ? Votre avis honnête m'intéresse aussi. Autre chose qui manque, fonctionne mal, ou pas du tout, des commentaires ? BASIquement parlant, tout ce qui est écrit en BASIC doit fonctionner, ainsi que la plupart des outils comme les traitements de texte, les gestionnaires, ... Et même quelques jeux (NDT:il y en a déjà beaucoup), qui n'utilisent pas d'astuces matérielles secrètes et tirées par les cheveux, doivent aussi fonctionner, et même être jouables. De même, CP/M fonctionne (les deux versions). Il n'y a pas encore une compatibilité parfaite.
24.3.99 | L'émulation Z80 fait ses premiers pas. Un Makefile structuré. Affichage uniquement en mode 1 à l'intérieur d'une fenêtre X11, en utilisant la fonction XDrawPoint(). Une certaine fierté commence à se dégager ! |
26.3.99 | XDrawPoint est très lent, dessine l'écran CPC comme une image et la rafraîchit lorsque c'est nécessaire. J'ai agrandi la fenêtre principale afin d'afficher la bordure de l'écran. J'ai acceléré le calcul en X et Y à partir d'un tableau. Pour l'instant, une encre jaune sur un fond bleu. |
29.3.99 | Pour la première fois, l'insertion d'une ROM et le BASIC fonctionnent. L'émulation boucle un petit peu : le message de démarrage s'affiche, et l'émulateur se réinitialise avant que le message Ready ne s'affiche. Les macros 16-Bits-IN/OUT du Z80 ont été modifiées pour utiliser réellement du 16 bits. |
31.3.99 | Les macros adaptées qui appellent les IN-structions Z80 dans CodesED.h ont été enlevées, c'était une erreur. Codes.h doit d'abord être amélioré. J'ai corrigé RdZ80 dans mem.h pour que, quand il y a une ROM en position 0, la lecture s'opère à partir du Basic, et non pas à partir des ROM 252-255. Et bienvenue à toi, message Ready. |
5.4.99 | L'émulateur effectue 13333 cycles avant de déclencher la fonction LoopZ80().
Pour obtenir ce chiffre : cycles = frequenceZ80 / frequenceInterne ===> 4.000.000 / 300 = 13333 Dans LoopZ80(), il y a un gestionnaire d'évenements de l'émulateur. L'appui de touches et leur fonction respective sont envoyés à la matrice de l'émulation du clavier (quelques touches ne fonctionnent pas encore !). L'émulateur fonctionne maintenant avec un temporisateur de 50 Hz. Chaque sixième appel à LoopZ80() est utilisé pour la synchronisation en temps réel. En admettant que l'émulation tourne beaucoup plus vite que l'original, LoopZ80 met les freins, et l'utilisateur a l'impression que l'émulateur tourne en temps réel. Maintenant, on peut même taper des petits programmes BASIC, et même les exécuter. L'affichage se fait toujours et uniquement en Mode 1, et le scrolling vers le haut est vivement déconseillé ! |
22.4.99 | Cpc4x reconnait maintenant correctement les trois types d'affichage.
Tim Riemann m'a aidé pour cette partie.
Toutes les 10 millisecondes, on vérifie s'il y a un changement de couleur
dans le gate array, et, si c'est le cas, l'écran doit être rafraîchit. Cela
signifie aussi que l'on doit tout dessiner pixel par pixel. Le délai de
10 ms est une nécessité, sans ça l'émulateur ne pourrait pas fonctionner.
Le scrolling hard ne fonctionne pas encore.
Marco Vieth, auteur de CPCEMU m'a donné les paramètres RGB des couleurs du CPC, ce qui donne une meilleure allure à mon émulateur. Merci à lui. |
20.6.99 | J'ai tout vérifié et enquêté pendant des nuits, et maintenant, enfin, le scrolling hard fonctionne. |
8.9.99 | (version 0.10) Les vacances d'été sont à peine finies, et cpc4x a maintenant un lecteur de disquettes. Toutes les fonctions essentielles pour la lecture et l'écriture fonctionnent. |
25.10.99 | (version 0.11) J'ai commencé à implémenter quelques dialogues X11 pour l'ouverture des images disque et pour la configuration. Pour cela, j'utilise Tcl/Tk. |
25.11.99 | J'ai ajouté un panneau d'informations avec la possibilité d'ouvrir les documents d'aide avec n'importe quel butineur. |
2.12.99 | (version0.11b) Support en allemand et maintenant en anglais. |
26.2.00 | (version 0.20) Les sorties imprimantes sont dirigées vers des fichiers.
Après l'écriture du caractère chr$(12), qui indique un saut de page,
ou lors de l'appui de la touche F9, le fichier d'impression est fermé, et
envoyé à une vraie imprimante grâce à la ligne de commande définie dans la
configuration. Paramètres de la ligne de commande Réorganisation du projet et des Makefiles, ainsi l'émulateur peut être installé par le root pour que tous les utilisateurs y accèdent, ou par un utilisateur unique Des fichiers de documentation beaucoup plus jolis en HTML. |
10.3.00 | (version 0.20b) Quelques options supplémentaires pour l'impression. |
13.3.00 | (version 0.20c) Gestion du clavier améliorée et un meilleur effacement des fichiers prn en fermant cpc4x. |
16.5.00 | (version 0.21) La touche F6 permet de faire une capture d'écran vers un fichier XPM. Une fenêtre Tcl/Tk permet de spécifier le nom du fichier XPM. |
21.10.00 | (version 0.22 - jamais rendue publique) Le son est maintenant supporté. |
07.01.01 |
(version 0.23) l'émulation Z80
de Marat Fayzullin ne supportait pas les deux instructions illégales
NEG (ED-7C) et RETI (ED-7D). Ainsi, le rafraîchissement des
registres 280 n'était pas supporté correctement. XDDOS-ROM a besoin de ces
deux instructions. Un débogueur Z80 a été intégré. |
14.7.01 |
(release 0.24) Removed some bugs in the disc emulation. So cpc4x is able to read large (720 k) formated
disk images with CP/M Plus in drive French language menus and help file (beside this lines yet) Changes in the Makefiles to solve several compiling problems with sound and NULL variables |
Vor der Dorneiche 1 34317 Habichtswald Germany E-mail: ulrich.cordes@gmx.de WWW: www.amstrad-cpc.de |
Ulrich l'auteur de cpc4x ! =D |
WWW: komkon.org/fms/EMUL8. |
Marat Fayzullin a fourni les sources C d'un microprocesseur Z80 qui sert de base à cpc4x ! |
E-mail: TCS-Software@gmx.de WWW: tcs.home.pages.de |
Tim a un peu programmé pour les modes d'affichage, et a fait beaucoup de tests à l'intérieur du noyau ! |
|
Marco m'a aidé avec CPCEMU pour les valeurs RGB des couleurs de cpc4x ! |
E-mail: jammet@lionking.org WWW: www.lionking.org/~jammet |
Jammet a traduit cpc4x et sa documentation en anglais, et a rajouté beaucoup d'informations dans la documentation. |
E-mail: mustunm@befree.ch |
Michael a mis ses mains sur la sortie son et a modifié
l'affichage graphique. Ainsi, vous pouvez maintenant jouer à beaucoup de jeux
grâce à lui. Il a récupéré le générateur de sons de l'émulateur STonX, mais je n'arrive pas à joindre l'auteur de STonX pour obtenir sa permission sur ces sources. Comme la situation légale n'est pas assez claire, son travail sur le son n'a pas été inclus dans l'émulateur. Je suis désolé Michael. |
E-mail: all@free.fr |
Ce Michael s'est aussi penché sur le son. Ici, la situation légale est claire, donc son travail a été inclus dans l'émulateur. |
|
Bien que les codes sources sont offerts gratuitement, cela ne
signifie pas que n'importe qui peut faire ce qu'il veut avec. Je, Ulrich
Cordes, suis le propriétaire du Copyright de cpc4x.
N'importe qui peut, sur n'importe quel système, compiler et utiliser mon émulateur librement. Vous ne pouvez pas demander une rétribution lorsque vous le fournissez à quelqu'un. Une licence UNIX/GNU/Linux doit être fournie avec l'émulateur lorsque vous le laissez à disposition dans une collection (par ex: serveur ftp, CD-ROM, etc...).
Si vous faites la moindre modification sur mon émulateur, veuillez m'envoyer un courrier ou un e-mail. Je suis généralement ouvert à toute nouvelle idée, modification, et j'ai besoin de les connaître pour adapter et améliorer mon émulateur en fonction de chaque nouvelle version. L'émulateur y gagne lorsque vous partagez vos idées.
Ce morceau de logiciel est ma passion durant mon temps libre. Je ne suis pas responsable, et je ne garantis pas non plus, du fonctionnement de cpc4x. Je ne suis pas responsable pour les dommages que pourrait provoquer cpc4x. Je ne suis pas non plus responsable du contenu des sites indiqués dans ce fichier d'aide. Les liens vers ces sites sont fournis pour vous indiquer l'emplacement des sources de cpc4x, et d'autres logiciels très utiles qui ont servi à écrire mon émulateur.
Avec cpc4x, je laisse à la disposition de tous un outil qui me tient à coeur.
AMSTRAD et Locomotive Software Ltd. sont les propriétaires du Copyright sur le contenu des fichiers ROM cpc464.rom, cpc664.rom, cpc6128.rom et amsdos.rom qui sont fournis avec cpc4x. Marco Vieth, auteur de CPCEMU pour DOS, ainsi que Fred Harris ont demandé la permission de distribuer ces fichiers avec leurs émulateurs CPC. AMSTRAD a répondu à leur requête, et la permission a été accordée. (voir la documentation de l'émulateur de Marco). La situation légale à propos de CP/M ne me parait pas assez claire, et j'ai donc décidé de ne pas fournir cet environnement système avec cpc4x.
-Ulrich Cordes