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 :

|B

SAVE "PROG.BAS"

|A

...et :

|A

SAVE "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 colours

20 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 ».


Partie 2 : CP/M

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 bauds

DEVICE 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.

Exemples

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 fichiers

ERASE *.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:

STAT

STAT A:

STAT B:

..affichent l'état de la disquette et l'espace disponible.

STAT *.COM

STAT EX1.BAS

...affichent des compléments d'information sur un fichier particulier.

STAT t.COM $R/O

STAT 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/W

STAT EX1.BAS $R/W

...remplacent un fichier au statut normal de lecture/écriture.

STAT t.COM $SYS

STAT 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 $DIR

STAT 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" 1

CSAVE 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.

 

<< Chapitre 4 [Index] Chapitre 6 >>