APPLICATIONS ★ CRÉER SES PROPRES PROGRAMMES SOUS CP/M|MICROSTRAD) ★

Créer ses propres programmes sous CP/M|Microstrad)

Les systèmes d'exploitation de disquettes (Sed) des Amstrad sont au nombre de trois : Amsdos, CP/M 2.2 et CP/M 3. Nous étudions ici quelques éléments du CP/M 2.2 qui peut être utilisé sur tous les modèles de CPC.

Grâce au CP/M 2.2, on dispose d'un jeu de commandes internes, d'un jeu de commandes externes et d'un accès à une banque immense de logiciels (pour autant que les fichiers CP/M subissent une adaptation au format des disquettes Amstrad).

Les commandes internes ou résidentes ne figurent pas sur les disquettes. Ce sont :

  • DIR qui affiche le catalogue des disquettes ;
  • ERA qui efface un fichier ;
  • REN qui renomme un fichier ;
  • SAVE qui sauvegarde un programme sur la disquette ;
  • TYPE qui liste un fichier texte à l'écran ;
  • USER qui change la partition sur un disque.


La documentation Amstrad sur le CP/M s'avère succincte, quoique suffisante pour la plupart des commandes. Par exemple, save est déclarée réservée aux spécialistes (!) et user est totalement passée sous silence.

Les commandes externes sont sur disquette et doivent être suivies du suffixe .com pour être exécutées par CP/M. Digital Research, le créateur de CP/M, livre plusieurs commandes sur disquette (voir la liste des fichiers de la disquette CP/M 2.2) :

  • ASM , l'assembleur ;
  • DDT , le débogueur, utilitaire de mise au point des programmes ;
  • UMP pour lister un fichier à l'écran ;
  • ED , l'éditeur de texte, ligne par ligne ;
  • LOAD pour  convertir  un  fichier  .hex en  programme commande ;
  • MOVCPM pour changer la taille d'un CP/M ;
  • PIP pour transférer les fichiers d'une source vers une destination, disque ou entrées/sorties;
  • STAT pour des informations sur les fichiers ;
  • SUBMIT pour exécuter des fichiers par lot ;
  • SYSGEN pour créer des disquettes système ;
  • XSUB pour améliorer l'efficacité de submit.

Amstrad a complété cette liste en y ajoutant :

  • AMSDOS qui passe la main à l'Amsdos ;
  • BOOTGEN qui génère des disquettes système ;
  • CHKDISC qui compare deux disquettes dans un système à deux lecteurs ;
  • CLOAD qui charge un programme en cassette sur disquette ;
  • COPYDISC qui copie le contenu d'une disquette sur une autre (dans un système à deux unités de disquette) ;
  • CSAVE qui charge un programme sur disquette en cassette;
  • DISCCHK qui copie le contenu d'une disquette sur une autre (dans un système à une unité de disquette) ;
  • FILECOPY qui copie un fichier d'une disquette sur l'autre (dans un système à une unité de disquette) ;
  • FORMAT qui initialise une disquette vierge ;
  • SETUP qui règle les paramètres système.

La commande save permet de créer des fichiers à partir de programmes contenus en mémoire. Pour ce faire, il est nécessaire de spécifier la longueur du fichier à sauvegarder. Le point de départ est toujours le même : c'est l'adresse de début des programmes utilisateurs sous CP/M. Ils commencent tous à la même adresse, 0100H (256 décimal).

La commande save va donc créer un fichier composé du contenu de la mémoire vive commençant en 0100H. La taille du fichier est donnée dans la commande save sous la forme d'un nombre qui représente un multiple de 128 octets. Ainsi :

SAVE 3 MONPROG.COM

où 3 représente une taille de 384 octets (soit 3 fois 128 octets). Nous avons donné au fichier le nom de monprog.COM. Le suffixe .COM signifie que ce programme est exécutable, c'est-à-dire que monprog est une commande CP/M. Prenons un exemple : la transposition de la commande print du Basic, en Assembleur Z80 pour environnement CP/M. Ce qui, en Basic, s'écrit.

PRINT CHR$(7) ; « Ca marche » ; CHR (7)

devient en Assembleur :

LXI D, texte : pointe le texte
MVI C,09: code d'affichage sur l'écran, le texte doit se terminer par un signe "$»
CALL 5 : effectue l'opération (appel CP/M)
JMP 0 : redonne le contrôle au CP/M
TEXTE DB 07, 'Ca marche', 07, "$" : texte
END

Ça a l'air nettement plus compliqué... mais, une fois assemblé avec un Assembleur comme asm (l'Assembleur CP/M), on obtient les codes suivants :

11   0B   01           ;LXI    D, TEXTE
0E   09               ; MVI   C,09
CD   05   00           ;CALL 5
C3   00   00           ;JMP 0
07   6B   61   20      TEXTE DB 07, 'ca marche', 07, "$"
6D   61   72   63      END
68   65   07   24

L'Assembleur asm crée un fichier qui s'appelle monprog.hex. Il ne reste plus qu'à charger ce fichier, c'est-à-dire à le transformer en fichier de commandes avec la commande load.com: load monprog. Nous disposons, pour ce faire, des codes hexadécimaux (partie gauche de la routine ci-dessus : ll,0B,01,0E,09,CD,...) et de la commande DDT. Les parties soulignées de la liste ci-contre sont celles qu'il faut entrer, les phrases se terminant par un retour-chariot.
Enfin, il faut sauvegarder :

