www.cpcalive.com
Click here for english documentation
                                                                                                                                                                                                                       
* CpcAlive V1.07h *  DOCUMENTATION *
CpcAlive est un émulateur d'ordinateur Amstrad CPC.
CpcAlive est un logiciel libre. Sa vocation est de rendre utilisable sur Pc, et d'intégrer au système Dos les programmes développés sur Cpc.

                                                                                                                                                                                                                      

I - Initialisations CpcAlive:
Crée un répertoire CpcAlive sur ton disque dur puis décompresse le fichier CpcAliveV1.07h.zip dans ce répertoire.
Tu peux maintenant lancer le programme CpcAlive.
Si tu lance CpcAlive depuis une fenêtre Dos et un message "Ems error" s'affiche, referme la fenêtre et clique sur l'icône de lancement Dos avec le bouton droit de la souris et séléctionne:
"Propriétés","Mémoire","Mémoire paginée(EMS)>automatique".

Remarques:
       - Les roms Amstrad ont un copyright, tu ne peux donc normalement
utiliser le
         programme
CpcAlive seulement si tu possèdes un ordinateur Amstrad Cpc 6128
         en état de fonctionner.
       - Les couleurs PAPER et PEN 1 ont été modifiées à l'initialisation pour des raisons
         d'ergonomie (moins fatiguantes pour les yeux).

II - Commandes à partir de la ligne de commande Dos:

CpcAlive [fichier_d_entrée[:X]] [commande] [commande Cpc] [>fichier_de_sortie]
ou
! [fichier_d_entrée[:X]] [commande] [commande Cpc] [>fichier_de_sortie]


- 1 - [fichier_d_entrée[:X]]
~~~~~~~~~~~~~~~~~~~~~~~

fichier_d_entrée = disquette virtuelle au format .DSK  ( voir chapitre - 1a - )
                      ou  fichier Rom Cpc                           ( voir chapitre - 1b - )
                      ou  fichier au format intel hex              ( voir chapitre - 1c - )
                      ou  fichier de commande                     ( voir chapitre - 1d - )
                      ou  document texte                             ( voir chapitre - 1e -  )

X = voir chapitres 1a,1b et 1c

notes:
       - Les commandes de chargement de fichiers sont aussi disponibles à partir de
         l'interpréteur basic du Cpc avec l'instruction:

                   |INPUT,"fichier_d_entrée[:X]"[,@er%]

         Le paramètre de retour d'erreur @er% est faculatif. S'il est mis,
         la signification des valeurs récupérées dans la variable er% sont:
         0 = ok
         1 = erreur dans les paramètres
         2 = chemin non trouvé
         Ne pas oublier d'initialiser er% au départ du programme ou avant
         la commande.

         ex:    10 er%=0
                 20 |INPUT,"Disque.dsk",@er%
                 30 if er%<>0 then PRINT"ERREUR":STOP

       - Il est possible de mettre plusieurs noms de fichiers à la suite, il suffit de les séparer
         d'un espace. Dans ce cas, le code d'erreur er% concernera seulement le dernier
         fichier mentionné.


- 1a - Chargement disquettes virtuelles au format .DSK -

Faire suivre le nom de fichier du marqueur :A ou :B pour choisir le lecteur
destination.
(lecteur A par défaut)

ex: ! disque.dsk:A

Cette commande lance l'émulateur en chargeant la disquette virtuelle "disque.dsk" dans le
lecteur A.

note: pas d'espace entre le nom de fichier et le marqueur.

- 1b - Chargement  ROMs CPC -

Faire suivre le nom de fichier du marqueur :R
exemple:  ! XRom.rom:R
Dans ce cas CpcAlive recherche le premier emplacement rom disponible.

Au cas où un emplacement fixe doit être spécifié, remplacer la lettre R
par
le numéro de l'emplacement de la rom. Ce numéro peut-être écrit
en décimal, hexadécimal ou binaire.

exemple:
       - en décimal:          ! XRom.rom:10
       - en hexadécimal:    ! XRom.rom:0Ah ou ! XRom.rom:&A
       - en binaire:            ! XRom.rom:1010b ou ! XRom.rom:&X1010

Toutes ces commandes font la même chose. Elles lancent
l'émulateur en chargeant
la rom XRom.rom à l'emplacement numéro 10.

ATTENTION:
Les autres numéros de roms déja utilisés par le Cpc sont:
                - 0 pour la rom basic
                - 7 pour la rom disque
