Chapitre 5
Les éléments de l'AMSDOS et du CP/M
Partie 1 : AMSDOS
Sujets abordés:
Introduction
AMSDOS est une extension du BASIC AMSTRAD de votre ordinateur, ajoutant des commandes externes supplémentaires et redéfinissant certaines instructions existantes. Les nouvelles commandes externes sont identifiées par le symbole | (barre).
AMSDOS permet à l'utilisateur de changer librement de disquette (à condition toutefois qu'il n'y ait pas de fichiers ouverts en écriture, auquel cas un message d'erreur apparaît).
Le catalogue de la disquette
Chaque disquette est divisée en 2 parties, une pour le catalogue et une pour les données. Le catalogue est la liste des noms de fichiers que contient la disquette, accompagnée d'un 'plan' de leur positionnement sur la disquette. AMSDOS et CP/M peuvent calculer la taille de chaque fichier après consultation de cette position dans le catalogue. Le calcul de l'espace disponible se fait par l'addition des fichiers existants puis la soustraction du résultat de l'espace disponible du total.
Chaque fois qu'un fichier est lu, il y a d'abord examen de sa position dans le catalogue, déterminant son emplacement sur la disquette. Lorsqu'un nouveau fichier est créé, un espace vacant lui est attribué. Une fois effacé, cet espace est libéré. Le catalogue comptabilise par unité de 1K (un kilo-octet) et peut contenir jusqu'à 64 positions différentes. Les longs fichiers sont dotés d'une position pour chaque groupe de 16K utilisé, cette manoeuvre n'apparaissant normalement pas à l'utilisateur.
Changement des disquettes
AMSDOS et CP/M Plus vous permettent de remplacer ou de retirer une disquette à tout moment, en dehors des temps d'accès et si aucun fichier n'est ouvert sur l'unité concernée. Contrairement à CP/M 2.2, AMSDOS autorise cette opération sans procédure d'entrée dans la disquette.
Remplacer une disquette en cours d'écriture risque d'endommager les données qu'elle contient. Lorsque vous remplacez une disquette contenant des fichiers ouverts, ceux-ci sont « abandonnés » dès qu'AMSDOS détecte le remplacement et un message d'erreur s'affiche. Toutes les données à venir sont alors perdues et la dernière position dans le catalogue ne s'inscrit pas sur la disquette. AMSDOS ne détecte le remplacement qu'en lisant le catalogue, c'est-à-dire tous les 16K du fichier (ou lors de toute ouverture ou fermeture d'un fichier). Vous risquez ainsi de perdre 16K de données lorsque vous remplacez une disquette contenant des fichiers ouverts.
Noms et genres des fichiers AMSDOS
Il est d'usage d'ajouter une extension aux noms des fichiers disques. Cette extension, simple convention indiquant le type du fichier, ne joue aucun rôle précis. Certains programmes n'acceptent toutefois un fichier que suivi d'une extension particulière. AMSDOS admet n'importe quel type de nom mais cherche de préférence les fichiers d'un certain type, sauf spécification particulière. (Voir « Les en-têtes des fichiers AMSDOS »).
Construction des noms de fichiers
Le nom est constitué de deux parties séparées par un point, la première partie de 8 lettres maximum et la seconde, de 3. Ainsi, «ROINTIME.DEM>>, «DISC.BAS>> et «DISCKIT.COM>> sont des noms de fichiers corrects.
La deuxième partie représente l'indicateur de type. Les noms de fichiers et leurs indicateurs peuvent être composés d'un mélange de lettres et de nombres mais ne peuvent contenir ni espaces blancs, ni signes de ponctuation. Les indicateurs les plus communs sont:
.<espace> Type non spécifié. Peut être un fichier de données créé par l'instruction OPENOUT « < nomfich > » (nom de fichier) ou un programme BASIC sauvegardé en utilisant une commande AMSDOS du style SAVE « < nomich > »,A.
.BAS Programme BASIC sauvegardé à l'aide de commandes AMSDOS du style SAVE « < nomfich > »,P ou SAVE « < nomfich >.BAS »,A.
.BIN Programme ou zone de mémoire sauvegardée par une commande AMSDOS du style SAVE « < nomfich > »,B (< paramètres binaires> ).
.BAK Ancienne version d'un fichier sauvegardée lors de la configuration d'une nouvelle version par AMSDOS ou un utilitaire. L'utilisateur est ainsi à même de réutiliser l'ancienne version (BAcK-up) si besoin est.
.COM C'est une commande. Tous les utilitaires du CP/M ont cette extension
.SUB Fichier d'instruction du programme SUBMIT sous CP/M.
Les en-têtes des fichiers AMSDOS
AMSDOS dote automatiquement chaque fichier d'un indicateur de type. Si les indicateurs (par défaut) ne vous satisfont pas, vous avez la possibilité d'en spécifier un à votre convenance. L'indicateur de type peut correspondre pour le système à un certain en-tête. Les programmes BASIC AMSDOS, les programmes compilés et les fichiers binaires sont sauvegardés sur disquette avec un en-tète (le même que sur une cassette) permettant à la commande AMSDOS :
LOAD «<nomfich>»
...de les reconnaître et d'agir en conséquence. Si LOAD ne trouve pas d'en-tète, il considère avoir affaire à un fichier en codes ASCII.
Lors du chargement d'un fichier dépourvu d'indicateur de type, la commande LOAD AMSDOS, indépendamment du contenu de l'en-tête, cherche d'abord ce fichier sous le type
.<espace>
...puis, si elle ne trouve rien:
.BAS
...et enfin
.BIN
L'utilisateur a ainsi le loisir d'abréger ses noms de fichiers en omettant, le plus souvent, de spécifier le type.
Un fichier de données sur disquette rempli après ouverture à l'aide de la commande OPENOUT, n'aura pas d'en-tête, et son contenu, venu des commandes BASIC WRITE, PRINT. LIST, sera constitué de codes ASCII. En l'absence d'indicateur, la commande OPENIN cherchera un fichier de ce type.
Noms de fichiers avec deux unités
Dans le cas d'un système à deux unités de diquettes, une FD-1 étant connectée à l'ordinateur, les fichiers peuvent se trouver sur l'une ou l'autre des deux unités. L'ordinateur n'allant pas chercher sur les deux, vous devrez spécifier l'unité concernée. Pour cela, vous disposez soit de |A, soit de |B, soit encore de |DRIVE suivi d'un nom de fichier normal. Vous pouvez supplanter le choix de l'unité par défaut en adjoignant un préfixe (A: ou B:) au nom.
Ainsi :
|BSAVE "PROG.BAS"
|A
...et :
|ASAVE "B:PROG.BAS"
...sauvegardent le programme sur l'unité B.
De même, vous pouvez supplanter l'affectation numéro USER (les numéros d'utilisation permettent le découpage du répertoire) par défaut en spécifiant un numéro d'utilisateur. compris entre 0 et 15, qui servira de préfixe au nom de fichier. Ainsi, les commandes:
LOAD "15:PROG.BAS"
...et :
SAVE "15:PROG.PAS"
...chargent et sauvegardent le programme sur la section de la disquette affectée à l'utilisateur 15. quel que soit le numéro par défaut (voir commande , USER, dans la suite du manuel).
Enfin, il est possible de supplanter à la fois la valeur par défaut de l'utilisateur (USER) et celle de l'unité (DRIVE) (dans cet ordre) en les indiquant dans le préfixe du nom de fichier, comme par exemple :
RUN "15B:PROG.BAS"
Les jokers
On a souvent besoin d'opérer (copie, effacement, etc.) sur plusieurs fichiers à la fois. Lorsqu'un nom de fichier est spécifié pour telle ou telle opération, le système recherche le nom donné dans le catalogue. Il est possible dans certains cas de demander à ce que l'opération soit effectuée sur plusieurs fichiers ayant des lettres communes, les autres lettres étant alors remplacées par des ? (signifiant 'ne pas tenir compte de'). On peut abréger une série de ? en la remplaçant par le symbole * Ainsi, FRED.* est le raccourci de FRED.??? et F*,BAS celui de F???????.BAS.
Dans cet esprit, *.* signifie 'n'importe quel fichier'. Exemples:
|
Catalogue |
Convient à *.BAS |
Convient à FRED?.BAS |
Convient à F*.BAS |
|
BERT.BAS |
BERT.BAS |
||
|
FRED1.BAS |
FRED1.BAS |
FRED1.BAS |
FRED1.BAS |
|
FRED2.BAS |
FRED2.BAS |
FRED.BAS |
FRED2.BAS |
|
FRED3.BAK |
FRED3.BAK |
||
|
FRED3.BAS |
FRED3.BAS |
FRED3.BAS |
FRED3.BAS |
|
FINAL.BAS |
FINAL.BAS |
FINAL.BAS |
Exemples d'utilisation de commandes d'AMSDOS dans un programme
Pour vous aider a bien comprendre les commandes d'AMSDOS. nous vous conseillons de bien regarder ces exemples, et même de revenir sur certaines parties au moment ou nous nous y référerons dans la suite du chapitre. Ne faites pas fonctionner ces programmes avec l'original de vos disquettes système CP/M Utilizez une disquette de travail ou une copie sur lesquelles ils pourront écrire en toute sécurité.
Sauvegarde de variables et recopie d'écran
Le programme ci-dessous inscrit des données sur la disquette ; vous devez donc insérer dans l'unité une disquette vierge ou une disquette de travail Le programme dessine le chapeau anglais et recopie la totalité de l'écran sur la disquette.
10 dumpfile$="flagdump.srn"20 MODE 1 : BORDER 0
30 DIM colour(2)
40 FOR i=0 TO 2
50 READ colour(1): REM charge les No de couleurs en <Data>
60 INK i,colour(1)
70 NEXT
80 ON ERROR GOTO 40
90 OPENIN "param.dat" 'teste si le fichier existe
100 CLOSEIN:ON ERROR GOTO 0
110 1F errnum=32 AND DERR=146 THEN CLS:GOTO 160 ' le fichier n'existe pas
120 CURSOR 1:PRINT Do you want to overwrite old file? Y/N "
130 a$=INKEY$:ON INSTR(" YN",UPER$(a$)) GOTO 130,150,140:GOTO 110
40 PRINT a$: PRlNT "Program abandoned":END*
150 PRINT a$:CURSOR 0
160 OPENOUT "param.dat "
170 WRITE. #9,dumpfile$,1: REM sauvegarde 1e nom du fichier et son mode
180 FOR i=0 TO 2
190 WRITE #9,colour(i): REM sauvegarde les couleurs
200 NEXT i
210 CLOSEOUT
220 CLS
230 gp=1:GRAPHICS PEN gp:w=125
240 x=65:a=240:y=400:b=-150:GOSUB 400
250 y=0: b=150:GOSUB 400
260 x=575:a=-240:y=400:b=-150:GOSUB 400
270 v=0: b= 1 ;,d: GOSUB 400
280 gp=2: GRAPHICS PEN gp : w=40
290 a=240:x=-40:y=400:b=-150:GOSUB 400
300 x=0:y=0:b=150:GOSUB 400
310 a=-240:x=640:y=0:b=150:GOSUB 400
320 x=600:y=400:b=-150:GOSUB 400
330 ORIGIN 0,0,256,380,0,400:CLG 1
340 ORIGIN 0,0,0,640,150,250:CLG 1
350 ORIGIN 0,0,280,352,0,400:CLG 2
360 ORIGIN 0,0,0,640,168,230:CLG 2
370 SAVE dumpfile$,b,&C000,&4000
380 DATA 2,26,6
390 END
400 MOVE x,y:DRAWR a,b:DRAWR w,0:DRAWR -a,-b
410 MOVE x+a/2+w/2,y+b/2:FILL gp
420 RETURN
430 errnum=ERR:RESUME NEXT
run
Le, indicateurs .DAT et .SRN n'ont d'autre rôle que de nous rappeler ce que contient le fichier. Le fichier PARAM.DAT contient des paramètres codé, en ASCII, donc sans entête, alors que FLAGDUMP.SRN est un fichier AMSDOS en code binaire, avec en-tête.
Vous remarquerez que le programme essaie d'abord de lire le fichier PARAM.DAT afin de s'assurer qu'il existe avant d'y inscrire des données. S'il n'existe pas. le BASIC signale une erreur qui est capturée par le programme et l'exécution se déroule sans interruption. S'il existe, le programme vous propose d'écraser le fichier existant.
Les particularités de l'écran que l'on va copier. (son mode, la palette de couleurs et le nom du fichier contenant les données) sont copiées sur un fchier. Voici qui illustre l'utilisation d'un fichier de données pour la sauvegarde WRITE des variables dans un programme (dumpfile$) et de constantes (1). pour réutilisation dans un autre programme.
Restitution d'écran
Cet exemple (EX2.BAS) est le programme type de restitution d'une copie d'écran faisant appel au fichier des paramètres pour définir son action. Vous remarquerez la façon d'appeler (INPUT) les variables se trouvant dans un Fichier avec variation automatique de longueur de fichier par la fonction EOF (End Of File = Fin de fichier). Il est important de sauvegarder les paramètres de l'écran, pour éliminer tout risque de brouillage des résultats. La commande MODE et le blocage du défilement continu de l'image accomplissent cette sauvegarde.
10 DIM colour(15): REM provision for 16 colours20 OPENIN "param.dat"
30 INPUT #9,filename$,screenmode 40 i=0
50 WHILE NOT EOF
60 INPUT #9,colour(i)
70 INK i,colour(i)
80 i=i+1
90 WEND
100 CLOSEIN
110 MODE screenmode:BORDER 0
120 LOAD filename$
run
Sommaire des commandes externes d'AMSDOS
|A
|A
COMMANDE: Dirige les entrées/sorties vers l'unité A. Equivalent à |DRIVE avec A pour paramètre. (L'unité intégrée est l'unité A.)
|B
|B
COMMANDE: Dirige les entrées/sorties vers l'unité B. Équivaut à |DRIVE avec B pour paramètre. (L'unité intégrée est l'unité A.)
|CPM
|CPM
COMMANDE : Charge et initialise le système d'exploitation contenu dans la disquette système. Les systèmes fournis avec l'ordinateur sont les CP/M 2.2 et CP/M Plus.
Cette opération échoue si l'unité ne contient pas de disquette système. La copie de la face 1 charge CP/M Plus et celle de la face 4, CP/M 2.2.
|DIR
|DIR [,<chaine alphanumérique>]
|DIR,"*.BAS"
COMMANDE: Affiche le catalogue de la disquette (façon CP/M) et l'espace disponible. L'absence de la chaîne équivaut à *.*.
|DISC
|DISC
COMMANDE: Équivaut aux commandes |DISC.IN et |DISC.OUT réunies.
|DISC.IN
|DISC. IN
COMMANDE: Force la lecture des données de la disquette.
|DISC.OUT
|DISC.OUT
COMMANDÉ: Force l'écriture sur la disquette.
|DRIVE
|DRIVE,<chaine alphanumérique>
|DRIVE,"A"
COMMANDE :Désigne une des unités. Cette commande avorte si AMSDOS est incapable de lire la disquette dans l'unité désignée.
|ERA
|ERA,<chaine alphanumérique>
|ERA,"$.BAK"
COMMANDE: Efface tous les fichiers qui correspondent à ce nom de fichier et ne sont pas en Écriture seulement. Les jockers sont permis.
|REN
|REN,<chaine alphanumérique>,<chaîne alphanumérique>
|REN,"NOUVEAU.BAS","ANCIEN. BAS"
COMMANDE : Donne un nouveau nom de fichier. Il ne doit pas exister de fichier portant déjà ce nom. Les jockers ne sont pas autorisés.
Le paramètre USER (voir USER) peut être spécifié dans la chaîne alphanumérique> pour supplanter toutes les valeurs par défaut. Ainsi, la commande |REN,« 0:NOUVEAU.BAS ».« 15:ANCIEN.BAS » rebaptise le fichier de l'utilisateur 15, « ANCIEN.BAS ». et l'appelle « NOUVEAU.BAS » en l'affectant à l'utilisateur 0, sans tenir compte des valeurs par défaut ou définies précédemment.
|TAPE
|TAPE
COMMANDE: Équivaut aux commandes |TAPE.IN et |TAPE.OUT réunies. Utilisée dans le cas où un lecteur de cassettes est raccordé à l'ordinateur.
|TAPE.IN
|TAPE.IN
COMMANDE: Lit des données sur un lecteur de cassettes connecté à l'ordinateur.
|TAPE.OUT
|TAPE.OUT
COMMANDE :Envoie des données vers un lecteur de cassettes connecté à l'ordinateur.
|USER
|USER,< nombre entier>
|USER,3
COMMANDE : Détermine la section du catalogue (comprise entre 0 et 15) sur laquelle vont s'effectuer les accès disque.
Un fichier peut être transféré d'un numéro d'utilisateur à l'autre, à l'aide d'un |REN. Ainsi, |REN,«15:EXEMPLE.BAS »,«0:EXEMPLE.BAS » transfère un fichier de l'utilisateur 0 à l'utilisateur 15, sans modifier le nom du fichier (EXEMPLE.BAS).
Copie de fichiers entre disquettes
Fichiers AMSDOS à en-tête
II est possible de copier ces fichiers sous CP/ M, en utilisant PIP (voir ce chapitre, partie 2). N'importe quel fichier créé sous AMSDOS comporte une zone d'en-tête (voir « Les entêtes d'AMSDOS ») et peut être copié intégralement, de disquette à disquette et de cassette à disquette - toutefois, son contenu est en général incompréhensible par CP/M.
Fichiers ASCII
Les fichiers créés sous AMSDOS sans zone d'en-tête sont généralement écrits en codes ASCII et sont compris par AMSDOS et CP/M. Ils peuvent donc s'échanger librement entre AMSDOS et CP/M.
Fichiers en lecture seulement
CP/M permet de limiter l'accès à un fichier en lecture seulement, et/ou selon son état dans le catalogue. De tels attributs sont accordés et supprimés par CP/M tout en étant respectés par AMSDOS. Pour plus de détails, voir la partie 2 de ce chapitre (utilitaire SET).
Copie de fichiers entre disquettes et cassettes
Le CP/M Plus ne permet pas la copie de fichiers entre disquettes et cassettes. Vous devez pour cela faire appel au CP/M 2.2 (face 4 d'une des disquettes système). Les utilitaires CLOAD et SAVE du CP/M 2.2 vous permettront d'effectuer ce type de copie (reportezvous aux tableaux pour leur utilisation).
Les procédures de copie de fichiers
Les tableaux qui suivent montrent la façon de copier n'importe quel fichier entre disquettes et cassettes (le cas échéant). Ils sont destinés à un système à une seule unité. Il est absolument impossible de copier un programme BASIC protégé ou un fichier binaire (un jeu écrit en langage machine, par exemple) en provenance et à destination d'une cassette si les adresses de chargement sont inconnues. Vous trouverez plus de détails sur PIP, CLOAD et CSAVE à la partie 2 de ce chapitre.
Voir les tableaux des deux pages suivantes.
|
COPIE DE: |
|||
|
COPIE SUR: |
BASIC AMSTRAD sur cassette* |
Donnees ASCII sur cassette* |
Binaire sur cassette* |
|
BASIC AMSTRAD |
|TAPE LOAD "FICHIER" <changer cassette> SAVE "FICHIER" |DISC |
||
|
Binaire sur cassette* |
H=HIMEM |TAPE MEMORY<D>-1 LOAD "FICHIER" <changer cassette> SAVE "FICHIER",B,<d>,<l>[,r] |DISC MEMORY H <note> |
||
|
ASCII sur cassette* |
|TAPE LOAD "FICHIER" <changer cassette> SAVE "FICHIER",A |DISC |
insérez la disquette CP/M 2.2 |CPM CLOAD "FICHIER",TEMP <changer cassette> CSAVE TEMP,"FICHIER" ERA TEMP AMSDOS <note 1> |
|
|
BASIC AMSTRAD sur disquette |
|TAPE LOAD "FICHIER" |DISC SAVE "FICHIER" |
||
|
ASCII sur disquette |
|TAPE LOAD "FICHIER" |DISC SAVE "FICHIER",A |
inserez la disquette CP/M 2.2 |CPM CLOAD "FICHIER" AMSDOS |
|
|
Binaire sur disquette |
H=HIMEM |TAPE MEMORY <d>-1 LOAD "FICHIER" |DISC SAVE "FICHIER",B,<d>,<l><[,<r>] MEMORY H <note 2> |
|
COPIE DE: |
||||
|
COPIE SUR: |
BASIC AMSTRAD sur disquette* |
Donnees ASCII sur disquette |
Binaire AMSDOS sur disquette |
Autres sur disquette |
|
BASIC AMSTRAD SUR CASSETTE* |
LOAD "FICHIER" |TAPE SAVE "FICHIER" |DISC |
|||
|
Binaire sur cassette |
H=HIMEM MEMORY <d>-1 LOAD "FICHIER" |TAPE SAVE "FICHIER",B,<d>,<l>,[,r] |DISC MEMORY <note 2> |
|||
|
ASCII sur cassette |
LOAD "FICHIER" |TAPE SAVE "FICHIER" |DISC ou inserez disq. CPM/2.2 |CPM CSAVE FICHIER AMSDOS |
inserez la disquette CP/M 2.2 |CPM CSAVE FICHIER AMSDOS |
|CPM CSAVE FICHIER AMSDOS <note 3> |
|
|
BASIC AMSTRAD sur disquette |
LOAD "FICHIER" <changer disquette> SAVE "FICHIER" ou inserez disq. CP/M PLUS |CPM PIP B:=FICHIER AMSDOS |
|||
|
ASCII sur disquette |
LOAD "FICHIER" <changer disq> SAVE "FICHIER",A |
inserez la disquette CP/M PLUS |CPM PIP B:=FICHIER AMSDOS |
||
|
AMSDOS Binaire* |
inserez disq. CP/M PLUS |CPM PIP B:=FICHIER AMSDOS |
|||
|
Autres qsur disquette |
ins. disq. CP/M PLUS |CPM PIP B:=FICHIER AMSDOS |
* Fichier avec en-tête
<note 1> : requiert de l'espace disque libre pour y loger le programme de temporisation «TEMP».
<note 2> <d> est l'adresse de départ du dossier, <l> sa longueur et <r> l'adresse de lancement facultative.
<note 3> : la copie est inutilisable directement par le BASIC. Cependant cette option est un moyen très rentable de transfert et de sauvegarde de fichiers. Le fichier peut être ensuite récupéré par la disquette au moyen de CLOAD «FICHIER» (sous CP/M 2.2).
Guide des messages d'erreur d'AMSDOS
Lorsque, pour une raison quelconque, AMSDOS ne peut exécuter une commande, il affiche un message d'erreur à l'écran. En cas de problème matériel, le message est suivi de la question
Retry, Ignore or Cancel ?
R : la commande est reexécutée après que l'utilisateur ait pallié au problème.
I : l'ordinateur continue son travail comme si de rien n'était, amenant souvent des résultats inattendus et probablement erronés.
C : l'opération est annulée, ce qui entraîne souvent un autre message d'erreur.
Signification des messages
Unknown command
La commande n'a pas été écrite correctement.
Bad command
La commande ne peut être exécutée. Erreur de syntaxe ou mauvaise configuration matérielle.
<nomfich> already exists
L'utilisateur essaye de renommer un fichier avec un nom déjà utilisé sur la disquette
<nomfich> not found
Le fichier n'existe pas.
Drive <unité> : directory full
Plus de position dans le catalogue.
Drive <unité> : disc full
Plus de place sur la disquette.
Drive <unité> : disc changed, closing <nomfich>
La disquette a été enlevée avec des fichiers laissés ouverts.
<nomfich> is read only
Le fichier est limité en lecture et ne peut être traité. Cet attribut est accordé ou supprimé sous CP/M uniquement.
Drive <unité> : disc missing
Disquette absente du lecteur, ou mal mise en place (ne tournant done pas). Il est alors recommandé de l'éjecter et de la remettre à nouveau, puis de taper R.
Drive <unité> : disc is write protected
On a essayé d'écrire sur une disquette dont le trou de protection en écriture est ouvert. La sortir, obturer le trou de protection, la réinsérer et taper R.
Drive <unité> : read fail
Problème matériel. Il est recommandé d'éjecter la disquette puis de la remettre en place. Taper R.
Drive <unité> : write fail
Comme précédemment.
Failed to load CP/M
Erreur de lecture au chargement du CP/M (|CPM) ou disquette système invalide. Ou bien votre disquette ne contient pas de CP/M. Si vous tenter de charger le CP/M à partir d'une disquette de données, vous obtenez le message « read fail ».
CP/M Plus
Sujets abordés:
Le CP/M Plus est fourni avec le 6128. C'est un système d'exploitation de disquettes qui vous permettra d'utiliser toute la puissance de votre ordinateur. Ses I28Ko de mémoire RAM sont pleinement exploités, laissant plus de 61 Ko à l'utilisateur pour ses programmes. CP/M intègre un accès sélectif aux fichiers de données et le CP/M 6128 apporte les avantage, d'un émulateur de terminaux (postes VDU) perfectionné. Implanté sur de nombreux ordinateurs, CP/M a suscité le développement de milliers de logiciels d'application et accumulé une expérience et des connaissances énormes, sur lesquelles vous pourrez vous appuyer.
Vous trouveraz une documentation complète sur le CP/M Plus, des indications pour l'écriture de vos propres programmes et des informations concernant l'implantation CP/M Plus d'AMSTRAD, dans le guide de CP/M Plus (SOFT 971).
Introduction
Le système d'exploitation CP/M sert d'interface avec le mécanisme de l'unité, vous permettant de communiquer avec l'ordinateur et de manipuler ses fichiers et périphériques.
Des commandes spéciales (et des programmes sur disquette appelés utilitaires) vous aident à réaliser votre principale tâche : l'exploitation de vos programmes d'applications avec vos propres données.
Il va sans dire que vous pouvez devenir expert en matière d'utilisation du CP/M et de fonctionnement des différents utilitaires: cela vous sortira d'affaire plus d'une fois. Cependant, la plupart des utilisateurs peuvent se contenter des connaissances de base permettant de démarrer. La suite de ce chapitre va leur permettre de découvrir les fonctions du système et tous se avantages, sans que l'essentiel soit enseveli sous un excès de détails.
Le mode direct est l'intermédiaire principal à votre disposition. On l'identifie par la présence des indicateurs d'attente A> ou B> à l'écran. Certaines commandes, dites résidentes, sont accessibles directement, à l'inverse de la plupart des fonctions, obtenues en chargeant en mémoire des programmes, dits transitoires, pour le temps de leur utilisation uniquement.
A côté des messages d'erreur standard du CP/M, le système génère ses propres messages. Ils se distinguent des autres car ils apparaissent dans la bannière de l'écran.
CP/M Plus sur la disquette
La plus grande partie du CP/M Plus réside dans un fichier spécial de type «.EMS*51» qui se trouve sur la face 1 d'une des disquettes système. Le chargement en mémoire du CP/M à partir de ce fichier s'effectue en deux temps.
La commande AMSDOS |CPM charge d'abord le premier secteur de la piste 0. Ce secteur de la disquette systeme contient un programme qui charge le fichier EMS en mémoire. Le reste des pistes système demeure inutilisé.
Création de fichiers PROFILE
Lors du chargement du CPIM Plus, les commandes du fichier PROFILE.SUB (s'il se trouve sur la disquette) sont exécutées. Cette particularité permet de redéfinir le clavier, personnaliser le mode d'affichage de l'éeran, initialiser l'imprimante et même effeetuer le lancement automatique d'un programme d'application. Nous avons vu au chapitre 4 comment renommer le fiehier PROFILE résidant sur la face 1 de la disquette système afin qu'il soit exécuté lors du chargement.
Pendant l'exécution du fichier PROFILE, un petit fiehier provisoire est ouvert sur la disquette qui ne doit donc pas avoir été protégé en écriture. C'est pourquoi la disquette système ne peut pas contenir de fichier PROFILE exécutable.
Les fichiers PROFILE peuvent s'obtenir à l'aide d'un traitement de texte, d'un éditeur de texte (ED.COM, par exemple) ou même à partir du BASIC. Ainsi, le petit programme en BASIC ci-dessous pourrait générer le fichier PROFILE.SUB.
10 OPENOUT "PROFILE.SUB"20 PRINT #9,"SETKEYS KEYS.CCP"
30 PRINT #9,"LANGUAGE 3"
40 CLOSEOUT
Codes de contrôle de la console
L'univers CP/M, c'est aussi un ensemble de codes clavier spéciaux pour contrôler le déroulement des programmes. Ces codes remplacent le [ESC] du BASIC et les touches de déplacement du curseur du BASIC AMSTRAD. Les codes de contrôle ei-dessous sont affectés après lancement de la commande :
Les codes de eontrôle ei-dessous sont affectés après lancement de la commande :
SETKEYS KEYS.CCP
Le programme transitoire SETKEYS.COM et le fichier de commande KEYS.CCP se trouvent sur la face I d'une des disquettes système.
|
Code de contrôle |
Touche |
Action |
|
[CONTROL]A |
ï |
Déplace le curseur d'un caractère vers la gauche |
|
[CONTROL]B |
[CONTROL]ï ou [CONTROL]ð |
Déplace le curseur jusqu'au début de la ligne ou, s'il s'y trouve déjà, en fin de ligne. |
|
[CONTROL]C |
[CONTROL][ESC] |
Abandon |
|
[CONTROL]E |
[CONTROL][RETURN] |
Retour chariot physique |
|
[CONTROL]F |
ð |
Déplace le curseur d'un caractère vers la droite |
|
[CONTROL]G |
[CLR] |
Efface le caractère situé sous le courseur |
|
[CONTROL]H |
[DEL] |
Effacement du caractère précédent le curseur |
|
[CONTROL]I |
[TAB] |
Déplace le curseur jusqu'à la tabulation suivante |
|
[CONTROL]J |
Validation de la ligne de commande |
|
|
[CONTROL]K |
[CONTROL][CLR] |
Efface les caractères jusqu'à la fin de la ligne |
|
[CONTROL]M |
[RETURN] ou [ENTER] |
Validation de la ligne de commande |
|
[CONTROL]P |
Basculement en mode copie d'écran: toute sortie vers l'écran sera automatiquement imprimée; une deuxième commande identique permet de revenir au mode normal |
|
|
[CONTROL]Q |
Revalide la sortie des données vers l'écran |
|
|
[CONTROL]R |
[CONTROL][ENTER] |
Retape une ligne de commande |
|
[CONTROL]S |
[ESC] |
Suspend momentanément la sortie des données vers l'écran en provenance du CP/M. Voir [CONTROL]Q pour reprendre |
|
[CONTROL]U |
Supprime une ligne |
|
|
[CONTROL]W |
[COPY] |
Rappelle la ligne de commande la plus récement tapée |
|
[CONTROL]X |
[CONTROL][DEL] |
Efface le début de la ligne jusqu'au curseur |
|
[CONTROL]Z |
Fin de texte |
Les noms de fichiers
Beaucoup de commandes ont pour paramètres des noms de fichiers contenant, le cas échéant, des jockers (voir le paragraphe « jockers » dans la partie 1 du chapitre). Tous les noms de fichiers sont automatiquement mis en majuscules.
Les commandes du mode direct ne requièrent pas le placement de guillemets de part et d'autre du nom de fichier.
Rappelez-vous que les noms de fichiers peuvent être précédés de A: ou B: pour demander à CP/M d'utiliser une unité particulière.
Voici la syntaxe d'une commande CP/M type:
TYPE KEYS.CCP
TYPE est la fonction requise : «affichage à l'écran», et KEYS.CCP est le nom du fichier que l'on désire voir apparaître.
L'aiguillage des unités
Il est possible d'aiguiller le système de sélection des unités vers A ou B en tapant A: ou B: après le symbole B> ou A> (qui indique l'unité en cours). L'ajout du préfixe A: ou B: au nom de fichier écrase la valeur de l'unité par défaut mais ne la redéfinit pas.
Les commandes du mode direct
Ces commandes peuvent être tapées à l'apparition des symboles A> ou B> . Elles peuvent être abrégées. Les fonctions ci-dessous sont intégrées, mais il existe plusieurs commandes transitoires, plus complexes, portant le même nom.
La commande DIR
DIR affiche le catalogue de la disquette. Les fichiers apparaissent selon leur ordre d'entrée sur le répertoire de la disquette. Les jockers sont permis. Les fichiers à attribut « SYS » ne sont pas permis.
DIR donne la liste de tous les fichiers de l'unité par défaut
DIR B: donne la liste de tous les fichiers de l'unité B
DIR *.BAS donne la liste des fichiers de type .BAS
DIR B:*.BAS donne la liste des fichiers de type .BAS de l'unité B
DIR PIP.COM seul PIP.COM apparaît sur la liste (s'il existe)
La commande DIRS ou DIRSYS
DIRSYS, ou DIRS, rie liste que les fichiers du catalogue possédant «SYS» comme attribut. A cette particularité près, cette commande fonctionne comme la commande DIR. L'attribut SYS est décrit plus loin.
La commande ERA ou ERASE
ERA vient de l'anglais ERAse qui veut dire effacer. Elle sert donc à effacer un ou plusieurs fichiers du catalogue. En fait, la position sur le répertoire est effacée, les données restant en place jusqu'à ce qu'un autre fichier ne les recouvre. Elles ne peuvent toutefois jamais être récupérées. Bien que les jockers soient permis, la spécification de *.* provoque l'affichage d'une demande de confirmation avant que ERA n'efface effectivement l'ensemble des fichiers. ERA ne mentionne pas le nom des fichiers qu'elle efface. Si l'un des fichiers à effacer est de type 'lecture/seulement', (voir STAT plus loin), la commande n'aboutit pas.
ERA PIP.COM effacera le fichier PIP.COM
ERA B:PIP.COM effacera le fichier PIP.COM de l'unité B
ERA *.BAS effacera tous les fichiers de type BAS
La commande REN ou RENAME
La eommande REN vous permet de changer le nom (RENommer) d'un fichier existant. Le nouveau nom est spécifié en premier suivi du signe égal (=), puis du nom du fichier à renommer Si le nouveau nom existe déjà sur la disquette, un message d'erreur s'affiche.
Les noms de fichiers comportant des jokers ne rentrent pas dans le cadre de eette eommande intégrée , il faut donc faire appel au programme transitoire RENAME.COM.
REN NOUVNOM.BAS=ANCNOM.BAS donne au fichier ANCNOM.BAS le nouveau nom NOUVNOM.BAS
REN B:NOUVNOM.BAS=ANCNOM.BAS donne au fiehier ANCNOM.BAS le nouveau nom NOUVNOM.BAS, sur B.
La commande TYPE ou TYP
La commande TYPE (imprimer) demande que le fichier spécifié défile à l'écran. Si ce fichier n'est pas de type ASCII, des choses imprévisibles risquent d'apparaitre à l'écran.
TYPE KEYS.CCP
..affiche le fichier KEYS.CCP.
La commande USER, ou USE
USER change le numéro d'utilisateur courant. CP/M Plus s'initialise avec le numéro d'utilisateur courant 0. Vous ne pouvez accéder qu'aux fichiers identifiés par le numéro d'utilisateur courant. ce qui permet de partager le catalogue.
Il est possible d'accéder à un fichier de l'utilisateur 0 ayant « SYS » comme attribut à partir de tous les autres numéros d'utilisateur. Cette puissante fonction permet de rendre les utilitaires et les programmes d'applications accessibles à tous les utilisateurs sans avoir à les copier dans chaque zone utilisateur.
USER 3
définit l'utilisateur courant numéro 3.
Les commandes transitoires
Pour réaliser sur vos fichiers des opérations un peu plus sophistiquées qu'avec le mode direct, vous pouvez faire appel à l'un des nombreux programmes utilitaires fournis avec le CP/M. Vous les appelez simplement en tapant leur nom, suivi parfois d'un nom de fichier et ou d'un ou plusieurs paramètres. Vous avez déjà probablement utilisé DISCKIT3.
Nous avons regroupé ces commandes par catégories. Vous en trouverez une documentation complète dans le Guide du CP/M Plus.
Les commandes DISCKIT3, SETKEYS, SETLST, SETSIO, PALETTE, LANGUAGE et AMSDOS, ainsi que les programmes de gestion d'écran GSX et I'tnstallation de LOGO3, propres à AMSTRAD, ne fonctionnent que sur son système et ne peuvent être employées sur les autres systèmes CP/M.
Vous pouvez entrer plusieurs commandes sur une même ligne en séparant les commandes par un point d'exclamation, Éxemple :
LANGUAGE 3!SETKEYS KEYS.WP
La gestion des périphériques
DISCKIT3 formate, copie et vérifie les disquettes. Il est plus rapide de formater pendant la copie que d'effectuer les deux opérations en deux temps. Des menus vous indiquent les touches à activer (essentiellement des touches de fonction). Les disquettes commercialisées sont similaires aux disquettes système sinon qu'elles sont adaptées à la distribution de logiciels ; toutefois, les disquettes formatées pour le stockage des données sont peut-être plus adéquates pour travailler sous CP/M Plus.
AVERTISSEMENT
Le brevet de votre disquette CP/M (qui possède un numéro de série codé électroniquement) vous permet de l'utiliser sur un seul micro-ordinateur. Ceci signifie en particulier qu'il vous est interdit de faire don d'une copie de votre CP/M (copie qui posséderait alors votre numéro de série). Etant donné que chacune des copies de la face 1 des disquettes système contient votre CP/M (dans le fichier .EMS), il vous est interdit de vendre ou échanger toute disquette contenant ce fichier ou de vous en séparer de quelque façon que ce soit.
Jeux de caractères
Le CPC6128 possède un jeu complet de caractères internationaux. La commande LANGUAGE modifie certains caractères pour permettre à des logiciels peu perfectionnés d'afficher à l'écran d'autres caractères et des lettres accentuées. Pour plus de détails. consultez la partie 16 du chapitre « Pour information ».
La commande:
LANGUAGE 3
permet d'installer le jeu de caractères britannique, remplaçant le signe # par £ (le jeu américain est le jeu par défaut).
Les couleurs
Sous CP/M Plus, les couleurs par défaut du 6128 (avec moniteur couleur) affichent des caractères en blanc brillant sur fond bleu. Vous pouvez les modifier par la commande PALETTE, qui possède plusieurs paramètres, un pour chaque encre : l'encre 0 inclut le fond et la bordure de l'écran et l'encre 1 définit la couleur du texte. Chaque couleur est codée par un nombre compris entre 0 et 63. Sur un moniteur monochrome, ce numéro définit l'intensité d'affichage.
Vous pouvez spécifier n'importe quel numéro d'encre compris entre 1 et 16, mais seules les deux premières encres sont visibles en mode 80 colonnes.
La commande:
PALETTE 63,1
inverse les spécifications normales des encres 0 et 1, changeant le fond en blanc brillant (63) et le texte en bleu (1).
Pour sélectionner les couleurs (ou leurs intensités), aidez-vous du tableau de la page suivante. Vous pouvez au choix utiliser la représentation décimale ou hexadécimale.
|
Couleur |
Code Hexadécimal |
Code Décimal |
Couleur |
Code Hexadécimal |
Code décimal |
|
Noir |
&00 |
0 |
Bleu pastel |
&2B |
43 |
|
Bleu |
&02 |
2 |
Orange |
&2C |
44 |
|
Bleu vif |
&03 |
3 |
Rose |
&2E |
46 |
|
Rouge |
&08 |
8 |
Magenta pastel |
&2F |
47 |
|
Magenta |
&0A |
10 |
Vert vif |
&30 |
48 |
|
Mauve |
&0B |
11 |
Vert marin |
&32 |
50 |
|
Rouge vif |
&0C |
12 |
Turquoise vif |
&33 |
51 |
|
Violet |
&0E |
14 |
Vert citron |
&38 |
56 |
|
Magenta vif |
&0F |
15 |
Vert pastel |
&3A |
58 |
|
Vert |
&20 |
32 |
Turquoise pastel |
&3B |
59 |
|
Turquoise |
&22 |
34 |
Jaune vif |
&3C |
60 |
|
Bleu ciel |
&23 |
35 |
Jaune pastel |
&3E |
62 |
|
Jaune |
&28 |
40 |
Blanc brillant |
&3F |
63 |
|
Blanc |
&2A |
42 |
Le clavier
Vous pouvez modifier les codes générés par le clavier à l'aide de la commande SETKEYS. Ceci permet d'affecter les codes adéquats aux touches physiques ou logiques. Les codes doivent être inscrits dans un fichier dont le nom est ensuite passé en paramètre dans la commande SETKEYS. Ce fichier de commande peut être créé par un éditeur de texte, PIP, ou même à partir du BASIC. Par exemple :
SETKEYS KEYS.TST
où le fichier KEYS.TST contient
E &8C « DIR áM » touche logique 12
8 N S C «áH » espace arrière=[CONTROL]H, 08 ASCII
Ceci modifie la touche logique [CONTROL][ENTER] (code &8C). qui devient DIR[RETURN], et transforme la touche de retour arrière du curseur ï (touche numérique 8) en espace arrière.
Les fichiers standard du 6128 sont KEYS.CCP pour les commandes CP/M, KEYS.DRL pour le Dr. LOGO (face 3 de la disquette système) et KEYS.WP qui convient à de nombreux traitements de texte.
Les imprimantes
Les imprimantes peuvent être initialisées par la commande:
SETLST <nomfch>
le « nomfich » contient la ou les chaînes à envoyer à l'imprimante. Comme avec le fichier de commande pour SETKEYS, les codes de contrôle peuvent être représentés par :
á<caractère>
ou
á'<valeur du caractère>'
ou bien
á'<nom du code de contrôle>'
Les noms des codes de contrôle sont ESC. FF, etc., comme l'indique le tableau des caractères ASCII du ehapitre « Pour information ».
Pour de nombreuses imprimantes, la valeur 15 représente un code d'initialisation utile, définissant une impression condensée.
La commande :
PRINT #8,CHR$(15)
serait la syntaxe en BASIC. Sous CP/M, elle devient
SETLST CONDENSE
Lc fichier CONDENSE contient l'une des lignes ei-dessous
á'SI'
á0
á'15'
qui représentent toutes la valeur décimale 15.
Pour certains programmes d'application, l'écran doit être de 24 lignes x 80 colonnes. La commande SET24X80 permet d'obtenir ce format d'écran.
Pour activer le mode 24x80, utilizez les commandes:
SET24X80
ou
SET24X80 ON
Pour le désactiver, utilisez la commande
SET24X80 OFF
La taille d'écran normale du CPC6128 est 24x80, la dernière ligne étant réservée aux messages d'état. La désactivation du mode 24 x 80 n'est visible que si la ligne d'état est également invalidée. Pour la validation et l'invalidation de la ligne d'état, reportez-vous à la partie 15 du chapitre 7.
Interface série
CP/M Plus permet de gérer une interface RS232 ne possédant qu'un seul canal. Pour visualiser ses principales caractéristiques, tapez la commande SETSIO (sans paramètre) :
SETSIO
ou une commande comprenant l'une (voire la totalité) de ces sélections :
SETSIO, RX 1200, TX 75, PARITY NONE, STOP 1, BITS 8, HANDSHAKE ON, XOFF OFF
pour une nouvelle configuration.
Le débit de l'interface et l'état XON/XOFF peuvent également être fixés par la commande DEVICE qui gère les périphériques logiques et physiques. Les périphériques logiques sont indiqués par un deux points (:). Pour visualiser tous les attributs des périphériques installés, tapez :
DEVICE
Pour les modifier : un périphérique.
DEVICE SIO[1200] fixe le débit à 1200 baudsDEVICE SIO[XON] active le protocole XON/XOFF.
DEVICE SIO[NOXON] désactive le protocole XON/XOFF.
Vous pouvez également modifier les affectations entre périphériques logiques et physiques. Habituellement, CON: correspond à CRT (clavier/écran), AUX: à SIO (interface série en option) et LST: à LPT (interfaee Centronics pour imprimante). La commande :
DEVICE LST:=SIO
envoie les données destinées à l'imprimante vers l'interface série (si celle-ci est installée).
Il s'agit d'un réacheminement de canal, à ne pas confondre avec la certaines commandes PIP. Les deux commandes GET < nom de fichier> et PUT < nom de fichier> réacheminent les données à destination et en provenance de la console et les sorties vers l'imprimante en les dirigeant vers un fichier particulier et non pas vers un périphérique.
PIP
L'utilitaire PIP (Programme d'interconnexion aux Périphériques) vous permet d'échanger des informations entre l'ordinateur et ses périphériques. La forme de ces commandes est généralement :
PIP <destination> = <source>
La < source> et la <destination> peuvent être soit un nom de fichier (jokers acceptés) pour la source, soit le code du périphérique. On peut utiliser les codes suivants:
|
En tant que source |
En tant que destination |
|
CON: Entrée console |
CON: sortie console |
|
AUX: entrée auxiliaire |
AUX: sortie auxiliaire |
|
EOF: manque de fin de fichier |
LST: imprimante |
|
PRN: imprimante avec tabulations supplémentaires, numérotation de lignes et sauts de page. |
PIP B:=A:*.COM
...copie tous les fichiers avec extension .COM de l'unité A sur l'unité B.
PIP KEYBOARD.CPM=KEYS.CCP
...réalise une copie de KEYS.CCP et l'appelle KEYBOARD.CPM.
PIP CON:=KEYS.CCP
..envoie le fichier KEYS.CCP à l'écran (même effet que TYPE KEYS.CCP).
PIP LST:=KEYS.CCP
...envoie le Fichier KEYS.CCP sur l'imprimante.
PIP TYPEIN.TXT=CON:
...place des données venant du clavier dans le fichier TYPEIN.TXT.
L'opération s'achève par un [CONTROL]Z. Pour accéder à une nouvelle ligne, vous devez envoyer à chaque fois un [CONTROL]J (code ASCI I du retour à la ligne) après [RETURN].
Si vous tapez PIP sans paramctrc. vous rccevez le message * : vous pouvez alors entrer les commandes qui vous intéressent. Ce procédé est particulièrement utile pour la copie de fichiers lorsque le fichier PIP.COM ne se trouve ni sur la disquette source, ni sur la disquette cible. Vous pouvez charger PIP à partir de la face I d'une des disquettes système, retirer cette disquette et insérer les disquettes requises pour la copie.
Pour sortir de PIP, appuyer sur [RETURN] à l'apparition du message *.
Notes que PIP ne peut effectuer de copies de fichiers sur un système à une seule unité. Utilisez alors FILECOPY
Gestion du système
Les programmes transitoires DIR, ERASE, RENAME et TYPE offrent plus de possibilités que leurs homologues intégrés. Comme de nombreux programmes transitoires de Digital Research, leurs paramètres secondaires sont indiqué; entre crochets. Tous les détails les concernant figurent dans les fichiers HELP (face 3 d'une des disquettes système). En voici quelques exemples :
DIR [FULL] affiche la taille et les attributs des fichiersERASE *.COM [CONFIRM] vous demande confirmation pour chaque fichier rencontré
RENAME vous demande de taper l'ancien et le nouveau nom de fichier
RENAME *.SAV=*.BAK renomme tous les fichiers à suffixe .BAK en fichiers .SAV
TYPE KEYS. WP [NOPAGE] supprime la pagination de l'écran
Nous avons déjà évoqué les attributs de fichiers SYS (système) et RO (lecture seulement). La commande SET qui aceepte les jokers, permet de modifier ces attributs et de nombreux autres.
Les commandes:
SET *.COM [RO]SET KEYS.CCP [RO]
SET A: [RO]
affectent l'attribut RO (lecture seulement) aux fichiers spécifiés ou au disque tout entier, de façon à empêcher un effacement accidentel.
Les commandes:
SET *.COM [RW]
SET KEYS.CCP [RW]
SET A: [RW]
affectent l'attribut RW (leeture/écriture) à ces mêmes fichiers. Les commandes
SET *.COM [SYS]SET KEYS.CCP [SYS]
affectent l'attribut SYS aux fichiers spécifiés. Les fichiers affectés de cet attribut ne seront pas listés par la commande DIR (utilisez alors DIRS, ou DIRSYS). Cependant, ils peuvent être utilisés et, de plus, s'ils se trouvent dans la zone utilisateur 0, ils seront disponibles dans toutes les autres zones utilisateur.
Les commandes
SET *.COM [DIR]SET KEYS.CCP [DIR]
retirent l'attribut SYS.
Vous pouvez affecter aux disquettes une étiquette, un nom ou un mot de passe réservant l'accès de l'ensemble du catalogue plutôt que celui des fichiers qu'il contient. Vous pouvez cependant attribuer des mots de passe à des fichiers, individuellement.
SET [NAME=ROLAND]SET [PASSWORD=LUCIEN]
SET [PROTECT=ON]
agissent sur la disquette de l'unité par défaut.
SET *.*[PASSWORD=LUCIEN]SET *.*[PROTECT=READ]
agissent sur les fichiers de la disquette de l'unité par défaut (les jokers indiquent ici que tous les fichiers de la disquette sont concernés par la commande).
La commande INITDIR (face 2 d'une des disquettes système) permet de « marquer » une disquette, en vue de la prise en compte de la date et de l'heure lors d'une création ou mise à jour de fichier. Les commandes:
INITDIR
SET [CREATE=ON] ...ou... [ACCESS=ON] ... et...
SET [UPDATE=ON] ...avec...
DIR [FULL]
permettent de « marquer » la disquette (INITDIR), puis de spécifier que la date et l'heure seront prises en compte pour la création et la mise à jour de fichier. La commande DIR [FULL] permet de visualiser le catalogue de la disquette avec affichage de la date et de l'heure de création et de mise à jour. Vous devez alors taper :
DATE SET
à chaque lancement de CP/M Plus pour mettre l'horloge du système à l'heure. Elle sera ensuite mise à jour régulièrment par votre ordinateur et vous pourrez la vérifier par les commandes
DATE
...et...
DATE CONTINUOUS
AVERTISSEMENT
Si vous attribuez à une disquette des mots de passe, une étiquette ou l'indication de la date et du jour, il est recommandé de ne plus y écrire de données sous AMSDOS ou CP/M 2.2 car aucun des deux ne possèdent ces fonctions.
Sauf spécification contraire, vous ne pourrez accéder qu'aux fichiers de l'unité par défaut. La commande:
SETDEF *,A:
(où * renvoie à l'unité par défaut) ordonne au CP/M (lors de la recherche de fichiers) de procéder d'abord dans l'unité par défaut, puis dans l'unité A. Autrement dit, si B est l'unité par défaut, les fichiers seront automatiquement retrouvés même s'ils n'existent que dans l'unité A.
Les commandes:
SETDEF [PAGE]SETDEF [NOPAGE]
activent et désactivent la pagination automatique de la console.
La plupart des paramètres spécifiés dans les commandes DEVICES, SET et SETDEF doivent être initialisés, tout comme la date, à chaque lancement de CP/M Plus, surtout lorsqu'ils se rapportent aux unités de disquettes (plutôt qu'à des fichiers ou des disquettes). Ceci est essentiel pour obtenir un fichier PROFILE.SUB correct.
SUBMIT est nécessaire à l'exécution automatique de fichiers de commandes. Ces fichiers de commandes contiennent du texte et il est possible d'y ajouter des lignes de données pour des programmes si ces dernières commencent par le caractère < .
Différentes versions de la commande SHOW permettent d'afficher la taille de l'unité, l'espace disponible, le nombre d'entrées du catalogue disponibles sur la disquette avec les zones utilisateur eontenant les fiehiers et, s'il existe, le label de la disquette :
SHOW B:SHOW B:[LABEL]
SHOW B:[USERS]
SHOW B:[DIR]
SHOW B:[DRIVE]
toutes ces commandes se rapportent à l'unité B.
Abandon de CP/M Plus
AMSDOS
Ce programme permet l'abandon du contrôle par CP/M pour revenir au BASIC AMSTRAD, d'où les commandes AMSDOS de gestion des disquettes sont disponibles.
Programmation avancée
Les programmes stockés sur la face 2 d'une des disquettes système serviront essentiellement aux spécialistes. Nous vous recommandons de eonsulter le guide du CP/M Plus, SOFT971 ou d'autres ouvrages de référence.
Exploitation sous CP/M 2.2
Cette partie insiste sur les différences de fonctionnement du système exploité sous CP/M 2.2
CP/M 2.2 est chargé à partir des deux premières pistes d'une des disquettes système. Le secteur d'amorçage diffère de celui du CP/M Plus; veillez à ne pas les confondre. Théoriquement, vous pouvez utiliser, indifféremment dans l'une ou l'autre des unités, des disquettes commercialisées, IBM ou formatées pour des données, mais, pour des raisons de fonctionnement du système, vous devrez généralement limiter leur emploi à la deuxième unité.
En dehors de l'intervention d'un utilitaire CP/M (tel que FILECOPY), CP/M 2.2 ne vous permet pas d'écrire sur une disquette sans qu'elle ait préalablement été amorcée. De plus, le type de formatage (Système, Data, IBM) n'est pris en compte que lors de l'amorçage. Pour l'unité principale (A), cet amorçage se produit chaque fois que CP M 2 2 repasse en mode direct ou que l'on envoie un [CONTROL]C après le message d'interrogation A> ou B> . L'unité supplémentaire (B) est amorcée la première fois que l'on y accède, l'unité A étant amorcée.
Si vous essayez d'écrire sur une disquette qui n'a pas été amorcée, le message d'erreur :
Bdos Err on <drive > : R/O
...apparaît. Appuyez sur n'importe quelle touche pour continuer. Si, de surcroît, la disquette est dotée d'un format différent, une erreur en lecture ou écriture se produit. Tapez C pour poursuivre.
Si vous achetez un logiciel sur disquette, vous devez le copier sur une disquette système CP/M 2.2 à l'aide de FILECOPY ou PIP, ou convertir la disquette en disquette système en y ajoutant votre CP/M, à l'aide des commandes BOOTGEN et SYSGEN. Lisez attentivement le contrat d'utilisation des logiciels de l'annexe I .
SYSGEN, sans paramètre, est le programme de copie par excellence qui vous indique par des messages l'insertion des disquettes source et cible, et copie les pistes CP/M 2.2 d'une disquette sur l'autre. De même, BOOTGEN copie le secteur 1 de la piste 0 (le chargeur) et le secteur de configuration.
La commande DIR n'accepte pas de paramètre hormis un identilicateur de fichier. Les fichiers apparaissent selon leur ordre d'entrée sur le répertoire de la disquette.
La commande STAT possède certaines fonctions de base de SET et SHOW. Les commandes:
STATSTAT A:
STAT B:
..affichent l'état de la disquette et l'espace disponible.
STAT *.COMSTAT EX1.BAS
...affichent des compléments d'information sur un fichier particulier.
STAT t.COM $R/OSTAT EX1.BAS $R/O
...attribuent à un fichier le statut 'lecture seulement', de façon à ce qu'il ne puisse pas être détruit accidentellement.
STAT t.COM $R/WSTAT EX1.BAS $R/W
...remplacent un fichier au statut normal de lecture/écriture.
STAT t.COM $SYSSTAT SECRET.BAS $SYS
...attribuent à un fichier un statut « système » qui le rend invisible sur le catalogue de la disquette et inaccessible aux programmes de copie de fichiers tout en restant disponible à tout autre usage.
STAT t.COM $DIRSTAT SECRET.BAS $DIR
...inversent le statut précédent. Redonnent au fichier son statut visible.
L'utilitaire FILECOPY vous permet de copier des fichiers d'une disquette sur une autre avec un système à une seule unité. Il vous donne les instructions nécessaires pour les changements de disquettes. Si vous utilisez des noms de fichiers avec jockers, il vous demandera confirmation entre chaque fichier puis affichera le nom des fichiers au fur et à mesure de la copie.
FILECOPY *.COM ...copie tous les fichiers .COM.FILECOPY PIP.COM ...copie le fichier PIP.COM.
DISCKIT2 assure les mêmes fonctions que DISCKIT3 mais, disposant de moins de mémoire, il copie les disquettes plus lentement.
Deux utilitaires sont disponibles pour des transferts entre cassette et disquette. Seuls les spécialistes trouveront toutefois un intérêt au transfert de fiehiers autres que des textes en codes ASCII.
CLOAD (cassette LOAD) accepte deux paramètres: le nom du fichier source (sur cassette) entre guillemets, et le nom du fichier destination (sur disquette). Si ce dernier est omis, le fichier sur disquette porte le même nom que celui sur cassette (obligatoirement compatible avec le CP/M). Si le nom du fichier source est omis, CLOAD lit le premier nom qu'il rencontre sur la bande. Si le premier caractère du nom du fichier cassette est un !, les messages liés à l'utilisation des cassettes sont alors supprimés
Exemple
CLOAD "MA LETTRE" MALETTRE.TXT
CSAVE (cassette SAVE) accepte trois paramètres, les deux premiers étant le nom du fichier source (sur disquette) et le nom du fichier destination (sur cassette), entre guillemets. Si le nom du fichier destination est omis, ce nom sera celui de la source. Si le premier caractère du nom du fichier cassette est un !, les messages 'cassette' sont supprimés. Si les deux noms sont spécifiés. on peut alors utiliser un troisième paramètre spécifiant la vitesse d'enregistrement: 0 pour 1000 bauds, 1 pour 2000 bauds.
Exemples
CSAVE MALETTRE.TXT "MA LETTRE TEXTE" 1CSAVE FICHIER
SETUP
Cet utilitaire vous permet de redéfinir les caractéristiques du clavier de votre 6128, du lecteur de disquette et de l'interface série ainsi que de lancer diverses actions au moment du chargement du CP/M 2.2
Contrairement aux utilitaires de CP/M Plus qui remplissent leur fonction après leur exécution, SETUP modifie le secteur de configuration, appelé lors de l'amorçage à froid de la disquette. Il rappelle à cet égard l'action de l'utilitaire PROFILE.SUB.
Ce programme est dirigé par un menu: lorsqu'un écran est correct ou ne requiert aucune modification, vous passez au suivant en répondant Y à la question :
Is this correct (Y/N):_
Il est possible d'arrêter le programme à tout moment par la commande [CONTROL]:C. Une fois tous les ehargements effectués, il vous demande:
Do you want to update your system disc (Y/N):_
(Confirmez-vous cette remise à jour de la configuration de votre système) ...qui vous permet de revenir à l'ancienne configuration (en tapant N).
Do you want to restart CP/M (YIN):_
...permettant d'initialiser et donc de tester votre nouvelle configuration en répondant Y.
Pour copier la zone où sont sauvegardées les variables du système, d'une disquette sur une autre, vous pouvez soit utiliser BOOTGEN (voir plus loin), soit charger SETUP du disque source, en répondant Y à la question « Do you want to update your system disc (Y/N) : _ »
Les caractères qui ont une valeur ASCII inférieure à 32 peuvent être entrés à l'intérieur d'une chaîne alphanumérique en tapant suivi du caractère á convenable tiré de la série @. A...Z,[,/, ],> , -.
Les options suivantes reviennent le plus souvent
** Initial command bufer (zones de commandes à l'initialisation)
Tous les caractères entrés ici apparaîtront comme s'ils avaient été tapés en mode direct au moment du chargement du CP/M, permettant ainsi de lancer automatiquement un programme. Souvenez-vous d'y inclure l'équivalent de la touche [RETURN]. représentée par les deux caractères áM.
Ainsi, pour le lancement automatique de la commande DIR, vous devez taper dans cette zone:
DIRáM
Pour le lancement automatique du programme Dr. LOGO, tapez dans cette zone:
SUBMIT LOGO2áM
Sign-on string (le message d'introduction)
C'est le message affiché en haut de l'écran quand on charge le CP/M. Notez l'utilisation de áJáM pour l'entrée du saut de ligne et du retour chariot. La première partie de ce message définit la couleur de l'écran et celle de la bordure pour le mode 80 colonnes (elle doit être recopiée telle quelle si les caractéristiques restent inchangées).
Keyboard translations (changement des codes clavier)
Donne de nouvelles valeurs ASCII aux touches du clavier, comme le fait la eommande 'KEY DEF' du BASIC. Les paramètres requis sont les codes clés et les valeurs ASCII à leur attribuer. Vous trouverez une illustration des codes clés dans le diagramme figurant en haut à droite de l'ordinateur ou à la partie 4 du chapitre « Pour information »
Keyboard expansions (extensions du clavier)
Emule la commande BASIC 'KEY'
Pour terminer...
Les commandes DISCKIT2, SYSGEN, BOOTGEN, FILECOPY, SETUP, CSAVE et CLOAD sont conçues pour les systèmes AMSTRAD et ne fonctionnent que sous CP/M 2.2. Elles n'ont aucune fonction sous les autres systèmes CP/M mais certains fabricants proposent des utilitaires identiques (portant souvent le même nom) adaptés à leurs systèmes.
Les programmes CP/M 2.2 ci-dessous, destinés aux spécialistes, sont également disponibles sur la face 4 d'une des disquettes système. L'utilisateur peut à leur sujet consulter le guide du CP/M. SOFT159 ainsi que d'autres ouvrages de référence.
ASM Assembleur du 8080
DDT Utilitaire de mise au point des codes d'assemblage du 8080
DUMP Utilitaire de vidage de fichier sous forme hexadécimale
ED Editeur de texte simple
LOAD Convertit les fichiers .HEX, créés avee ASM, en fichiers .COM
MOVCPM Crée le CP/M 2.2 avec une taille TPA réduite
SUBMIT Utilitaire d'exécution de fichier de commandes
XSUB Utilitaire de traitement par lots]
Ces programmes sont réservés au CP/M 2.2 (face 4) et ne doivent pas être confondus avec d'autres programmes stockés sur les faces I, 2 et 3 des disquettes système pour exploitation sous CP/M Plus.