한국   대만   중국   일본 
Control Program/Monitor ? Wikipedia Aller au contenu

Control Program/Monitor

Un article de Wikipedia, l'encyclopedie libre.

Control Program/Monitor
CP/M 2.2 sur un Sanco 8001. Contenu de la disquette système.
CP/M 2.2 sur un Sanco 8001. Contenu de la disquette systeme.

Langues anglais
Type de noyau monolithique
Plates-formes Amstrad CPC et PCW
BBC Micro , Commodore 128
IBM PC , Osborne 1
TRS-80 , ZX Spectrum
Entreprise /
Fondateur
Gary Kildall Voir et modifier les données sur Wikidata
Entreprise /
Developpeur
Digital Research / Gary Kildall
Licence Licence BSD Voir et modifier les données sur Wikidata
Ecrit en PL/M Voir et modifier les données sur Wikidata
Premiere version
Derniere version stable CP/M-86 (pour processeurs 8086) ( )
Methode de mise a jour Disquettes
Site web http://www.digitalresearch.biz/CPM.HTM

CP/M , sigle de Control Program/Monitor ou /Microcomputer , est un systeme d'exploitation cree en 1974 par Gary Kildall , fondateur de Digital Research .

Il est utilise notamment sur les Amstrad CPC et Amstrad PCW , Commodore 128 , TRS-80 , l' Osborne 1 , BBC Micro , le ZX Spectrum . Il fut utilise sur PC, notamment livre en standard avec les Amstrad PC-1512 en plus du MS-DOS et de GEM .

Pour l' Apple II , Microsoft a cree en 1980 la carte d'extension Z-80 SoftCard qui permettait l'usage du systeme d'exploitation de Digital Research.

CP/M est largement inspire de TOPS-10 des systemes PDP-10 [ 1 ] , alors utilise par Kildall comme environnement de developpement, et qui outre CP/M inspirera egalement les systeme OS-8 des PDP/8, RT11 des PDP/11, ainsi que les premieres versions de MS-DOS . Les principales commandes telles que DIR ou TYPE, ou encore les extensions telles que .EXE ou .TXT, sont une illustration de la paternite commune de ces systemes.

Organisation de la memoire [ modifier | modifier le code ]

La memoire d'un ordinateur sous CP/M est divisee en quatre parties :

  1. Le BIOS (basic input output system for serial peripheral)  : il gere les peripheriques, disquettes, imprimantes moniteur, etc. Habituellement, le BIOS occupe la partie ≪ haute ≫ de la memoire ;
  2. Le BDOS (basic disk operating system primitives)  : il contient le systeme d'exploitation. Habituellement, le BDOS se trouve sous le BIOS ;
  3. Le CCP (console command processor)  : cette partie du CP/M correspond a l'interface utilisateur. Habituellement, le CCP se trouve sous le BDOS ;
  4. Le TPA (transient program area)  : cette partie de la memoire debute a l'adresse hexadecimale 100. Elle est destinee aux programmes des utilisateurs.

Peripheriques [ modifier | modifier le code ]

Sous CP/M, les peripheriques sont geres par le BIOS (adaptable par l'utilisateur), sous le controle du BDOS.

Comme le BIOS peut s'adapter aux differentes besoins, il est possible d'utiliser des lecteurs de disquettes et/ou des disques durs. Les disques sont designes par une lettre majuscule (A B C ...) avec un maximum de 15.

Comme, de nos jours, la capacite des memoires RAM ou PROM est considerable, il est possible aussi de disposer de disques virtuels en RAM et/ou en PROM. Les fichiers en PROM ne risquent pas d'etre modifies ou detruits par des virus.

L'utilitaire STAT permet d'assigner differents peripheriques physiques, par exemple l'imprimante, aux peripheriques logiques.

Les differents types de fichiers [ modifier | modifier le code ]

Ce systeme d'exploitation , enregistre les fichiers sur disquettes suivant une organisation logique specifique (qui n'a pas ete reprise par MS-DOS), et peut remplir les disquettes jusqu'a ce qu'elles soient completement remplies.

