CODING ★ INITIATION A CP/M 3 - CPC n°8 ★

Initiation a CP/M (02/xx) (CPC Revue n°8)
Après notre introduction du mois dernier, nous allons maintenant rentrer dans le vif du sujet.

INITIALISATION DE CP/M

Lorsque vous allumez votre machine, le contrôle est donné au Basic et vous devez introduire une disquette système CP/M puis taper la commande |CPM pour l'amorçage (Bootstrapping souvent abrévié Boot) du système d'exploitation CP/M. Que se passe-t-il à ce moment ? Il y a chargement en mémoire du premier secteur de la piste 0 de la disquette. Sur une disquette "Système", ce secteur renferme un petit programme qui va être capable de charger en mémoire tous les composants de CP/M qui se trouvent dans les pistes systèmes pour CP/M 2.2 et dans C10CPM3.EMS pour CP/M Plus. Le BIOS va initialiser les périphériques si cela est nécessaire et donner la main au CCP qui est le programme composant de CP/M qui est chargé de gérer le dialogue avec l'utilisateur. C'est donc lui qui, une fois prêt, affiche le A> et attend vos ordres, c'est-à-dire vos commandes.

LES COMMANDES DU CCP

Le rôle essentiel du CCP est d'interpréter les commandes que l'utilisateur lui donne et dans le cas où celle-ci n'est pas une commande interne, de charger le programme en .COM correspondant et lui donner le contrôle. Une commande interne est une commande qui est interne au CCP lui-même et qu'il exécute sans charger une commande externe.

ATTENTION : Après l'exécution d'une commande externe, c'est-à-dire en fait l'appel et le chargement d'un autre programme, à la fin de ce programme, le CCP est rechargé en mémoire et le contrôle lui est à nouveau donné. C'est surtout important en CP/M 2.2 car le CCP est réellement chargé à partir du disque A qui doit donc toujours être une disquette système contenant CP/M. En CP/M Plus, le CCP est copié du banc de mémoire système vers le banc utilisateur, et l'opération est donc transparente pour l'utilisateur et cela signifie de plus que le disque A: peut contenir une disquette de format données puisqu'aucun composant de CP/M Plus n'est rechargé du disque A:.

Comme pour le Basic, les commandes peuvent être indifféremment tapées en minuscules ou majuscules.

Les commandes internes communes aux versions 2.2 et Plus sont :

– DIR pour visualiser le contenu de la Directory ou Catalogue d'une disquette.
– ERA pour supprimer un ou plusieurs fichiers.
– REN pour changer le nom d'un fichier.
– TYPE pour visualiser le contenu d'un fichier contenant du texte.
– USER pour changer le numéro d'utilisateur courant.

CP/M Plus possède une commande interne inconnue en 2.2, c'est DIRS qui permet de ne visualiser que les fichiers ayant l'attribut 'SYS'.

Utilisé en général pour désigner des fichiers "système", ou autres mais qui ont comme particularité d'être accessibles quel que soit le USER courant. Ainsi, si vous désirez avoir accès à l'utilitaire PIP.COM ou à n'importe quel type de fichier se trouvant en USER 0 depuis n'importe quel USER, il suffit de lui donner l'attribut "SYS". Nous verrons cela plus en détail lors de la description de la commande externe (c'est-à-dire programme utilitaire) SET. Cette possibilité d'accès depuis n'importe quel USER n'existe qu'en CP/M Plus. De plus, les commandes DIR, ERA, REN et TYPE ont des commandes externes associées qui sont exécutées lorsque l'on ajoute des options à la commande de base, et que la commande externe est présente sur le disque courant. Les options sont spécifiées entre crochets carrés.

La commande supplémentaire CP/M 2.2 c'est SAVE qui permet de sauvegarder le contenu de la mémoire dans un fichier. SAVE existe également en CP/M Plus, mais sous forme de commande externe.

Une disquette contient donc des fichiers. Chaque fichier est désigné par un nom qui comprend 8 caractères (lettres, chiffres et autres signes, mais jamais avec des blancs) au maximum. A ce nom, on ajoute éventuellement une extension de 3 caractères. Chaque nom de fichier,

