CODINGCLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★

4/1.7 Basic MALLARD sur CPC (27e Complément)Coding Classeurs Weka
4/1.7 Basic MALLARD sur CPC

Une brocante, les petites annonces, le rebut, trois chances de disposer d'un Amstrad PCW 8256 ou 8512. A moins que vous n'en disposiez d'un sur votre lieu de travail, et que vous désiriez travailJer le Basic MALLARD sur le CPC familial.

Qu'il soit encore en état, ou hors d'usage, si vous l'avez acheté accompagné de la disquette contenant le Basic MALLARD, vous pourrez utiliser cette dernière sur votre CPC, pourvu qu'il supporte le système d'exploitation CP/M.

Une disquette exploitable sur CPC

Le format des disquettes sur CPC n'est pas identique à celui des PCW. Seules les disquettes formatées sur CPC peuvent être exploitées sur PCW.

Aussi, pour utiliser le Basic MAILLARD sur CPC :

  • soit vous possédez un très bon copieur de disquette, et le transfert sur une disquette formattée sur CPC est possible ;
  • soit le PCW acquis est encore en état, et il vous suffit de formatter une disquette 3 pouces sur le CPC, puis d'effectuer, à l'aide de PIP.COM par exemple, une copie du Basic MALLARD, sur cettte disquette, depuis le PCW ;
  • soit le PCW est hors d'usage, dans ce cas, il ne vous reste plus qu'à partir à la chasse d'un possesseur de PCW pour lui demander de vous effectuer une copie selon le procédé décrit ci-dessus.

Une fois ce Basic sur la disquette, il vous suffit d'effectuer une copie des fichiers SETKEYS.COM et KEYS.CCP du CP/M d'origine sur votre CPC, ainsi que du fichier SUBMIT.COM.