CP/M peut aussi gerer des disques durs (en realite, comme le BIOS est ≪ ouvert ≫ et decrit clairement dans la documentation que Digital Research fournissait avec certains de ses logiciels, il est donc possible d'adapter tout systeme particulier CP/M a toute memoire de masse disponible - et aux peripheriques dont on dispose). Certains ordinateurs tournant sous CP/M etaient vendus, a l'origine, avec des disques durs (l'Altos 8000 en est un exemple).

Il existe des implementations pour le micro-processeur Z80 qui ont un systeme de disques forme de carte SD ou de cles USB (au format FAT16).

Chaque fichier a un nom et une extension (plus precisement, la syntaxe est : <nom du fichier (8 caracteres maximum)>.<extension (3 caracteres maximum)>).

Parmi les extensions les plus habituelles, on trouve :

  • ASM : fichier source assembleur  ;
  • PRN : fichier listing assembleur ;
  • HEX : Langage machine presente sous la forme d'une suite d'octets en hexadecimal au format Intel  ;
  • BAS : fichier source BASIC  ;
  • INT : fichier de code intermediaire BASIC  ;
  • COM : fichier de commandes, fichier d'image memoire (commencant a l'adresse 100 en hexadecimal) - sous CP/M les fichiers ≪ executables ≫ sont toujours des ≪ .COM ≫ ;
  • SUB : fichier avec une suite de commandes ? a traiter en mode ≪  Batch  ≫ par la commande ≪ SUBMIT ≫ ;
  • BAK : fichier de sauvegarde - il est souvent utilise par les programmes de traitement de texte ;
  • $$$ : fichier temporaire , utilise, par exemple par ≪ SUBMIT ≫ ;
  • LBR  : fichier archive.

Exemples de noms de fichiers : STAT.COM ; dans le cas de ≪ nomdufichier.ASM ≫, le nom du fichier est trop long, puisqu'il y a un maximum de 8 caracteres utilisables a cet effet ; donc il faudrait, par exemple, nommer ce fichier ≪ fichier.ASM ≫ ou ≪ fichier1.ASM ≫.

≪ READ.ME ≫ est un nom de fichier que beaucoup d'editeurs utilisent (et pas uniquement "dans le monde" CP/M) pour attirer l'attention de l'utilisateur sur des aspects tres importants de leurs logiciels... ce sont donc des fichiers a lire avant d'utiliser le logiciel en question. Pour lire le contenu d'un tel fichier on peut, en general utiliser la commande :

TYPE READ.ME

Les invites de commandes des disquettes sont A> pour le lecteur A et B> pour le lecteur B. Si un fichier ne se trouve pas sur le disque par defaut, il faut taper la lettre du disque auquel on veut acceder, suivie de deux points. Cette convention a ete reprise par MS-DOS .

Differentes commandes de CP/M [ modifier | modifier le code ]

Les commandes de CP/M peuvent etre ≪ internes ≫ ou ≪ externes ≫ (comme ce fut, par la suite, le cas avec MS-DOS). Sous CP/M, pour l'utilisateur, il n'y a pas de difference entre lancer une commande ≪ interne ≫ (par exemple DIR as*.*), ≪ externe ≫ (par exemple STAT as*.*) ou un programme (par exemple LINK).

Sous CP/M, le programme ≪ correct ≫ le plus court n'a besoin que d'un octet (C9 en hexadecimal - l'instruction RETurn) qui fait un retour au Systeme (ce qui est une sortie ≪ normale ≫ pour un programme CP/M). Par contre, il doit etre sauvegarde dans un fichier ≪ executable ≫ (donc un ≪ .com ≫) dont la taille minimum est un secteur (donc 128 octets minimum).

Les commandes externes du CP/M ou MP/M appelaient des programmes du meme nom qui portaient l'extension .COM ou .PRL (uniquement dans le cas de MP/M). Le MP/M etait relativement semblable au CP/M mais etait multi-utilisateurs.

  • ERA pour effacer un ou plusieurs fichiers  : ERA *.* efface tous les fichiers (ERA est une commande interne de CP/M ; ERA.PRL pour le MP/M)
  • DIR pour avoir la liste des fichiers d'une disquette  : DIR *.* pour avoir la liste complete des fichiers (est une commande interne de CP/M ; DIR.PRL pour le MP/M).
  • PIP ≪ the Peripheral Interchange Program ≫ pour copier un ou plusieurs fichiers a la fois (PIP.COM) ou meme les concatener...
  • ABORT utilise pour quitter un programme en cours d'execution (nom du programme en argument ou le numero de la console sur lequel le programme tourne (ABORT.COM OU ABORT.PRL)
  • ASM assemble un fichier ASM (ASM.COM) (ASM a ete fourni par Digital Research, mais beaucoup d'autres assembleurs et macro-assembleurs ont ete ecrits pour CP/M y compris par Digital Research)
  • ATTACH attache la console a un programme detache (ATTACH.PRL)
  • DSKRESET pour changer un disque en multi-utilisateur (DSKRESET.COM DSKRESET.PRL)
  • DUMP suivi d'un nom de fichier pour afficher le contenu du fichier en hexadecimal
  • ED pour editer un fichier (ED.COM ED.PRL)
  • ERAQ pour effacer un fichier (ERAQ.COM ERAQ.PRL)
  • GENHEX pour transformer un programme .COM en hexadecimal .HEX (GENHEX.COM GENHEX.PRL)
  • GEMOD pour generer un fichier PRL avec un fichier HEX (GEMOD.COM ou GEMOD.PRL)
  • GENESYS qui permettait de creer un systeme MP/M sur un systeme CP/M (GENESYS.COM)
  • LOAD pour charger un fichier hexadecimal .HEX ou le transformer en executable .COM ( LOAD.COM )
  • MOVCPM pour reconfigurer le CP/M pour ajuster la memoire (MOVCPM.COM)
  • MPMLDR pour charger, relouer et executer le systeme MP/M (MPMLDR.COM)
  • MPMSTAT pour afficher les statuts du MP/M ( processus , memoire allouee) (MPMSTAT.PRL)
  • STAT pour fournir les statistiques des fichiers et disques ou disquettes (STAT.COM STAT.PRL) ; STAT permet aussi de modifier la relation entre les peripheriques logiques et les peripheriques physiques
  • SUBMIT execute le traitement par lots d'une commande (SUBMIT.COM SUBMIT.PRL)
  • PRLCOM pour transformer un executable PRL en executable .COM (PRLCOM.COM PRLCOM.PRL)
  • REN pour renommer un fichier (REN est une commande interne en CP/M ; REN.PRL en MP/M)
  • SAVE pour sauver le contenu de la memoire dans un fichier (SAVE est une commande interne en CP/M)
  • SCHED planifier l'execution d'un programme a une heure ou une date ulterieure (SCHED.PRL)
  • TYPE pour afficher le contenu d'un fichier (TYPE est une commande interne en CP/M ; MP/M TYPE.PRL)
  • USER pour changer ou afficher la zone de travail d'un utilisateur (USER est une commande interne en CP/M ; USER.PRL)

Sous CP/M, l'utilisateur peut programmer en utilisant directement le code machine, un assembleur ou un langage de programmation comme le BASIC .

Les sources des logiciels ecrits par DRI (c'est-a-dire Digital Research) peuvent se trouver sur Internet (voir, par exemple, DRIPAK.zip).

Logitheque [ modifier | modifier le code ]

CP/M supporte de nombreux traitements de texte comme WordStar , avec, le cas echeant, leurs systemes de verification orthographique, des tableurs comme SuperCalc ou des logiciels combinant ces deux fonctionnalites.

Parmi les autres logiciels disponibles (que l'on peut toujours trouver dans des sites dedies et telecharger gratuitement via Internet), il y a aussi dBase II, une base de donnees relationnelle , tres interactive.

Par ailleurs, des compilateurs CP/M ont ete ecrits pour de nombreux langages, par exemple :

? Ada  ;
? Algol  ;
? APL (interpreteur) ;
? BASIC (compilateurs et interpreteurs) ;
? C  ;
? Cobol  ;
? Fortran  ;
? LISP  ;
? PASCAL  ;
? PL/I  ;
? PROLOG  ;
? et bien d'autres.

Des langages orientes vers l'≪ intelligence artificielle ≫, comme muMATH (qui est capable de resoudre des equations formelles) ou muSIMP (voir muMATH ) peuvent aussi ≪ tourner ≫ sous CP/M.

Le cas du langage PL/M est un peu particulier, puisqu'une partie du logiciel correspondant au systeme d'exploitation CP/M ? et a ses utilitaires ? a ete ecrite en PL/M , pour un compilateur qui tournait sous ISIS II. Il est possible, toutefois, d'emuler ISIS II sous CP/M. A son tour, CP/M peut etre emule sous MS-DOS .

Le logiciel KERMIT developpe par l'Universite Columbia, de New York, permet d'echanger des fichiers entre machines tournant sous des systemes d'exploitation differents ( VMS , Unix , Multics , MS-DOS et successeurs). Il en existe de multiples versions (gratuites) pour des machines CP/M et, en particulier, une version generique que l'on peut adapter a sa propre machine. Il en resulte qu'il est possible de transferer puis de stocker dans une machine CP/M (peu exposee a des virus) des fichiers importants.

Bibliographie [ modifier | modifier le code ]

  • Pour plus d'information sur les commandes ou le CP/M en general, on peut se reporter a l'ouvrage The CP/M Handbook (with MP/M) de David E. Cortesi dont une version numerisee est disponible sur Internet version en ligne .
  • A Programmer Notebook - Utilities for CP/M-80 version en ligne .

References [ modifier | modifier le code ]

  1. ≪  CP/M and Digital Research Inc. (DRI) History  ≫, sur www.retrotechnology.com (consulte le )

Lien externe [ modifier | modifier le code ]

Sur les autres projets Wikimedia :