nom plus extension, doit être unique sur une disquette. On peut également associer au fichier son support sous forme de la lettre du disque où il se trouve suivie de :. La forme générale d'un nom de fichier est donc : NOM.EXT. L'extension est en général utilisée pour désigner un type de fichier, ainsi BAS pour des programmes Basic, DAT pour des données, TXT pour du texte, ASM pour des programmes Assembleur, etc.

Certaines extensions sont obligatoires :

– COM pour désigner un programme binaire exécutable.
– SUB pour désigner un fichier de commandes.

L'extension est séparée du nom, dans l'écriture des commandes par un point.

Voici quelques exemples de noms de fichiers :

- PIP.COM l'utilitaire de copie de fichiers.
- PROFILE.SUB le fichier des commandes à exécuter au démarrage de CP/M Plus.
- CALCUL.BAS votre programme CALCUL écrit en Basic.
- CALCUL.ASM le même, mais écrit en Assembleur.
- LETTRE.TXT une lettre écrite avec un éditeur de texte.
- FICHIER1.DAT fichier de données.
- LISEZ.MOI texte de commentaires sur un logiciel.
- PHASE.A, PHASE.B, D45-32. f5, etc..

Dans certaines commandes, les noms de fichiers peuvent être généralisés grâce aux caractères * et ?. Le point d'interrogation signifie que tout caractère sera considéré comme valide et l'étoile est équivalente à mettre des ? sur le reste de la longueur du nom ou de l'extension. Ainsi, *.* veut dire tous les fichiers, *.COM tous les fichiers ayant comme extension COM, PR0G1.* à l'inverse, veut dire tous les fichiers de nom PR0G1 quelle que soit l'extension. Mais, ESSAI*.* signifie tous les fichiers commençant par "ESSAI" et quelle que soit l'extension, comme ESSAI3.COM, ESSAI. BAS, ESSAI8, ESSAI3.ASM, etc. De même, *.ID ? veut dire tous les fichiers quel que soit le nom et dont l'extension commence par "ID" et ESS??01 .COM signifie tous les fichiers qui ont un nom de 7 caractères commençant par "ESS", suivis de deux caractères quelconques puis de "01" et d'extension COM. Faites bien attention au fait que le nombre de caractères spécifié lors de la présence de ? est important. Ainsi ????.? veut dire tous les fichiers de 4 caractères pour le nom et un seul pour l'extension.

Voyons maintenant dans le détail chaque commande interne.

DIR

FONCTION
Visualisation du contenu du catalogue de la disquette. Les noms de fichiers apparaissant dans l'ordre physique du catalogue. Les fichiers ayant l'attribut SYS ne sont pas listés.

EXEMPLES
DIR : visualisation catalogue disque courant.
DIR B: : visu catalogue du disque B:.
DIR *.COM : visu de tous les fichiers d'extension COM. DIR B:*.ASM : visu de tous les programmes assembleur disque B:.
DIR ?B??????.* : visu de tous les fichiers ayant un B en deuxième caractère du nom.

OPTIONS
ASSOCIEE (CP/M PLUS)

DIR.COM

Visualise toujours les noms dans l'ordre alphabétique sauf option contraire et fichiers "SYS" compris.

OPTIONS
COMMANDE EXTERNE

ATT : visualisation des attributs des fichiers.

DATE : visu date/heure associées éventuellement aux fichiers.

DIR : visu seulement des fichiers ayant l'attribut "DIR".

DRIVE = ALL : visu des fichiers sur tous les disques ayant été "loggés", c'est-à-dire accèdes au moins une fois.

DRIVE = (A,B.....P) : visu des fichiers dea, disques spécifiés. DRIVE = d : visu des fichiers du disque d.

EXCLUDE : visu uniquement des fichiers qui ne répondent pas aux critères de sélection.

FF : envoie un saut de page à l'imprimante si la recopie sur imprimante est active. FULL : visu de toutes les caractéristiques des fichiers. LENGTH = n : nombre de lignes sur imprimante avant de réimprimer l'entête de présentation du tableau.

