*
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. Les 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