Vous devrez ensuite créer, à l'aide de ED.COM ou d'un éditeur quelconque le fichier de lancement comportant les commandes suivantes (vous pourrez par exemple l'appeler BASIC.SUB) :

SETKEYS KEYS.CCP
BASIC

Le lancement du Basic MALLARD s'effectuera par :

SUBMIT BASIC.SUB

Si vous avez pris soin de formatter votre disquette au format CP/M et y avez installé CP/M 3.0, vous pourrez appeler le fichier de lancement du nom de PROFILE.SUB, ce qui permettra un lancement automatique du Basic MALLARD lors du BOOT de CP/M.

Intérêt du basic mallard

Bien que très performant, le Basic LOCOMOTIVE possède ses limites en ce qui concerne la gestion de fichiers, limites que le Basic MALLARD permet de combler facilement, grâce à ses commandes de gestion de fichiers à accès direct et de fichiers indexés à l'aide de JET-SAM.

De plus vous aurez accès aux calculs en double précision, et bien d'autres possibilités.

Un petit point noir concerne l'utilisation graphique, pour laquelle vous devrez hélas écrire quelques routines en langage machine.

Le Basic MALLARD peut fonctionner aussi bien sous CP/M 2.2 que sous CP/M 3.0, mais son utilisation sous CP/M 2.2 reste très limitée car vous ne disposerez alors que d'envrion 9 K-octets, contre 31 K-octets sous CP/M+.
Rappel des commandes du basic mallard

Afin de vous permettre de déterminer si le Basic MALLARD vous sera utile, nous vous fournissons ci-après un condensé des commandes et instructions disponibles sur CPC, avec en plus, la liste des Tokens correspondants (voir Partie 4, chapitre 1.6.6 pour des explications sur la signification de ce terme).

Cette liste pourra, de plus, vous servir d'aide mémoire lors de la programmation, et vous évitera les fastidieuses recherches dans le manuel du PCW.
Les fonctions standard

Token(s)
ABSFF 01Fournit la valeur absolue de l'expression numérique.
ASCFF 02Fournit la valeur ASCII du premier caractère d'une chaîne alphanumérique.
ATNFF 03Fournit la valeur, en radian, de l'arc tangente d'une valeur numérique.
AUTO80Permet la numérotation automatique des lignes de basic lors de la saisie d'un programme.
CALL81Permet d'appeler des sous-programmes en langage machine à partir de Basic.
CDBLFF 04Fournit la valeur d'une expression numérique au format double précision.
CHAIN82Charge et lance un programme à partir du programme en court.
CHAIN MERGE82 A8Même fonction que CHAIN.
CHR$FF 05Fournit le caractère alphanumérique dont le codage est donné en ASCII par l'expression numérique.
CINTFF 06Fournit la valeur de l'expression numérique au format entier.
CLEAR83Réinitialise les variables, efface les tableaux, supprime les fonctions et ferme les fichiers.
COMMON85Permet de déclarer des variables à conserver lors de l'utilisation de CHAIN, CHAIN MERGE et COMMON RESET.
COMMON RESET85 BCMême effet que CLEAR, hormis la préservation des variables déclarées par COMMON.
CONT86Permet de relancer un programme interrompu par STOP ou < CTRL > < C >.
COSFF 07Fournit le cosinus de l'expression numérique donnée en radians.
CLOSE84Ferme les fichiers en cours d'utilisation.
CSNGFF 08Fournit la valeur de l'expression numérique au format simple précision.
CVDFF 09Fournit la valeur en double précision d'une chaîne de caractères créée par MKD$.
CVIFF 0AFournit la valeur entière d'une chaîne de caractères créée par MKD$.
CVIKFF 2AFournit la valeur entière d'une chaîne de caractères générée par MKIK$.
CVSFF 0BFournit la valeur en simple précision d'une chaîne de caractère générée par MKS$.
CVUKFF 2BFournit la valeur entière d'une chaîne de caractères générée par MKUK$.
DATA87Permet de définir une liste de valeurs pouvant être lues par READ.
DEC$FF 72Fournit une chaîne de caractères représentative de l'expression numérique selon un format donné.
DEF FN88 DEPermet de définir des fonctions dans un programme.
DEF USR88 E5Permet de définir un sous-programme en langage machine en tant que fonction.
DEFDBL89Permet de définir le type de variables au format double précision.
DEFINT8APermet de définir le type de variables au format entier.
DEFSNG8CPermet de définir le type de variables au format simple précision.
DEFSTR8DPermet de définir le type de variables au format chaîne alphanumérique.
DELETE8EPermet de supprimer une série de lignes du programme Basic.
DIM8FPermet de déclarer des tableaux.
DIR90Affiche le catalogue à l'écran.
DISPLAYD0Affiche le contenu d'un fichier.
EDIT91Edite une ligne de programme à l'écran.
END93Signale et termine la fin d'un programme.
EOFFF 0CRenvoi la valeur -1 si le pointeur de fichier est à la fin du fichier.
ERA94Efface un ou plusieurs fichiers.
ERASE95Efface les tableaux spécifiés.
ERLDCDonne le numéro de la ligne où une erreur s'est produite.
ERRDDDonne le numéro de l'erreur qui s'est produite.
ERROR96Permet de générer une erreur dont le numéro est spécifié.
EXPFF 0DFournit la valeur exponentielle de l'expression numérique.
FIELD97Crée et associe des variables à chaque zone pour le fichier concerné.
FILES98Permet d'afficher le catalogue disquettte complet ou partiel.
FIND$73Permet de rechercher un fichier.
FIXFF 0EElimine la partie décimale de l'expression entière.
FOR.. TO.. [STEP..]99.. E3.. [E0.]Boucle de type POUR... JUSQU'A.
FREFF 0FPermet de connaître la mémoire disponible.
GET9ALit un enregistrement dans le tampon d'enregistrement.
GOSUB9BAppelle un sous-programme.
GOTO9CRenvoi à la ligne spécifiée.
HEX$FF 74Fournit une chaîne hexadécimale représentant l'expression numérique.
HIMENE7Fournit l'octet le plus élevé de la mémoire utilisée par Basic.
IF.. THEN.. [GOTO].. [ELSE]9D... E2... [9C]... [92]Permet d'exécuter des traitements conditionnels.
INKEY$FF 75Permet la lecture d'un caractère du clavier.
INPFF 10Lit une valeur sur un port d'entrée/sortie.
INPUT9EPermet de lire une chaîne ou une valeur à partir du clavier.
INPUT#9FPermet de lire des données dans un fichier séquenciel.
INPUT$FF 76Permet de lire un nombre fixé de caractère à partir du clavier.
INSTRFF 77Permet de rechercher une chaîne de caractères dans une autre chaîne.
INTFF 11Arrondi à sa partie entière un nombre.
KILLA0Efface un fichier.
LEFT$FF 78Extrait un nombre déterminé de caractères de la partie gauche d'une chaîne de caractères.
LENFF 12Détermine la longueur d'une chaîne de caractères.
LETA1Instruction d'affectation.
LINE INPUTA2 9ELire une ligne de texte au clavier.
LINE INPUT#A2 9FLire une ligne complète dans un fichier.
LISTA3Liste le programme à l'écran.
LLISTA4Liste le programme sur imprimante.
LOADA5Lit un programme sur disque.
LOCFF 13Donne le numéro d'enregistrement actif d'un fichier.
LOFFF 14Fournit la longueur d'un fichier.
LOGFF 15Fournit le logarithme népérien d'un nombre.
LOGIOFF 16Fournit le logarithme décimal d'un nombre.
LOWER$FF 17Convertit une chaîne en minuscule.
LPOSFF 18Fournit la position de la tête de l'imprimante.
LPRINTA6Affiche des données ou caractères sur l'imprimante.
LSETA7Justifie à gauche une chaîne de caractères en la remplaçant par une autre.
MAXFF 79Détermine le maximum de plusieurs valeurs.
MEMORYCFPermet de modifier l'espace mémoire utilisé par Basic.
MERGEA8Fusionne un programme sur disque avec le programme actuel.
MID$A9Permet d'obtenir ou de remplacer la partie d'une chaîne de caractères.
MINFF 7ADétermine le minimum de plusieurs valeurs.
MKD$FF 19Crée une chaîne de caractères en double longueur.
MKI$FF 1ACrée une chaîne de caractères à partir d'un entier.
MKIK$FF 2CCrée une chaîne de caractères à partir d'un entier, pour utilisation en tant que clé.
MKS$FF 1BCrée une chaîne à partir d'un nombre simple précision.
MKUK$FF 2DCrée une chaîne à partir d'un nombre entier non signé, pour utilisation en tant que clé.
NAME... ASAA... DAChange le nom d'un fichier.
NEWACVide le contenu de la mémoire.
OCT$FF 7BConvertit un nombre en une chaîne codée en octale.
ON... GOSUB/GOTOAD... 9B/9CPermet de gérer une structure de cas.
ON ERROR GOTOAEProcédure de traitement d'erreur.
OPENAFPermet d'ouvrir des fichiers sur disque.
OPTION BASEB0Spécifie la valeur de départ pour les tableaux.
OPTION FILESB0 98Permet de changer l'unité ou le numéro d'utilisateur.
OPTION INPUTB0 9EDéfinit un sous-programme en langage machine pour traiter les entrées au clavier.
OPTION LPRINTB0 A6Définit un sous-programme en langage machine pour traiter les sorties sur imprimante.
OPTION NOTTABB0 FD E1Empêche Basic de convertir le caractère TAB en chaînes d'espaces.
OPTION PRINTB0 B3Définit un sous-programme en langage machine pour traiter les sorties sur écran.
OPTION RUNB0 C2Empêche les interruptions du programme Basic.
OPTION STOPB0 C4Réactive la possibilité d'interruption du programme.
OPTION TABB0 E1Permet la conversion par Basic du caractère TAB par des espaces.
OUTB1Permet d'envoyer un octet sur un port d'entrée/sortie.
PEEKFF 1CPermet de lire un octet en mémoire machine.
POKEB2Permet d'écrire un octet en mémoire machine.
POSFF 1DPermet de connaître la position du curseur à l'écran.
PRINTB3Permet l'affichage de données ou de caractères à l'écran.
PRINT#B4Permet l'écriture de données ou de caractères dans un fichier.
PUTB5Permet de mettre des données dans un fichier à accès direct.
RANDOMIZEB7Permet d'initialiser le générateur de nombres aléatoires.
READB8Permet la lecture de données placées en ligne de DATA.
REMB9Permet d'introduire des commentaires dans un programme.
RENBAPermet de donner un nouveau nom à un fichier.
RENUMBBPérmet la renumérotation de tout ou partie d'un programme.
RESETBCPermet de réinitialiser la strucxure des fichiers.
RESTOREBDPermet de positionner le pointeur de DATA sur une ligne spécifique.
RIGHT$FF 7CPermet la lecture de la partie droite d'une chaîne de caractères.
RNDFF 7DGénère un nombre aléatoire.
ROUNDFF 7EArrondit un nombre avec un nombre déterminé de décimales.
RSETC1Remplace le contenu d'une chaîne par une autre, justifiée à droite.
RUNC2Charge et/ou lance l'exécution d'un programme.
SAVEC3Inscrit le programme en mémoire sur disque.
SGNFF 1EPermet de connaître le signe d'une valeur.
SINFF 1FFournit la valeur du sinus d'une expression numérique exprimée en radians.
SPACE$FF 20Crée une chaîne d'espace d'une longueur déteminée.
SPCDFAffiche un nombre déterminé d'espaces.
SQRFF 21Calcul la racine carrée d'une expression numérique.
STOPC4Permet d'interrompre l'exécution d'un programme.
STR$FF 22Convertit une expression numérique en une chaîne de caractères.
STRING$FF 7FPermet de créer une chaîne de caractères composé de plusieurs fois le même caractère.
STRIP$FF 28Positionne à 0 le bit numéro 7 de chaque caractère d'une chaîne de caractères.
SWAPC5Echange le contenu de deux variables.
SYSTEMC6Renvoi au système d'exploitation.
TABE1Positionne à la tabulation spécifiée.
TANFF 23Calcul la tangente d'une expression numérique exprimée en radians.
TROFFC7Désactive la fonction trace.
TRONC8Active la fonction trace.
TYPED3Affiche le contenu d'un fichier à l'écran.
UPPER$FF 25Convertit en majuscule tous les caractères d'une chaîne.
UNTFF 24Convertit une valeur en un entier non signé.
USRE5Permet l'appel d'un sous-programme en langage machine par un nom de fonction.
VALFF 26Détermine la valeur numérique d'une chaîne, si elle contient une expression numérique.
VARPTRE6Permet de connaître l'adresse d'une variable.
VERSIONFF 29Permet de connaître la version de Basic utilisé.
WAITC9Attend la présence d'une valeur sur un numéro de port spécifié.
WHILE... WENDCB... CAExécute une boucle de type TANTQUE... FINTANTQUE.
WIDTHCCSpécifie la largeur de l'écran.
WIDTH LPRINTCC A6Spécifie le nombre de caractères par ligne sur l'imprimante.
WRITECDPermet d'afficher des caractères sur l'écran.
WRITE#CEPermet d'écrire des expressions numériques ou des chaînes de caractères sur un fichier.
ZONED5Permet de modifier la zone d'impression utilisée par PRINT, LPRINT et PRINT#.
Les fonctions JETSAM
ADDKEYFF 65Ajoute une clé à un fichier d'index représentatif d'un enregistrement d'un fichier de données.
ADDRECFF 66Ajoute une clé à un fichier d'index et un nouvel enregistrement au fichier de données concerné.
BUFFERSD6Permet de connaître la quantité de mémoire utilisée par JETSAM pour la gestion des fichiers.
CONSOLIDATEFF 63Provoque l'écriture sur la disquette des données d'un fichier en cours de modification.
CREATED1Crée et ouvre un fichier indexé, ainsi que son fichier de données associé.
DELKEYFF 67Supprime une clé du fichier d'index, ainsi que son enregistrement associé, si ce dernier existe.
FETCHKEY$FF 68Permet de connaître la valeur de la clé active.
FETCHRANKFF 69Permet de connaître le rang de la clé en position active.
FETCHRECFF 6ACherche le numéro d'enregistrement correspondant à la clé active.
LOCKFF 6BPermet la modification ou suppression d'un verrou d'enregistrement.
OPTION FIELDB0 97Intègre les octets d'un enregistrement indexé dans un enregistrement utilisateur.
SEEKKEYFF 6CRecherche une clé déterminée et la rend active.
SEEKNEXTFF 6DRecherche la clé suivant celle qui est active.
SEEKPREVFF 6ERecherche la clé précédent celle active.
SEEKRANKFF 6FRecherche la première clé du rang spécifié suivant la position en cours.
SEEKRECFF 70Initialisation de la position en cours à partir de valeurs enregistrées.
SEEKSETFF 71Recherche la clé suivante, différente de celle en cours.

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
Page créée en 210 millisecondes et consultée 1047 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.