MESSAGE : visualise les disques et les numéros de USER recherchés.

NOSORT : visu des fichiers sans tri alphabétique. RO : visu seulement des fichiers ayant l'attribut Read-Only, c'est-à-dire protégés en écriture. SIZE : donne la taille des fichiers en kilo-octets.

SYS : visu seulement des fichiers ayant l'attribut "SYS". USER = ALL : visu des fichiers de tous les numéros USER. USER = (0,1,..., 15) : visu des fichiers des numéros USER spécifiés.

USER = n : visu fichiers numéro USER n.

REMARQUE

En CP/M Plus, lorsque le USER est différent de .0, celui-ci apparaît avant la lettre du disque courant dans le "prompt" de CP/M.

EXEMPLES

A> disque courant A USER 0

4B> disque courant B USER 4

EXEMPLES DE COMMANDE EXTERNE

DIR : AA>dir [full] : visu de tous les fichiers du disque A et de toutes leurs caractéristiques.
A>dir [full]*.com : idem exemple précédent mais seulement pour les fichiers d'extension COM.
3A > dir [drive = B,user = ail] : visu fichiers disque B tous les numéros USER.
3A > dir [exclude]*.com : visu tous les fichiers disque A numéro USER 3 qui.n'ont pas d'extension COM, etc.

Nous vous laissons découvrir toutes les possibilités ainsi que les différentes exclusions ou inclusions entre certaines options.

ERA

FONCTION

Suppression de un ou plusieurs fichiers sur une disquette. La place occupée par le ou les fichiers est récupérée ainsi que le ou les emplacements dans le catalogue.

La commande ne supprime pas les fichiers ayant l'attribut RO (Read-Only) mais est active sur tous les fichiers, y compris ceux ayant l'attribut SYS. Donc, pour protéger totalement un fichier, il faut qu'il soit RO et, en général, les commandes et utilitaires que l'on met en SYS, on les met également en RO pour éviter leur suppression accidentelle.

EXEMPLES

ERA ESSAI.ASM : suppression programme assembleur essai, asm, .....

ERA * .BAS : suppression de tous les programmes Basic.

ERA *.* : suppression de tous les fichiers.

REMARQUE

Dès qu'il y a présence de plusieurs fichiers à supprimer en CP/M Rus, la commande demande confirmation et il faut taper Y (Yes) pour supprimer effectivement les fichier concernés. En CP/M 2.2, cette demande de confirmation n'a lieu que pour le dangereux ERA*.* !

La commande ERA doit être utilisée après réflexion car tout fichier supprimé est théoriquement définitivement perdu après

l'opération et l'est réellement dès que l'on crée de nouveaux fichiers sur la disquette, car la place occupée par les données de l'ancien fichier peut avoir été utilisée par l'un des nouveaux. Donc, si vous avez fait une fausse manœuvre, ne touchez plus à cette disquette et demandez conseil et assistance à un connaisseur qui pourra, par lui-même ou avec un utilitaire, récupérer votre fichier.

COMMANDE EXTERNE
ASSOCIEE (CP/M PLUS)
ERASE.COM.

OPTIONS
COMMANDE EXTERNE

CONFIRM peut être abrévié en C. Lors de la suppression de plusieurs fichiers, on demande confirmation pour chaque fichier.

EXEMPLES
ERA*.COM[CONFIRM]
ERA b:*.bas[c].

REN

FONCTION

Changement du nom d'un fichier.

EXEMPLES

REN Nouveau = Ancien. Le fichier Ancien sur le disque courant s'appelle maintenant Nouveau. REN ESSAI2.ASM = ESSAI.BAK REN B:TRUC.NEW = TRUC.OLD Sur le disque B: le fichier TRUC.OLD devient TRUC.NEW.

COMMANDE EXTERNE ASSOCIEE
RENAME.COM

OPTIONS COMMANDE EXTERNE

Aucune.

La commande externe est chargée lorsque :

– on tape REN sans argument, ce qui provoque un dialogue pour donner l'ancien nom et le nouveau ;
– l'argument comprend des étoiles, ce qui permet de changer les noms d'un ensemble de fichiers.