La valeur maximale étant de 15.

cas particulier:
La valeur 080h ou 128 indique à l'émulateur qu'il doit charger la rom bios.

notes:  - Le chargement des roms avec la commande |INPUT à partir de
          l'interpréteur basic ne sera pris en compte par le système Cpc
          seulement aprés une réinitialisation du Cpc par exemple avec un
          CALL 0 ou en appuyant sur les touches [CTRL] et [F10]) en même temp.

- 1c - Chargement fichiers au format intel hex  -

Chargement en rom:
Faire suivre le nom de fichier du marqueur :X où X représente le numéro
de rom destinataire.

ex: ! hex.obj:10 pour charger dans la rom numéro 10

notes:  - mêmes remarques que pour les fichiers ROMs
          - si la rom n'existe pas, CpcAlive la crée. Dans ce cas, il est alors possible
            d'utiliser le marqueur :R (voir chargement roms)
            
Chargement en ram:
Faire suivre le nom de fichier du marqueur :X où X représente le type
de configuration
de la ram destinataire.
Les valeurs hexadécimales valides pour le chargement en ram sont:
                0C0h,0C1h,0C2h,0C3h,0C4h,0C5h,0C6h et 0C7h

Tableau montrant le positionnement des blocs ram en foncion du type
de configuration:

                type      positions blocs
                0C0h          0,1,2,3
                0C1h          0,1,2,7
                0C2h          4,5,6,7
                0C3h          0,3,2,7
                0C4h          0,4,2,3
                0C5h          0,5,2,3
                0C6h          0,6,2,3
                0C7h          0,7,2,3

note: - Par défaut, le chargement se fait en ram avec la configuration 0C0h

- 1d - Chargement de fichiers de commandes

Ces fichiers sont destinés, comme leur nom l'indique, à commander l'émulateur
à partir d'un fichier. Ce fichier doit commencer par la séquence "CDE:" sans
les guillemets(entête).
Un bon exemple est le fichier ROM.INI qui est un fichier de commande qui
est destiné à l'initialisation de l'émulateur. C'est à partir de celui-ci
que sont chargées par exemple les roms du Cpc. Chaque ligne est interprétée
de la même manière que pour les commandes à partir de la ligne de commande
Dos. Noter la présence du séparateur ';' pour les commentaires.

Les commandes internes disponibles autres que les chargements de fichiers
sont détaillées au chapitre 2 excepté les deux commandes suivantes qui n'ont
pas d'intérêt à partir de la ligne de commande Dos.

EndCde       : indique la fin d'un fichier de commande.
                    (rétablit la configuration mémoire effective au lancement du fichier de commande)

KeyBoard    : pour passer du mode COMMANDE au mode CLAVIER. C'est à dire qu'à
                     partir de cette commande, le fichier ne sera plus interprété
                     comme un fichier de commande mais comme un fichier au format
                     texte. (voir chapitre - 1e -)
                     (ne pas utiliser cette commande dans le fichier ROM.INI)

exemple1:

CDE:
CpuSlow          ; sélection vitesse
...                     ; etc... (voir chapitre 2 pour les diverses commandes disponibles)
EndCde            ; ferme le fichier de commande

exemple2:

CDE:
CpuSlow          ; sélection vitesse
...                    ; etc... (voir chapitre 2 pour les diverses commandes disponibles)
KeyBoard        ; passe en mode clavier,
PRINT"OK":   '  à partir d'ici chaque caractère est transmis directement au clavier
...

note:   pas de "EndCde" ici puisque après la commande "KeyBoard", le fichier
          est interprété comme un fichier au format texte. (Arrêt automatique
          en fin de fichier et pas de possiblilité de revenir en mode "commande").

- 1e - Chargement de fichiers au format texte

Au cas ou le type de fichier n'est pas reconnu par CpcAlive comme étant un des
fichiers détaillés plus haut, CpcAlive considère qu'il s'agit d'un fichier au format texte.
CpcAlive traite ces fichiers de maniére simple. Chaque caractère du document
est lu,
puis envoyé au gestionnaire clavier du système Cpc. Tu peux donc transmettre par
cette fonction un fichier basic au format texte ou même commander un programme
tournant
déja dans l'émulateur à partir d'un fichier texte.

exemple à partir de la ligne de commande du dos:

! exemple.bas