A>SAVE 1 MONPROG.COM

Nous aurions pu indiquer le nom du lecteur de disquette :

A>SAVE 1 BtMONPROG.COM

Et voilà, le tour est joué ! Essayez d'entrer la commande MONPROG , vous devez entendre le son du haut-parleur et voir s'afficher la phrase :

ca marche

suivie de : A>.
Vérifiez bien les codes que vous entrez : la moindre erreur peut conduire à la perte du contrôle de la machine. En Basic, les fautes sont pardonnées, moyennant un message du type « syntax error ». En langage machine, ce n'est pas le cas et, très souvent, il faut effectuer un reset (éteindre et rallumer) pour reprendre le contrôle des opérations...

La commande user sert à partager les disques en zones. Utile si vous voulez « cacher » certains fichiers sur vos disquettes. Par exemple, si vous voulez dissimuler le programme que vous venez de créer, il vous faut, juste après le go qui permet de sortir de DDT , entrer les commandes suivantes :

USER 7
SAVE 1 MONPROG.COM

et retourner en zone utilisateur "0", par :

USER 0

Ni vu, ni connu. Essayez de consulter le catalogue avec la commande dir, il n'y est point ! A moins que vous n'ayez enregistré le même programme sur la zone utilisateur "0" auparavant.
La documentation Amstrad passe totalement sous silence le signe "?" qui peut remplacer une lettre dans le nom d'un fichier. Ce point d'interrogation est en fait un « jocker » susceptible de remplacer n'importe quel autre caractère. Ce point d'interrogation s'avère très utile dans la recherche de fichiers avec la commande dir. Ainsi, dir monprog?.com nous donnera la liste des programmes :

MONPROG.COM : MONPROG2.COM :
MONPROG3.COM

De même, avec les commandes STAT et PIP. Si vous voulez faire disparaître du catalogue tous vos fichiers MONPROGx.COM , il vous suffira d'entrer :

STAT MONPROG ?.COM $SYS

Dans le cas choisi, le point d'interrogation pourrait être remplacé par l'astérisque. En revanche, ce n'est pas possible pour PIP a:=b :MAST?PRO.* , où l'astérisque apparaît déjà une fois. Cette commande va transférer, du lecteur A: vers le lecteur B:, tous les fichiers dont le nom commence par MAST et se termine par PRO, quelque soit le signe désigné par le point d'interrogation. Par exemple :

MAST1PRO.COM
MAST2PRO.ASM
MAST6PRO.HEX

Toutes ces remarques, pas toujours présentes dans le manuel, devraient vous aider à mieux utiliser le système d'exploitation de votre Amstrad.

Microstrad n°2 , nov/dec 1985

★ ANNÉE: 1985
★ AUTEUR: PHILIPPE GYSEL

★ AMSTRAD CPC ★ DOWNLOAD ★

Files:
» CPM-DR  Logo  v1.1DATE: 2013-09-03
DL: 669 fois
TYPE: ZIP
SIZE: 134Ko
NOTE: Include CPM 2.2 bootloader/40 Cyls
.HFE: OUI

» CPM-DR  Logo  v2.0DATE: 2013-09-03
DL: 636 fois
TYPE: ZIP
SIZE: 172Ko
NOTE: 41 Cyls
.HFE: OUI

» CPM-DR  Logo  v3.0DATE: 2013-09-03
DL: 692 fois
TYPE: ZIP
SIZE: 165Ko
NOTE: 40 Cyls
.HFE: OUI

» CPMPlus  v1.0DATE: 2013-09-03
DL: 648 fois
TYPE: ZIP
SIZE: 802Ko
NOTE: Include CPM bootloader/40 Cyls; Include CPM 2.2 bootloader/40 Cyls
.HFE: OUI

» CPM  v2.2DATE: 2013-09-03
DL: 722 fois
TYPE: ZIP
SIZE: 635Ko
NOTE: Include CPM 2.2 bootloader/40 Cyls
.HFE: OUI

Dumps disquettes (version commerciale):
» CPM  v2.2    ENGLISHDATE: 2017-05-09
DL: 157 fois
TYPE: ZIP
SIZE: 95Ko
NOTE: Uploaded by CPCLOV ; Include CPM 2.2 bootloader/42 Cyls
.HFE: NON

» CPM  v3.0    (Release  SCHNEIDER)    ENGLISHDATE: 2019-03-13
DL: 51 fois
TYPE: ZIP
SIZE: 321Ko
NOTE: Uploaded by CPCLOV ; 40 Cyls
.HFE: NON

Je participe au site:
» Newfile(s) upload/Envoye de fichier(s)
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » Clefs2 10 - Cpm22 Nom de Fichier
» Applications » Farbtools Fur Cpm (CPC Amstrad International)
» Applications » Graduate Software Cpm Rom v2 (Amstrad Action)
» Coding » Clefs2 10 - CPM/22 Table Vecteurs Propre au bios de l'Amstrad
» Applications » Les Commandes Transitoires (Amstrad Magazine)
» Coding » Initiations à CP/M

QUE DIT LA LOI FRANÇAISE:

L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous!

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 226 millisecondes et consultée 1159 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.