EXEMPLES

REN
REN*.SAV= *.BAK Tous les fichiers d'extension BAK ont leur extension modifiée en SAV.

TYPE

FONCTION

Visualisation à l'écran du contenu d'un fichier texte. En CP/M 2.2, le défilement est continu, alors qu'en CP/M Plus, il y a arrêt à chaque page de l'écran.

EXEMPLES

TYPE ESSAI.ASM TYPE b:lisez.moi

REMAROUE

Cette commande ne fait aucune espèce de contrôle sur le fichier que l'on demande de visualiser, ce qui peut provoquer des choses bien fâcheuses si c'est, par exemple, un fichier binaire. Cette remarque est particulièrement pertinente lorsque vous avez provoqué l'envoi simultané du texte sur l'imprimante par Control P. J'ai déjà vu dans ce cas, des têtes d'imprimante terminer brutalement leur carrière !

RAPPEL

Control P active la copie sur imprimante et la désactive si elle est active.

Control S arrête momentanément la liste.

Control Q reprend la liste.

COMMANDE EXTERNE ASSOCIEE (CP/M PLUS)
TYPE.COM.

OPTIONS

COMMANDE EXTERNE

PAGE : pause après une page sur l'écran.

NOPAGE : pas de pause, liste continue.

EXEMPLES

TYPE ESSAI.ASM[NOPAGE]. L'option NOPAGE peut surtout être utile lorsque l'on imprime en même temps par Control P préalable.

USER

FONCTION

Modifier le numéro USER courant. Chaque disque peut être divisé logiquement en 16 utilisateurs (USER) qui vont de 0, qui est la valeur par défaut, à 15. En CP/M Plus, si le USER est différent de 0, il apparaît avant la lettre du disque courant lors du "prompt".

EXEMPLES

USER 4 : le USER courant devient le 4.

USER : en CP/M Plus, on demande le numéro désiré. En

CP/M 2.2, on affiche le USER courant.

PAS DE COMMANDE
EXTERNE ASSOCIEE

REMARQUE

Les possibilités de USER sont surtout utiles en CP/M Plus, puisque des fichiers peuvent être communs à tous les USER. Ceci, associé au "prompt" précédé du numéro du USER, vient d'ailleurs de MP/M.

En effet, en CP/M 2.2, si vous êtes dans un USER différent de 0, il vous faudra dupliquer les programmes ou utilitaires dont vous avez besoin.

ATTENTION

Certains petits malins utilisent des numéros de USER supérieurs à 15 pour des fonctions de protection.

Ceci peut être une cause de problèmes en CP/M Plus, car certains numéros de USER sont réservés à des fonctions bien précises que nous verrons par ailleurs. Alors, attention aux programmes écrits pour CP/M 2.2 et usant d'astuces !

Je me permets de signaler par la même occasion que les programmes qui attaquent directement les vecteurs du BIOS pour, par exemple, accéder en mode direct à une disquette, ne doivent pas être utilisés en CP/M Plus ! Si vous êtes curieux et que vous allez voir avec SID lesdits vecteurs, vous allez avoir un choc ! Cela est dû à l'utilisation de plusieurs bancs de mémoire et il existe, dans CP/M Plus, une fonction nouvelle qui permet, comme MSDOS d'ailleurs, un accès "propre" aux fonctions du BIOS. Patience donc et, hackers ou curieux, attendez la suite.

CPC n°8

★ ANNÉE: ???
★ AUTEUR: Francis VERSCHEURE

Page précédente : Initiation a CP/M (01/xx)

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » Initiation a CP/M (19/xx) (CPC Revue n°27)
» Coding » Initiation a CP/M (03/xx) (CPC Revue n°9)
» Coding » Initiation a CP/M - Amstrad Magazine 10 - les Commandes Transitoires - les Fonctions Internes
» Coding » Initiation a CP/M (07/xx) (CPC Revue n°13)
» Coding » Initiation a CP/M (18/xx) (CPC Revue n°25)
» Coding » Initiation a CP/M (04/xx) (CPC Revue n°10)
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 743 millisecondes et consultée 1733 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.