Cette commande charge le programme nommé exemple.bas s'il existe, à travers le
gestionnaire clavier du Cpc. Dans cet exemple, le fichier "exemple.bas" est situé dans
le répertoire CpcAlive.  Si le fichier n'existe pas, la chaîne "exemple.bas" sera
transmise au gestionnaire clavier du Cpc, ce qui débouchera vraisemblablement
sur un message "Syntax error".

exemple à partir de l'interpréteur basic:

mode 2
10 |Input,"FILE_ID.DIZ"
20 line input a$:if a$="" then |STOP:end else goto 20
run

Cet exemple charge le document "FILE_ID.DIZ" jusqu'à ce qu'il rencontre une
ligne vide. La commande |STOP ferme le fichier.

note:   L'ouverture d'un fichier texte ferme définitivement le fichier texte
          précédemment ouvert s'il y en avait un.


- 2 - [commande]
~~~~~~~~~~~~~~~

Les commandes internes de l'émulateur valides à partir de la ligne de
commande du système Dos (ou d'un fichier de commandes CpcAlive - voir
chapitre II paragraphe - 1d -) sont:

CpuFast                    ; vitesse maxi
CpuSlow                   ; vitesse normale (vitesse de l'ordinateur Cpc)
Sleep                        ; mise en veille de l'émulateur         [F11]
Exit                          ; quitter l'émulateur                        [CTRL][F12]
ROM=X                   ; sélectionner ROM X
RAM=X                   ; sélectionner type RAM X
:LLAAAA00DDDD   ; ligne au format intel hex
                                ; pour info:  LL=taille bloc
                                ;                 AAAA=adresse de départ
                                ;                 00 toujours 00
                                ;                 DDDD=datas

exemple à partir de la ligne de commande du Dos:
Sélectionner la rom basic et poker 255 en 0C380h (WIDTH 255), puis sélectionner la
vitesse lente.

! ROM=0 :01C38000FF CpuSlow

(ne pas oublier l'espace entre les commandes)

note: - la ligne de commande est interprétée puis le systéme est lancé.
        - les commandes doivent êtres séparées par un espace.
        - le crc normalement présent dans le standard Intel Hex n'est pas
          obligatoire ici.
        - poker en ram dans les blocs 0,1,2 ou 3 avant l'initialisation du système Cpc est
          inutile puisque celle-ci est effacée au démarrage. (sauf adresses
          0BE00h à 0BFFFh). Pour poker en ram à partir de la ligne de commande
          du Dos, il faut que le système ait été lancé puis mis en veille
          auparavant.
        - CpcAlive force déja le "WIDTH 255" à l'initialisation dans le fichier
          ROM.INI

- 3 - [commande Cpc] = commande Cpc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Les commandes Cpc doivent toujours être placées en dernier dans la ligne de
commande.

ex: ! PRINT"OK"
Lance l'émulateur et passe la commande PRINT"OK" au Cpc, à travers le gestionnaire
clavier du Cpc.

Cas particulier:
Le caractère '|' (obtenu en actionnant en même temp la touche [ALT GR] et
et la touche [6] en haut du clavier) est une commande dos. CpcAlive utilise
donc un caractère de substitution qui est le '§' situé juste à gauche de la
touche [SHIFT DROITE].

ex: ! §DISC
Lance l'émulateur et passe la commande |DISC au Cpc.

Remarque:  Cette touche de substitution sera toujours utilisée dans CpcAlive en
                  raison de sa facilité d'accès. Tu peux donc te servir de ce
"raccourci
                  clavier" à partir de la ligne de commande du basic du Cpc.

Il existe d'autres caractères réservés par Dos comme le '<' ou '>' qui ne
pouront donc pas êtres utilisés comme commande Cpc à partir de la ligne de
commande Dos. Pour plus d'information, lire la documentation du système Dos.

- 4 - [>fichier_de_sortie]
~~~~~~~~~~~~~~~~~~~~~
Par défaut la sortie imprimante du Cpc se fait dans le fichier CPC.PRN situé
dans le répertoire CPCALIVE.
Cette commande redirige cette sortie vers le fichier_de_sortie.
La commande équivalente à partir de l'interpréteur Cpc est la suivante:

|OUTPUT,"fichier_de_sortie"[,@er%]

Le paramètre de retour d'erreur @er% est faculatif. S'il est mis,
la signification des valeurs récupérées dans la variable er% sont:
0 = ok
1 = erreur dans les paramètres
3 = chemin non trouvé
4 = plus de handle disponible
5 = accès refusé
(Ne pas oublier d'initialiser er% au départ du programme ou avant la commande)

exemple à partir de la ligne de commande du dos:

! PRINT#8,"OK" inscrit le mot "OK" dans le fichier Cpc.prn
! PRINT#8,"OK">test.prn inscrit le mot "OK" dans le fichier test.prn

note:   Un seul caractère '>' avant fichier_de_sortie indique au Dos qu'au
          cas ou le nom du fichier_de_sortie existe déjà, ce fichier sera
          recrée vierge avant de recevoir les données. (L'ancien
          fichier_de_sortie du même nom étant effacé sans préavis... prudence).
          Deux caractères '>>' avant fichier_de_sortie indique au Dos qu'il doit
          conserver le fichier et mettre les nouvelles données à suivre. (Il n'existe pas
          pour l'instant de commande équivalente à partir de l'interpréteur basic du Cpc)

exemple à partir de la ligne de commande du dos:

! PRINT#8,"OK1":§Exit>test.prn inscrit le mot "OK1" dans le fichier test.prn
! PRINT#8,"OK2":§Exit>>test.prn inscrit le mot "OK2" à suivre dans le fichier test.prn

Le résultat dans le fichier test.prn donne:
OK1
OK2

Un petit programme qui redirige la sortie CATalogue vers le fichier de sortie:

10 POKE &BB5C,PEEK(&BD2D):POKE &BB5B,PEEK(&BD2C)
20 CAT
30 CALL &BD37:|DISC
RUN

III - Commandes à partir de l'interpréteur basic du CPC:

[CTRL][F10]             = réinit système Cpc (CALL 0)
|CpuFast                    = vitesse maxi
|CpuSlow                   = vitesse normale (vitesse de l'ordinateur Cpc)
|Sleep                        = mise en veille de l'émulateur         [F11]
|Exit                          = quitter l'émulateur                        [CTRL][F12]
|INPUT,"[nom_de_fichier[:X]]"[,@er%]
                                = voir chapitre II paragraphe - 1 -
|STOP                      = voir chapitre II paragraphe - 1e -
|GO,"chaine"[,@er%]
= voir chapitre IV
|OUTPUT,"fichier_de_sortie"[,@er%]
                                = voir chapitre II paragraphe - 4 -
|OUTASCDOS          = voir chapitre V
|OUTASCWIN          = voir chapitre V
|OUTASCOFF           = voir chapitre V
|PRINT,"chaine"        = sort une chaine de caractères vers fichier_de_sortie.
                                   (Commande équivalente à la commande PRINT#8,"chaine";)
|LPRINT,"chaine"     = sort une chaine de caractères vers fichier_de_sortie suivi
                                   d'un retour à la ligne.
                                   (Commande équivalente à la commande PRINT#8,"chaine")
|INK,PEN,R,V,B       = change couleur PEN. Les lettres R,V,B représentent les
                                   composantes Rouge,Vert et Bleu comprises entre 0 et 255.
                                   ex: |INK,0,0,255,0 (change couleur PAPER)
                                   ex: |INK,1,255,0,0 (change couleur PEN 1)
|INKRESTORE         = restore encres originales Cpc.
|OBMP,"nom_de_fichier"[,@er%]
                                = fabrique un fichier image de l'écran Cpc au format BMP
                                   - Mode 0 et Mode 1 uniquement
                                   - voir commande |OUTPUT pour la signification des codes
                                     d'erreurs.

IV- Marqueur :D

Le marqueur :D à la suite du nom de fichier indique à l'émulateur qu'il doit
transmettre
la valeur de chaque octet du fichier ('D'atas) à travers le clavier du Cpc au format décimal.
Cette fonction à été développée pour permettre de traiter aisément les données
d'un fichier
à partir de l'interpréteur basic du Cpc.
Comme exemple, voici un petit programme dont la fonction est de lire quelques
octets du fichier ROM.INI et de les afficher au format hexadécimal.

10 mode 2:window#0,1,80,2,25:window#1,1,80,1,1
20 |Input,"ROM.INI:D"
30 for i=0 to 100
40 input#1,a:Print hex$(a,2)" ";
50 next i
60 |STOP
run

La  commande |GO,"chaine"[,@er%] déplace le pointeur de fichier.
Dans ce cas, "chaine" représente la valeur du déplacement par rapport au début
du fichier.
Le paramètre de retour d'erreur @er% est faculatif. S'il est mis,
la signification des valeurs récupérées dans la variable er% sont:
0 = ok
1 = erreur
(Ne pas oublier d'initialiser er% au départ du programme ou avant la commande)

ex: |GO,"&100"   déplace le pointeur de fichier à la position
&100.
                          La valeur maximale est &FFFFFFFF
                          Cette valeur peut-être aussi écrite en décimal.


V - CARACTèRES ACCENTUéS

Initialisation à partir du Dos pour obtenir un clavier accentué:

! Accent.ini

Attention:  le fichier Accent.ini se termine par la commande |sleep, il faudra
                donc relancer l'émulateur à partir du Dos à la suite de cette
                commande.

Le fichier Accent.ini est un document texte composé de commandes basic
facilement l'intégrables dans les programmes basics.

|OutAscDos et |OutAscWin à partir du Basic Cpc indiquent à l'émulateur qu'il
doit convertir les caractères 192 à 204 (redéfinis dans le fichier ROM.INI)
avant de les diriger vers le fichier_de_sortie:

Pour opérer une conversion texte au format Dos vers le fichier_de_sortie:
|OutAscDos

Pour opérer une conversion texte au format Windows vers le fichier_de_sortie:
|OutAscWin

Pour annuler cette conversion: |OutAscOff (Commande par défaut)
(Utile si l'on utilise le fichier_de_sortie pour autre chose que du texte).

Les caractères sont redéfinis de la façon suivante:
caractère:                ë     ù     û    ô     É    é     è     ê     à    â     ç     î      ï
ascii Cpc redéfini:   192 193 194 195 196 197 198 199 200 201 202 203 204
ascii dos:                137 151 150 147 144 130 138 136 133 131 135 140 139
ascii windows:        235 249 251 244 201 233 232 234 224 226 231 238 239

exemple:
Pour convertir le document "CreaDisc.bas" (qui est un document texte au format
ascii Dos) au format ascii windows, entre la séquence qui suit à partir de la
ligne de commande Dos:

! Accent.ini
!>CreaDisc.win

Puis à partir de l'interpréteur basic du Cpc:

mode 2
|OutAscWin
10 |Input,"CreaDisc.bas"
20 line input a$
30 |Lprint,a$:if a$<>"" then 20
run

Le résultat se trouve dans le fichier CreaDisc.win
après éxécution.
Attention: Seul les caractères redéfinis plus haut sont reconvertis.

VI - PROGRAMMES UTILITAIRES

Un seul programme utilitaire pour l'instant: CreaDisc.bas crée une disquette
virtuelle vierge au format data.

Commande à partir de la ligne de commande dos:


! CreaDisc.bas>nom_disquette

Appel âmes de développeurs
Les personnes qui désirent diffuser leurs programmes pour CpcAlive peuvent me les
mettres dans ma bal:
sylvain.lei@laposte.net
Les programmes seront diffusés soit dans les prochaines versions CpcAlive, soit sur le
site CpcAlive si je les juges intéressants. L
es démonstrations si possible spécifiques à
l'émulateur CpcAlive seront bienvenues.
Les auteurs seront informés des nouvelles versions de CpcAlive. Merci d'avance

VII - EVOLUTION CPCALIVE

V1.07h     05/2005    - palette 262144 couleurs
                                - ajout commandes
|INK,PEN,R,V,B et |INKRESTORE
V1.07g     04/2005    - ajout des fichiers .PIF d'initialisation du systême Dos pour Windows 9X.
V1.07       04/2005    - ajout des fichiers .PIF d'initialisation du systême Dos pour Windows XP.
V1.06       03/2005
   - correction gestion écran.
V1.05       02/2005    - corrections diverses.
V1.04       02/2005    - corrige bug chargement fichiers .dsk (format étendu)
V1.03       01/2005    - corrige bug V1.02 (chargement disquettes virtuelles impossibles
                                  avec les marqueurs :A ou :B)
V1.02       01/2005    - accepte notation avec préfixe "&" pour valeurs hexadécimales .
                                - accepte notation avec préfixe "&X" pour valeurs binaires .
                                - corrige quelque bugs:
                                  *valeurs décimales>9999 acceptées.
                                  *la commande "EndCde" rétablit la configuration mémoire effective
                                   au lancement d'un fichier de commande.
V1.01       01/2005    - corrections CpcAlive.doc chapitre 3 et 4.
                                - corrige quelques bugs.
V1.0        12/2004     - première diffusion

END